Download style.css from SharpMeow/unroll: direct link, hf CLI and curl.
- Browser
- Download file 23.6 kB
-
https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/style.css
- Command line
-
hf download hf://spaces/SharpMeow/unroll/style.css
-
curl -L -o style.css https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/style.css
23.6 kB
| :root { | |
| --bg: #060505; | |
| --ink: #ffb347; | |
| --gpu: #5ef0ff; | |
| --fg: #ece6db; | |
| --dim: #8d857a; | |
| --line: rgba(236, 230, 219, 0.14); | |
| --line-strong: rgba(236, 230, 219, 0.32); | |
| --panel: rgba(10, 9, 8, 0.72); | |
| --serif: "Instrument Serif", "Iowan Old Style", Georgia, serif; | |
| --mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace; | |
| --gut: clamp(16px, 2.4vw, 32px); | |
| } | |
| * { box-sizing: border-box; } | |
| html, body { margin: 0; height: 100%; background: var(--bg); color: var(--fg); overflow: hidden; } | |
| body { font-family: var(--mono); -webkit-font-smoothing: antialiased; } | |
| #gl { position: fixed; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; cursor: grab; } | |
| #gl:active { cursor: grabbing; } | |
| .scrim { position: fixed; z-index: 2; pointer-events: none; } | |
| .scrim.top { left: 0; top: 0; width: min(760px, 100vw); height: 330px; background: radial-gradient(120% 100% at 0 0, rgba(6,5,5,.82), rgba(6,5,5,0) 70%); } | |
| .scrim.bot { left: 0; right: 0; bottom: 0; height: 190px; background: linear-gradient(to top, rgba(6,5,5,.85), rgba(6,5,5,0)); } | |
| .grain { | |
| position: fixed; inset: -50%; pointer-events: none; opacity: .06; z-index: 1; | |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); | |
| animation: grain 1.2s steps(3) infinite; | |
| } | |
| @keyframes grain { 0% { transform: translate(0,0) } 33% { transform: translate(-3%,2%) } 66% { transform: translate(2%,-3%) } } | |
| .mono { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; } | |
| .dim { color: var(--dim); } | |
| .small { font-size: 10.5px; } | |
| a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--line-strong); } | |
| a:hover { color: var(--ink); border-color: var(--ink); } | |
| button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; } | |
| .hud { position: fixed; z-index: 5; } | |
| .tl { top: var(--gut); left: var(--gut); max-width: min(560px, calc(100vw - 2 * var(--gut))); pointer-events: none; } | |
| .tl a, .tl button { pointer-events: auto; } | |
| .kicker { margin-bottom: 14px; } | |
| .kicker .sep { color: var(--line-strong); padding: 0 .4em; } | |
| h1 { | |
| font-family: var(--serif); font-weight: 400; margin: 0; line-height: .98; | |
| font-size: clamp(30px, 4.6vw, 64px); letter-spacing: -.01em; text-wrap: balance; | |
| } | |
| h1 em { color: var(--ink); font-style: italic; } | |
| .lede { margin: 16px 0 0; max-width: 430px; font-size: 12.5px; line-height: 1.6; color: #b9b1a5; letter-spacing: .01em; } | |
| .tr { top: var(--gut); right: var(--gut); display: flex; gap: 10px; align-items: center; } | |
| .seg { display: flex; border: 1px solid var(--line-strong); background: var(--panel); backdrop-filter: blur(6px); } | |
| .chip { padding: 8px 13px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--dim); position: relative; } | |
| .chip + .chip { border-left: 1px solid var(--line); } | |
| .chip.on { color: var(--bg); background: var(--ink); } | |
| .chip.gpu.on { background: var(--gpu); } | |
| .chip:not(.on):hover { color: var(--fg); } | |
| .tools { display: flex; gap: 6px; } | |
| .icon { | |
| width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid var(--line-strong); | |
| background: var(--panel); font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--fg); | |
| } | |
| .icon:hover { border-color: var(--ink); color: var(--ink); } | |
| .bl { left: var(--gut); bottom: calc(var(--gut) + 74px); display: grid; gap: 5px; } | |
| .readout b { font-weight: 500; color: var(--fg); margin-left: .6em; } | |
| .bottom { left: var(--gut); right: var(--gut); bottom: var(--gut); display: flex; gap: 16px; align-items: center; } | |
| .play { | |
| flex: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--ink); color: var(--ink); | |
| display: grid; place-items: center; background: rgba(255, 179, 71, .06); | |
| box-shadow: 0 0 0 0 rgba(255, 179, 71, .35); animation: pulse 2.6s ease-out infinite; | |
| } | |
| .play.playing { animation: none; } | |
| @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,179,71,.35) } 80%,100% { box-shadow: 0 0 0 14px rgba(255,179,71,0) } } | |
| .scrub { position: relative; flex: 1; height: 46px; cursor: ew-resize; touch-action: none; user-select: none; } | |
| .track { position: absolute; left: 0; right: 0; top: 22px; height: 1px; background: var(--line-strong); } | |
| .track i { position: absolute; left: 0; top: -1px; height: 3px; width: 0; background: var(--ink); box-shadow: 0 0 12px rgba(255,179,71,.7); } | |
| .ticks { position: absolute; inset: 12px 0 auto 0; height: 21px; } | |
| .ticks i { position: absolute; top: 0; width: 1px; height: 7px; background: var(--line-strong); } | |
| .ticks i.gpu { background: var(--gpu); height: 11px; top: -2px; } | |
| .knob { | |
| position: absolute; top: 15px; width: 15px; height: 15px; margin-left: -7px; border: 1px solid var(--ink); | |
| background: var(--bg); transform: rotate(45deg); box-shadow: 0 0 14px rgba(255,179,71,.5); | |
| } | |
| .band { position: absolute; top: 20px; height: 5px; background: rgba(94, 240, 255, .18); border-left: 1px solid var(--gpu); border-right: 1px solid var(--gpu); pointer-events: none; } | |
| .chip .dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gpu); margin-right: 7px; vertical-align: 1px; box-shadow: 0 0 8px var(--gpu); } | |
| .chip.gpu.on .dot { background: var(--bg); box-shadow: none; } | |
| #rGpuRow.live b { color: var(--gpu); } | |
| .ends .short { display: none; } | |
| .ends { position: absolute; left: 0; right: 0; bottom: -2px; display: flex; justify-content: space-between; font-size: 9.5px; } | |
| .credit { position: fixed; z-index: 5; right: var(--gut); bottom: calc(var(--gut) + 74px); font-size: 10px; } | |
| .tip { | |
| position: fixed; z-index: 6; pointer-events: none; padding: 6px 9px; background: var(--panel); | |
| border: 1px solid var(--line-strong); font-size: 10.5px; white-space: nowrap; transform: translate(12px, 12px); | |
| } | |
| #loader { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; background: var(--bg); transition: opacity .9s ease; } | |
| #loader.gone { opacity: 0; pointer-events: none; } | |
| .loader-inner { width: min(360px, 80vw); display: grid; gap: 14px; } | |
| .loader-title { font-family: var(--serif); font-size: 34px; font-style: italic; } | |
| .bar { height: 1px; background: var(--line-strong); position: relative; } | |
| .bar i { position: absolute; left: 0; top: -1px; height: 3px; width: 0; background: var(--ink); transition: width .2s; } | |
| .sheet { | |
| position: fixed; z-index: 10; inset: var(--gut); display: flex; flex-direction: column; | |
| background: rgba(6, 5, 5, .94); border: 1px solid var(--line-strong); backdrop-filter: blur(10px); | |
| } | |
| .sheet[hidden] { display: none; } | |
| .sheet-head { display: flex; justify-content: space-between; align-items: flex-start; padding: 18px 20px; border-bottom: 1px solid var(--line); gap: 12px; } | |
| .sheet-head h2 { font-family: var(--serif); font-weight: 400; font-size: 34px; margin: 4px 0 0; } | |
| .sheet-tools { display: flex; gap: 10px; align-items: center; } | |
| .seg.small .chip { padding: 7px 10px; font-size: 10.5px; text-transform: none; letter-spacing: .04em; } | |
| .viewer { flex: 1; position: relative; overflow: hidden; cursor: grab; touch-action: none; background: #000; } | |
| .viewer img { position: absolute; left: 0; top: 0; transform-origin: 0 0; user-select: none; max-width: none; image-rendering: auto; } | |
| .viewer.gpu-on img { filter: none; } | |
| .sheet-foot { padding: 12px 20px; border-top: 1px solid var(--line); line-height: 1.7; } | |
| .about { inset: auto var(--gut) var(--gut) auto; width: min(560px, calc(100vw - 2 * var(--gut))); max-height: calc(100vh - 2 * var(--gut)); } | |
| .about-body { padding: 6px 20px 18px; overflow: auto; font-family: var(--mono); font-size: 12px; line-height: 1.7; color: #c9c1b5; } | |
| .about-body b { color: var(--fg); font-weight: 500; } | |
| .about-body code { font-size: 10.5px; color: var(--fg); } | |
| @media (max-width: 720px), (max-height: 480px) { | |
| .lede { display: none; } | |
| h1 { font-size: 30px; max-width: 78vw; } | |
| .tr { top: auto; bottom: calc(var(--gut) + 64px); right: var(--gut); } | |
| .bl { bottom: calc(var(--gut) + 124px); display: block; } | |
| .bl > div { display: none; } | |
| .credit { right: auto; left: var(--gut); top: calc(var(--gut) + 116px); bottom: auto; max-width: none; } | |
| .ends { font-size: 9px; } | |
| .ends .long { display: none; } | |
| .ends .short { display: inline; } | |
| .chip { padding: 8px 10px; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { .grain { animation: none; } .play { animation: none; } } | |
| /* share-image frame */ | |
| body.shot .bottom, body.shot .tr, body.shot .bl, body.shot .lede, body.shot .grain, body.shot .scrim.bot { display: none ; } | |
| body.shot .credit { bottom: var(--gut); } | |
| /* keyboard and screen-reader access to the scrubber: a native range input, visually hidden */ | |
| .scrub-in { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } | |
| .scrub:focus-within .knob { outline: 2px solid var(--fg); outline-offset: 4px; } | |
| button:focus-visible, a:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; } | |
| .readout .read { margin-top: 6px; justify-self: start; border: 1px solid var(--line-strong); background: var(--panel); color: var(--fg); padding: 7px 11px; } | |
| .readout .read:hover { border-color: var(--ink); color: var(--ink); } | |
| .readout { pointer-events: auto; } | |
| /* close-up and about sheets on phones */ | |
| .sheet-head { position: relative; } | |
| .sheet-head > :first-child { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; } | |
| .sheet-head > .icon, .sheet-tools .icon { flex: none; } | |
| .sheet-tools .seg { flex: 0 1 auto; min-width: 0; } | |
| @media (max-width: 720px) { | |
| .sheet-head { flex-wrap: wrap; } | |
| .sheet-head > :first-child { flex-basis: 100%; padding-right: 48px; } | |
| .sheet-tools { flex: 1 1 100%; justify-content: space-between; } | |
| .sheet-tools .icon, .sheet-head > .icon { position: absolute; top: 14px; right: 14px; } | |
| .seg.small .chip { white-space: nowrap; } | |
| .sheet-head h2 { font-size: 28px; } | |
| } | |
| /* touch: 44 px targets */ | |
| @media (pointer: coarse) { | |
| .icon { width: 44px; height: 44px; } | |
| .tools { gap: 8px; } | |
| .chip { min-height: 44px; } | |
| .seg.small .chip { min-height: 40px; } | |
| .readout .read { min-height: 40px; } | |
| } | |
| @media (pointer: coarse) and (max-width: 360px) { | |
| .chip { padding-left: 8px; padding-right: 8px; } | |
| } | |
| .credit { text-shadow: 0 0 8px #000, 0 0 2px #000; } | |
| .tr { flex-wrap: wrap; justify-content: flex-end; } | |
| .layer-hint { order: 3; flex-basis: 100%; margin: 6px 2px 0; font-size: 10.5px; line-height: 1.35; color: var(--dim); max-width: 300px; text-align: right; } | |
| .layer-why { order: 4; flex-basis: 100%; max-width: 300px; margin-left: auto; font-size: 10.5px; line-height: 1.35; color: var(--dim); text-align: right; } | |
| .layer-why summary { cursor: pointer; } | |
| .layer-why p { margin: 4px 0 0; } | |
| @media (max-width: 700px) { .layer-hint, .layer-why { display: none; } } | |
| .tear-seg { order: 5; margin-left: auto; margin-top: 6px; } | |
| body.tearing .bottom, body.tearing #readout { opacity: .35; pointer-events: none; } | |
| .load-err { margin-top: 14px; max-width: 340px; line-height: 1.5; color: var(--fg); } | |
| .load-err p { margin: 0 0 10px; } | |
| #loader.failed .bar { opacity: .3; } | |
| .viewer img.cmp { pointer-events: none; } | |
| .swipe-line { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--gpu); box-shadow: 0 0 6px var(--gpu); pointer-events: none; } | |
| .swipe { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; gap: 10px; align-items: center; font-size: 11px; padding: 6px 12px; background: rgba(0,0,0,.6); border: 1px solid var(--line); color: var(--fg); } | |
| .swipe input { width: 180px; } | |
| .scalebar { position: absolute; left: 16px; bottom: 16px; font-size: 10.5px; color: var(--fg); pointer-events: none; text-shadow: 0 0 4px #000; } | |
| .scalebar i { display: block; height: 4px; border: 1px solid var(--fg); border-top: 0; margin-bottom: 4px; } | |
| .img-err { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; } | |
| .layer-why summary { display: block; text-align: right; } | |
| [hidden] { display: none ; } | |
| /* polish: vignette over the 3D view, under the HUD */ | |
| .vignette { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 85% 80% at 55% 52%, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%); } | |
| body.shot .vignette { display: none; } | |
| /* polish: keyboard help */ | |
| .help { inset: auto auto var(--gut) var(--gut); width: min(440px, calc(100vw - 2 * var(--gut))); max-height: calc(100vh - 2 * var(--gut)); } | |
| .keys { display: grid; grid-template-columns: auto 1fr; gap: 9px 16px; margin: 0; padding: 16px 20px 6px; overflow: auto; font-size: 11.5px; color: #c9c1b5; } | |
| .keys dt { white-space: nowrap; color: var(--dim); } | |
| .keys dd { margin: 0; } | |
| kbd { display: inline-block; min-width: 20px; padding: 2px 6px; border: 1px solid var(--line-strong); border-bottom-width: 2px; font: inherit; color: var(--fg); text-align: center; } | |
| .help-foot { padding: 4px 20px 16px; margin: 0; } | |
| @media (pointer: coarse) { #btnHelp { display: none; } } | |
| /* polish: phones, keep the layer switch, the read button and the scrubber from overlapping */ | |
| @media (max-width: 720px) { | |
| .tr { left: var(--gut); justify-content: space-between; row-gap: 8px; } | |
| .tr > .seg[role=tablist] { flex: 1 1 100%; } | |
| .tr > .seg[role=tablist] .chip { flex: 1 1 0; min-width: 0; padding-left: 6px; padding-right: 6px; font-size: 10px; letter-spacing: .06em; line-height: 1.25; } | |
| .tear-seg { margin-top: 0; order: 2; } | |
| .tools { order: 1; } | |
| .bl { bottom: calc(var(--gut) + 64px + 44px + 8px + 44px + 14px); } | |
| .tear-seg { flex-wrap: wrap; justify-content: flex-end; } | |
| } | |
| /* polish: a flex-wrap row sizes itself to all its items side by side, which pushed the layer switch over the title */ | |
| @media (min-width: 721px) { .tr { max-width: 600px; } } | |
| /* scroll picker and "Open your own" */ | |
| .scroll-pick { display: flex; align-items: center; gap: 8px; margin-top: 12px; pointer-events: auto; } | |
| .scroll-pick select { background: rgba(12,10,9,0.8); color: #ece6db; border: 1px solid rgba(255,255,255,0.18); border-radius: 999px; padding: 5px 10px; font: inherit; font-size: 12px; max-width: 240px; } | |
| .local-tag { color: #7fd8ff; } | |
| .open-own .o-private { border-left: 2px solid #7fd8ff; padding-left: 10px; } | |
| .o-drop { border: 1.5px dashed rgba(255,255,255,0.28); border-radius: 12px; padding: 22px 16px; text-align: center; cursor: pointer; margin: 10px 0; transition: background .2s, border-color .2s; } | |
| .o-drop.over, .o-drop:focus-visible { background: rgba(255,179,71,0.08); border-color: #ffb347; outline: none; } | |
| .o-drop-btns { display: flex; gap: 8px; justify-content: center; margin-top: 12px; flex-wrap: wrap; } | |
| .o-drop-btns label { cursor: pointer; } | |
| .o-url { display: flex; gap: 8px; margin-top: 8px; } | |
| .o-url input { flex: 1; min-width: 0; background: rgba(0,0,0,0.4); color: inherit; border: 1px solid rgba(255,255,255,0.2); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: 13px; } | |
| .o-status { padding: 10px 12px; border-radius: 8px; font-size: 12px; margin: 8px 0; background: rgba(255,255,255,0.05); } | |
| .o-status.err { background: rgba(255,80,60,0.12); color: #ffb4a8; } | |
| .o-status.ok { background: rgba(80,200,255,0.1); color: #a8e6ff; } | |
| .o-status ul { margin: 6px 0 0; padding-left: 18px; } | |
| .o-list { list-style: none; padding: 0; margin: 6px 0 12px; } | |
| .o-list li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.08); } | |
| .o-list li > span:last-child { display: flex; gap: 6px; } | |
| .mu { text-transform: none; } | |
| @media (min-width: 721px) { .hud.tr .seg[role=tablist] .chip { letter-spacing: .07em; padding: 8px 11px; } } | |
| /* Destroy mode: tool cursors (a fist for Crush, squeezed while pressed; a flame for Burn; a droplet for Water) */ | |
| body.destroy.tool-tear #gl { cursor: crosshair; } | |
| body.destroy.tool-crush #gl { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg fill='%23f3e6cf' stroke='%231a120c' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6 13c0-2 1.4-3.2 3-3.2s2.8 1.1 2.8 2.6c0-1.9 1.3-3 2.9-3s2.8 1.1 2.8 2.8c.1-1.6 1.4-2.6 2.9-2.6 1.6 0 2.8 1.2 2.8 2.9v.9c.4-.7 1.2-1.1 2-1.1 1.4 0 2.3 1 2.3 2.5v5.2c0 4.7-3.7 8.1-8.6 8.1h-3.4C10 28.1 6 24.6 6 20.4z'/%3E%3Cpath d='M11.8 12.4v3.6M17.5 12.2v3.6M23.2 12.5v3.4M6.4 17.4c2.3-1.6 5.4-1.6 7.4.4' fill='none'/%3E%3C/g%3E%3C/svg%3E") 16 11, pointer; } | |
| body.destroy.tool-crush.pressing #gl, body.destroy.tool-crush #gl:active { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='-1 -4 34 38'%3E%3Cg fill='%23f3e6cf' stroke='%231a120c' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6 13c0-2 1.4-3.2 3-3.2s2.8 1.1 2.8 2.6c0-1.9 1.3-3 2.9-3s2.8 1.1 2.8 2.8c.1-1.6 1.4-2.6 2.9-2.6 1.6 0 2.8 1.2 2.8 2.9v.9c.4-.7 1.2-1.1 2-1.1 1.4 0 2.3 1 2.3 2.5v5.2c0 4.7-3.7 8.1-8.6 8.1h-3.4C10 28.1 6 24.6 6 20.4z'/%3E%3Cpath d='M11.8 12.4v3.6M17.5 12.2v3.6M23.2 12.5v3.4M6.4 17.4c2.3-1.6 5.4-1.6 7.4.4' fill='none'/%3E%3C/g%3E%3C/svg%3E") 16 12, pointer; } | |
| body.destroy.tool-burn #gl { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M16 3c1 5 7.5 8 7.5 15.5a7.5 7.5 0 0 1-15 0c0-4.2 2-6.5 3.2-8.6.4 3 1.8 4.3 3 4.4-1-4.2 0-8.3 1.3-11.3z' fill='%23ff8a2a' stroke='%231a120c' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M16 15c.6 3 3.6 4.4 3.6 7.6a3.6 3.6 0 0 1-7.2 0c0-2.2 2-4.4 3.6-7.6z' fill='%23ffd56a'/%3E%3C/svg%3E") 16 4, pointer; } | |
| body.destroy.tool-water #gl { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C12.4 9.6 8 13.8 8 19.4a8 8 0 0 0 16 0C24 13.8 19.6 9.6 16 3z' fill='%2378b8e8' stroke='%230c1620' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M12.4 19.6a3.8 3.8 0 0 0 3 3.6' fill='none' stroke='%23e8f6ff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 16 27, pointer; } | |
| .touch-pop { position: fixed; z-index: 8; width: 44px; height: 44px; margin: -22px 0 0 -22px; pointer-events: none; background: center / contain no-repeat; animation: pop .65s ease-out forwards; } | |
| .touch-pop.crush { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='-1 -4 34 38'%3E%3Cg fill='%23f3e6cf' stroke='%231a120c' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6 13c0-2 1.4-3.2 3-3.2s2.8 1.1 2.8 2.6c0-1.9 1.3-3 2.9-3s2.8 1.1 2.8 2.8c.1-1.6 1.4-2.6 2.9-2.6 1.6 0 2.8 1.2 2.8 2.9v.9c.4-.7 1.2-1.1 2-1.1 1.4 0 2.3 1 2.3 2.5v5.2c0 4.7-3.7 8.1-8.6 8.1h-3.4C10 28.1 6 24.6 6 20.4z'/%3E%3Cpath d='M11.8 12.4v3.6M17.5 12.2v3.6M23.2 12.5v3.4M6.4 17.4c2.3-1.6 5.4-1.6 7.4.4' fill='none'/%3E%3C/g%3E%3C/svg%3E"); } | |
| .touch-pop.burn { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M16 3c1 5 7.5 8 7.5 15.5a7.5 7.5 0 0 1-15 0c0-4.2 2-6.5 3.2-8.6.4 3 1.8 4.3 3 4.4-1-4.2 0-8.3 1.3-11.3z' fill='%23ff8a2a' stroke='%231a120c' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M16 15c.6 3 3.6 4.4 3.6 7.6a3.6 3.6 0 0 1-7.2 0c0-2.2 2-4.4 3.6-7.6z' fill='%23ffd56a'/%3E%3C/svg%3E"); } | |
| .touch-pop.water { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C12.4 9.6 8 13.8 8 19.4a8 8 0 0 0 16 0C24 13.8 19.6 9.6 16 3z' fill='%2378b8e8' stroke='%230c1620' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M12.4 19.6a3.8 3.8 0 0 0 3 3.6' fill='none' stroke='%23e8f6ff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); } | |
| .touch-pop.tear { display: none; } | |
| @keyframes pop { 0% { transform: scale(.6); opacity: 0 } 25% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(.9); opacity: 0 } } | |
| .chip.tool.on { background: var(--fg); color: var(--bg); } | |
| .chip:disabled { opacity: .35; cursor: default; } | |
| .roll-up { flex: none; border: 1px solid var(--line-strong); background: var(--panel); color: var(--fg); min-height: 34px; } | |
| .roll-up.on { background: var(--ink); color: var(--bg); border-color: var(--ink); } | |
| @media (max-width: 720px) { .roll-up { padding: 8px; font-size: 10px; } } | |
| @media (max-width: 720px) { body.destroy #readout { display: none; } } | |
| .prize-badge { font-size: 11px; color: #f2c66d; border: 1px solid rgba(242,198,109,0.45); border-radius: 999px; padding: 3px 9px; text-decoration: none; white-space: nowrap; } | |
| .prize-badge:hover { background: rgba(242,198,109,0.12); } | |
| .scroll-pick .prize-only { font-size: 11px; padding: 3px 9px; } | |
| .scroll-pick .prize-only.on { border-color: rgba(242,198,109,0.7); color: #f2c66d; } | |
| .scroll-pick { flex-wrap: wrap; } | |
| .sr-only { position: absolute ; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } | |
| #gl:focus-visible, .viewer:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; } | |
| .about-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; opacity: .75; } | |
| .about-foot a { color: inherit; } | |
| .about-foot .version { letter-spacing: .02em; } | |
| /* ---------------------------------------------------------------- embed mode (?embed=1) */ | |
| #btnFull, .embed-full, .embed-gate { display: none; } | |
| .embed #btnFull { display: inline-flex; } | |
| .embed .embed-full { display: block; position: fixed; left: 14px; top: 56px; z-index: 30; font-size: 11px; color: var(--dim, #9a8f80); text-decoration: none; padding: 4px 8px; border-radius: 999px; background: rgba(6, 5, 5, .6); } | |
| .embed .embed-full:hover, .embed .embed-full:focus-visible { color: #fff; } | |
| .embed .embed-gate:not([hidden]) { display: flex; position: fixed; inset: 0; z-index: 5; align-items: center; justify-content: center; border: 0; background: transparent; color: inherit; cursor: pointer; touch-action: pan-x pan-y; } | |
| .embed .embed-gate span { padding: 8px 14px; border-radius: 999px; background: rgba(6, 5, 5, .72); border: 1px solid rgba(255, 255, 255, .18); font-size: 12px; letter-spacing: .06em; } | |
| .embed .embed-gate:hover span, .embed .embed-gate:focus-visible span { border-color: rgba(255, 255, 255, .5); } | |
| .embed .hud.tl .kicker, .embed .hud.tl .lede, .embed .vignette { display: none; } | |
| .embed .hud.tl h1 { font-size: clamp(16px, 4.2vw, 24px); line-height: 1.1; max-width: 60vw; } | |
| .embed .layer-hint, .embed .layer-why { display: none; } | |
| .embed .readout { display: none; } | |
| .embed-nocontrols .hud, .embed-nocontrols .scrub, .embed-nocontrols .dock { display: none ; } | |
| @media (max-height: 420px) { .embed .hud.tl h1 { display: none; } } | |
| .embed-code { width: 100%; box-sizing: border-box; background: rgba(255, 255, 255, .05); color: inherit; border: 1px solid rgba(255, 255, 255, .15); border-radius: 8px; padding: 8px; font-size: 11px; resize: vertical; overflow: hidden; } | |
| #embedSheet label { display: block; margin: 4px 0; } | |
| .toast { position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%); z-index: 60; max-width: min(560px, 90vw); padding: 8px 14px; border-radius: 10px; background: rgba(6, 5, 5, .88); border: 1px solid rgba(255, 255, 255, .18); font-size: 12px; line-height: 1.4; } | |
| .toast[hidden] { display: none; } | |