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}}
|