/* (c) 2026 aiidea.co.uk. All rights reserved. */
:root{--ink: #efe8da;--dim: rgba(239, 232, 218, .66);--faint: rgba(239, 232, 218, .4);--line: rgba(239, 232, 218, .13);--line-2: rgba(239, 232, 218, .24);--glass: rgba(16, 18, 21, .62);--glass-2: rgba(239, 232, 218, .06);--amber: #e8b25c;--teal: #6fd0e0;--serif: Fraunces, "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--pad: clamp(14px, 2.2vw, 30px);--shadow: 0 10px 40px rgba(0, 0, 0, .35)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:#0b0d10;color:var(--ink)}body{font:13px/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}#view{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}body.tooling #view{cursor:crosshair}button,select,input{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:1.5px solid var(--teal);outline-offset:2px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}#ui{position:fixed;inset:0;pointer-events:none;transition:opacity .5s ease}#ui button,#ui select,#ui input,#ui label,#panel,#timeline,#topbar{pointer-events:auto}body.bare #ui{display:none}.mark{font:500 10.5px/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--amber)}#brand{position:absolute;top:var(--pad);left:var(--pad);max-width:min(420px,45vw);text-shadow:0 1px 18px rgba(0,0,0,.45),0 0 2px rgba(0,0,0,.35)}#brand .mark{color:#f3c577}#title{margin:10px 0 8px;font:400 clamp(36px,4.4vw,58px)/1 var(--serif);letter-spacing:-.02em;color:#fff7e8}#blurb{margin:0;max-width:34ch;font-size:13px;line-height:1.5;color:#fff7e8db}#blurb:empty{display:none}#topbar,#panel,#timeline,#hint,#about .sheet,#nogl .card,#btn-show{background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);border:1px solid var(--line);box-shadow:var(--shadow)}#topbar{position:absolute;top:var(--pad);right:var(--pad);display:flex;gap:2px;padding:4px;border-radius:999px}.icon{padding:6px 12px;border-radius:999px;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);transition:color .2s,background .2s}.icon:hover{color:var(--ink);background:var(--glass-2)}.icon[aria-pressed=true]{color:var(--amber)}#panel{position:absolute;top:calc(var(--pad) + 52px);right:var(--pad);bottom:calc(var(--pad) + 96px);width:304px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;border-radius:16px;padding:2px 18px 6px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}#panel::-webkit-scrollbar{width:6px}#panel::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.group{padding:16px 0 18px;border-top:1px solid var(--line)}.group:first-child{border-top:0}.group h2{margin:0 0 12px;font:500 10px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--faint)}#presets{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.preset{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px 10px 10px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--glass-2);transition:border-color .2s,background .2s}.preset b{font:500 12.5px/1.2 var(--sans);color:var(--ink)}.preset i{font-style:normal;font-size:10.5px;line-height:1.35;color:var(--faint);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.preset:hover{border-color:var(--line-2);background:#efe8da1a}.preset.on{border-color:var(--amber);background:#e8b25c1f}.preset.on b{color:#f6cf8e}.preset.on i{color:var(--dim)}.row{display:flex;gap:6px;flex-wrap:wrap;align-items:stretch}.btn{padding:8px 12px;border:1px solid var(--line-2);border-radius:999px;font-size:12px;font-weight:500;line-height:1.2;color:var(--ink);background:var(--glass-2);transition:border-color .2s,background .2s,color .2s}.btn:hover{border-color:var(--amber);color:#f6cf8e}.btn:active{background:#e8b25c29}.btn.big{padding:14px 40px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:#1a1408;background:var(--amber);border-color:var(--amber);box-shadow:0 6px 30px #e8b25c4d}.btn.big:hover{background:#f3c577;color:#1a1408}.pick{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding-left:4px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}select{appearance:none;-webkit-appearance:none;padding:7px 24px 7px 11px;border:1px solid var(--line-2);border-radius:999px;font-family:var(--mono);font-size:11.5px;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--glass-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23efe8da' fill-opacity='.6'/%3E%3C/svg%3E") no-repeat right 10px center;cursor:pointer}select option{background:#15181c;color:var(--ink)}.seg{display:flex;padding:3px;margin-bottom:4px;border:1px solid var(--line);border-radius:999px;background:#00000038}.seg button{flex:1 1 0;min-width:0;padding:6px 2px;border-radius:999px;font-size:11.5px;font-weight:500;text-align:center;white-space:nowrap;color:var(--dim);transition:color .2s,background .2s}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--amber);color:#1a1408}.slider{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name val" "rng rng";align-items:baseline;row-gap:4px;margin:12px 0 0}.slider span{grid-area:name;font-size:12px;color:var(--dim)}.slider output{grid-area:val;min-width:3ch;text-align:right;font:400 11px/1 var(--mono);color:var(--ink)}.slider input{grid-area:rng}.seg+.slider{margin-top:14px}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:18px;margin:0;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:var(--line-2)}input[type=range]::-moz-range-track{height:2px;border-radius:2px;background:var(--line-2)}input[type=range]::-moz-range-progress{height:2px;background:var(--amber);border-radius:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-6px;border-radius:50%;border:2px solid #15181c;background:var(--amber);box-shadow:0 0 0 1px #e8b25c80;transition:transform .15s}input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;border:2px solid #15181c;background:var(--amber);box-shadow:0 0 0 1px #e8b25c80}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}input[type=range]:focus-visible{outline-offset:0;border-radius:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.btn.ex{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 11px;border-radius:10px;text-align:left;font-size:12px}.btn.ex small{font:400 9.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);opacity:.85}#timeline{position:absolute;left:50%;bottom:var(--pad);transform:translate(-50%);display:flex;align-items:center;gap:22px;padding:10px 26px 10px 12px;border-radius:999px;white-space:nowrap;max-width:calc(100vw - 2 * var(--pad))}.round{flex:none;width:56px;height:56px;border-radius:50%;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#1a1408;background:var(--amber);box-shadow:0 4px 18px #e8b25c4d;transition:transform .15s,background .2s}.round:hover{background:#f3c577}.round:active{transform:scale(.95)}.speed{display:flex;align-items:center;gap:2px}.speed .icon{padding:6px 9px;font-size:14px;letter-spacing:0}#speed-label{min-width:3ch;text-align:center;font-size:12px;color:var(--ink)}.clock{text-align:center;padding:0 4px}#years{font:300 38px/1 var(--serif);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em;color:#fff7e8}.unit{margin-top:5px;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--faint)}#stat-line{font-size:10.5px;letter-spacing:.04em;color:var(--dim);padding-left:22px;border-left:1px solid var(--line)}#stat-line:empty{display:none}#hint{position:absolute;left:50%;bottom:calc(var(--pad) + 86px);transform:translate(-50%);max-width:min(520px,calc(100vw - 2 * var(--pad)));padding:8px 16px;border-radius:999px;font-size:12px;text-align:center;color:var(--ink);transition:opacity .4s ease}#hint:empty{display:none}#btn-show{display:none}body.bare #btn-show{display:block;position:fixed;right:var(--pad);bottom:var(--pad);padding:6px 14px;border-radius:999px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);opacity:.18;transition:opacity .3s}body.bare #btn-show:hover,body.bare #btn-show:focus-visible{opacity:1}#intro{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 50%,#0b0d1073,#0b0d10c7 55%,#0b0d10f0);transition:opacity 1.2s ease,visibility 0s linear 1.2s}body.started #intro{opacity:0;pointer-events:none;visibility:hidden}#intro .card{max-width:560px;text-align:center}#intro .mark{margin-bottom:26px}#intro h1{margin:0 0 22px;font:300 clamp(40px,6.4vw,76px)/1.02 var(--serif);letter-spacing:-.025em;color:#fff7e8}#intro p{margin:0 auto 34px;max-width:46ch;font-size:15px;line-height:1.65;color:var(--dim)}#intro .keys{margin-top:28px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}#about{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px;background:#08090b9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#about .sheet{position:relative;width:100%;max-width:720px;max-height:86vh;overflow-y:auto;padding:40px 44px 38px;border-radius:18px;background:#121418e6;user-select:text;-webkit-user-select:text;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}#about .sheet>.icon{position:sticky;float:right;top:-24px;margin:-24px -28px 0 0;border:1px solid var(--line);background:#121418e6}#about h2{margin:0 0 16px;font:300 38px/1.1 var(--serif);letter-spacing:-.02em;color:#fff7e8}#about h3{margin:30px 0 12px;padding-top:18px;border-top:1px solid var(--line);font:500 10px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--amber)}#about p{margin:0 0 14px;font-size:14.5px;line-height:1.65;color:var(--dim)}#about dl{margin:22px 0 0;display:grid;grid-template-columns:150px 1fr;gap:14px 24px}#about dt{font:400 19px/1.25 var(--serif);color:#fff7e8}#about dd{margin:0;font-size:14px;line-height:1.6;color:var(--dim)}#about ul{margin:0;padding:0;list-style:none}#about li{position:relative;padding-left:20px;margin-bottom:10px;font-size:14px;line-height:1.6;color:var(--dim)}#about li:before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:var(--teal)}#about .keys{font-size:11px;line-height:1.9;letter-spacing:.04em;color:var(--faint)}#nogl{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;background:#0b0d10}#nogl .card{max-width:440px;padding:34px 36px;border-radius:18px;text-align:center}#nogl h1{margin:0 0 12px;font:300 30px/1.15 var(--serif);color:#fff7e8}#nogl p{margin:0;font-size:14px;line-height:1.6;color:var(--dim)}@media (max-width: 760px){:root{--pad: 12px}#brand{max-width:calc(100vw - 230px)}#title{font-size:32px;margin-top:8px}#blurb{display:none}#topbar{padding:3px}.icon{padding:6px 9px;font-size:9.5px;letter-spacing:.1em}#panel{top:auto;left:var(--pad);right:var(--pad);bottom:calc(var(--pad) + 68px);width:auto;max-height:42vh;padding:2px 14px 4px}.group{padding:12px 0 14px}#timeline{left:var(--pad);right:var(--pad);transform:none;justify-content:space-between;gap:10px;padding:8px 14px 8px 8px;max-width:none}.round{width:48px;height:48px;font-size:9px}#years{font-size:26px}.unit{font-size:8px;letter-spacing:.16em;margin-top:3px}.speed .icon{padding:6px 7px}#stat-line{display:none}#hint{bottom:auto;top:96px}#about .sheet{padding:28px 22px}#about dl{grid-template-columns:1fr;gap:4px}#about dd{margin-bottom:12px}#intro p{font-size:14px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}#intro{transition:none}}
