: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 !important; } 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 !important; } /* 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 !important; 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 !important; } @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; }