File size: 10,566 Bytes
79abb8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bc7b8dc
 
 
79abb8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* Blink v0.3 — palette from the logo: black, violet → magenta, a white spark */
:root, .dark {
  --bg:#07060c; --panel:rgba(255,255,255,.028); --panel2:rgba(255,255,255,.045);
  --line:rgba(255,255,255,.075); --line2:rgba(255,255,255,.14);
  --ink:#eeecf7; --mute:#8f8aa8; --dim:#5d5874; --violet:#7d5cff; --violet2:#9b7bff; --magenta:#e35ad9;
  --ok:#7ee0b5; --err:#ff6b8b; --grad:linear-gradient(90deg,var(--violet),var(--magenta));
  --serif:"Instrument Serif",Georgia,serif; --mono:"Geist Mono",ui-monospace,Menlo,monospace;
  /* gradio's own tokens, pinned to the same palette in light AND dark mode */
  --body-background-fill:var(--bg)!important; --background-fill-primary:var(--bg)!important;
  --background-fill-secondary:#0d0b16!important; --block-background-fill:transparent!important;
  --block-border-width:0px!important; --block-border-color:transparent!important; --block-shadow:none!important;
  --block-label-background-fill:transparent!important; --block-label-text-color:var(--mute)!important;
  --block-label-border-width:0px!important; --block-title-text-color:var(--mute)!important;
  --body-text-color:var(--ink)!important; --body-text-color-subdued:var(--mute)!important;
  --input-background-fill:rgba(0,0,0,.35)!important; --input-background-fill-focus:rgba(0,0,0,.45)!important;
  --input-border-color:var(--line)!important; --input-border-color-focus:rgba(125,92,255,.7)!important;
  --input-border-width:1px!important; --input-radius:10px!important; --input-shadow:none!important;
  --input-placeholder-color:var(--dim)!important; --border-color-primary:var(--line)!important;
  --color-accent:var(--violet)!important; --color-accent-soft:rgba(125,92,255,.18)!important;
  --slider-color:var(--violet)!important; --checkbox-label-background-fill:transparent!important;
  --button-primary-background-fill:var(--grad)!important; --button-primary-background-fill-hover:var(--grad)!important;
  --button-primary-text-color:#fff!important; --button-primary-border-color:transparent!important;
  --button-secondary-background-fill:transparent!important; --button-secondary-background-fill-hover:rgba(255,255,255,.05)!important;
  --button-secondary-text-color:var(--ink)!important; --button-secondary-border-color:var(--line2)!important;
  --layout-gap:14px!important; color-scheme:dark;
}
body, gradio-app, .gradio-container { background:var(--bg)!important; color:var(--ink); }
.gradio-container { max-width:1240px!important; margin:0 auto!important; padding:0 28px!important; font-family:"Geist",ui-sans-serif,system-ui,sans-serif!important; }
body::before{content:"";position:fixed;inset:-20vh -10vw auto;height:90vh;pointer-events:none;z-index:0;
  background:radial-gradient(60% 55% at 72% 18%,rgba(125,92,255,.20),transparent 70%),
             radial-gradient(40% 40% at 88% 30%,rgba(227,90,217,.13),transparent 70%)}
.bk a{color:inherit}

/* header + hero */
.bk header{display:flex;align-items:center;justify-content:space-between;padding:22px 0 0}
.bk .brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.bk .brand img{width:30px;height:30px;border-radius:8px}
.bk .brand b{font:400 26px/1 var(--serif)}
.bk .pill{font:500 11px/1 var(--mono);color:var(--violet2);border:1px solid rgba(125,92,255,.4);padding:5px 8px;border-radius:99px}
.bk nav{display:flex;gap:22px;font-size:13.5px;color:var(--mute)} .bk nav a{text-decoration:none} .bk nav a:hover{color:var(--ink)}
.bk .hero{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center;padding:40px 0 10px}
.bk h1{font:400 clamp(46px,6.4vw,88px)/.96 var(--serif)!important;letter-spacing:-.015em;margin:0 0 22px!important;color:var(--ink)}
.bk h1 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.bk .lede{font-size:17px;line-height:1.6;color:#c9c5dc;max-width:560px;margin:0}
.bk .lede strong{color:var(--ink);font-weight:500}
.bk .by{margin:16px 0 0;font:500 13px/1 var(--mono);color:var(--mute);letter-spacing:.02em}
.bk .by a{color:var(--violet2);text-decoration:none;border-bottom:1px solid rgba(155,123,255,.35)}
.bk .by a:hover{color:#fff;border-color:#fff}
.bk .eye{justify-self:center;width:min(290px,62vw)}
.bk .eye img{width:100%;filter:drop-shadow(0 0 40px rgba(125,92,255,.35));animation:float 7s ease-in-out infinite, blink 9s 3s infinite;transform-origin:50% 52%}
@keyframes float{50%{translate:0 -8px}}
@keyframes blink{0%,94%,100%{scale:1 1}97%{scale:1 .08}}
.bk .stats{display:flex;flex-wrap:wrap;margin-top:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bk .stat{flex:1 1 140px;padding:15px 18px 14px 0;margin-right:18px}
.bk .stat+.stat{border-left:1px solid var(--line);padding-left:18px}
.bk .stat b{display:block;font:500 25px/1.1 var(--mono);letter-spacing:-.02em}
.bk .stat span{font-size:12.5px;color:var(--mute)}
.bk .sh{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:40px 0 4px}
.bk .sh h2{font:400 34px/1 var(--serif)!important;margin:0!important;color:var(--ink)}
.bk .sh p{margin:0;color:var(--mute);font-size:13.5px}

/* example chips */
.chips{gap:8px!important;flex-wrap:wrap!important}
.chips button{flex:0 0 auto!important;border:1px solid var(--line)!important;background:var(--panel)!important;color:#d8d4ea!important;
  font:500 13px/1 "Geist",sans-serif!important;padding:9px 13px!important;border-radius:99px!important;min-width:0!important;box-shadow:none!important}
.chips button:hover{border-color:rgba(125,92,255,.55)!important;background:rgba(125,92,255,.1)!important;color:#fff!important}

/* panels */
.panel{background:linear-gradient(180deg,var(--panel2),var(--panel))!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:16px!important}
.panel label > span, .panel .label-wrap span{font:500 11.5px/1 var(--mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)!important}
#state textarea{font:400 13.5px/1.55 var(--mono)!important}
.q{border:1px solid var(--line)!important;border-radius:12px!important;background:rgba(0,0,0,.18)!important;padding:10px!important;gap:8px!important}
.q textarea, .q input{font-size:14px!important}
.q .opts textarea{font:400 13px/1.5 var(--mono)!important}
/* the type radio as a segmented control */
.seg .wrap{display:flex!important;gap:2px!important;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:9px;padding:3px;width:max-content}
.seg label{border:0!important;background:transparent!important;color:var(--mute)!important;padding:6px 10px!important;border-radius:6px!important;font:500 12.5px/1 "Geist",sans-serif!important;box-shadow:none!important;cursor:pointer}
.seg label:has(input:checked){background:rgba(125,92,255,.24)!important;color:#fff!important}
.seg input{display:none!important}
.go{box-shadow:0 8px 30px -8px rgba(125,92,255,.7),inset 0 1px 0 rgba(255,255,255,.25)!important;font-weight:500!important}

/* readout */
.sum{display:flex;gap:16px;flex-wrap:wrap;font:400 13px/1.3 var(--mono);color:var(--mute);margin:2px 0 10px}
.sum b{color:var(--ink);font-weight:500}
.empty{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.empty .lid{width:74px;height:2px;background:var(--grad);border-radius:2px;box-shadow:0 0 18px rgba(125,92,255,.8)}
.empty p{margin:0!important;font:italic 400 22px/1.3 var(--serif);color:var(--mute)}
.ans{border-top:1px solid var(--line);padding:14px 0 4px;animation:rise .3s ease-out both}
.ans:first-of-type{border-top:0}
@keyframes rise{from{opacity:0;translate:0 6px}}
.ah{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.ah h4{margin:0!important;font:500 15px/1.4 "Geist",sans-serif!important;color:var(--ink)}
.meta{display:flex;gap:8px;align-items:center;flex-shrink:0;font:400 11.5px/1 var(--mono);color:var(--dim)}
.tag{padding:4px 6px;border-radius:5px;border:1px solid var(--line2);color:var(--mute);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}
.bar{display:grid;grid-template-columns:minmax(0,1fr) 60px;gap:10px;align-items:center;margin:6px 0}
.bl{position:relative;height:34px;border-radius:9px;background:rgba(255,255,255,.035);overflow:hidden;border:1px solid rgba(255,255,255,.04)}
.bf{position:absolute;inset:0 auto 0 0;background:rgba(255,255,255,.09)}
.bf.grow{animation:growbar .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes growbar{from{width:0}}
.bar.win .bf{background:var(--grad);box-shadow:0 0 24px rgba(125,92,255,.45)}
.bt{position:relative;display:flex;gap:8px;align-items:center;height:100%;padding:0 11px;font-size:13.5px;white-space:nowrap;overflow:hidden}
.bt .k{font:500 11px/1 var(--mono);color:var(--mute)} .bar.win .bt .k{color:rgba(255,255,255,.85)}
.bt .d{overflow:hidden;text-overflow:ellipsis}
.bp{font:500 14px/1 var(--mono);text-align:right;color:var(--mute)} .bar.win .bp{color:var(--ink)}
.xs{font:400 12.5px/1.4 var(--mono)!important;color:var(--mute);margin:8px 0 0!important}
.xs b{color:var(--ink);font-weight:500}
details.prompt{margin:10px 0 2px}
details.prompt summary{cursor:pointer;color:var(--dim);font:400 12px/1 var(--mono);list-style:none}
details.prompt summary::before{content:"› ";color:var(--violet2)}
details.prompt pre{white-space:pre-wrap;word-break:break-word;font:400 12px/1.5 var(--mono);color:#bdb8d3;background:rgba(0,0,0,.4);border:1px solid var(--line);border-radius:9px;padding:11px;margin:8px 0 0;max-height:260px;overflow:auto}
.note{font-size:12.5px;color:var(--dim);margin:2px 0 0}

/* how it reads + footer */
.bk .how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bk .how div{border-top:1px solid var(--line2);padding-top:14px}
.bk .how b{font:italic 400 24px/1.1 var(--serif);display:block;margin-bottom:6px}
.bk .how p{margin:0;color:var(--mute);font-size:14px}
.bk .how code{font:400 12.5px var(--mono);color:#cfc9ea;background:none}
.bk .bfoot{margin:44px 0 0;padding:20px 0 10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--dim);font-size:13px}
.bk .bfoot a{color:var(--mute)}
footer{opacity:.45}

@media (max-width:900px){
  .bk .hero{grid-template-columns:1fr;gap:6px;padding-top:18px}
  .bk .eye{grid-row:1;width:140px;justify-self:start}
  .bk .how{grid-template-columns:1fr}
}
@media (max-width:520px){
  .gradio-container{padding:0 16px!important}
  .bk nav a:not(.keep){display:none}
  .bk .stat{flex-basis:42%}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}