:root{--bg: #05060f;--sun: #ffd6a0;--sun-soft: rgba(255, 190, 120, .22);--text: #f4f1ea;--muted: rgba(244, 241, 234, .55);--faint: rgba(244, 241, 234, .32);--glass: rgba(12, 14, 28, .58);--glass-border: rgba(255, 255, 255, .12);--accent: #c9b896;--danger: #e07a6a;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-sans: "Avenir Next", "Segoe UI", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select{font-family:inherit;font-size:16px}#sky{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;cursor:default;touch-action:none}#sky.is-over-world{cursor:pointer}#sky.is-dragging{cursor:grabbing}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.45) 100%)}#grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;opacity:.07;mix-blend-mode:overlay;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='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.85'/%3E%3C/svg%3E")}body[data-sky=dawn]{--bg: #1c0816;--sun: #ffc9a3;--sun-soft: rgba(255, 140, 90, .32)}body[data-sky=day]{--bg: #081428;--sun: #ffe7c2;--sun-soft: rgba(160, 200, 255, .22)}body[data-sky=dusk]{--bg: #22060c;--sun: #ff8a4a;--sun-soft: rgba(255, 90, 40, .38)}body[data-sky=night]{--bg: #02030c;--sun: #ffd6a0;--sun-soft: rgba(140, 160, 255, .14)}.brand{position:fixed;top:max(6.5vh,calc(env(safe-area-inset-top) + 18px));left:50%;transform:translate(-50%);text-align:center;z-index:4;pointer-events:none;opacity:0;animation:fade-in 1.1s ease .08s forwards;max-width:calc(100vw - 32px)}#search{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:min(420px,48vw);opacity:0;animation:fade-in 1.15s ease .22s forwards}.brand h1{margin:0;font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,3.6vw,2.6rem);letter-spacing:.58em;padding-left:.58em;line-height:1;text-shadow:0 0 42px rgba(255,214,160,.28)}.brand p{margin:.7rem 0 0;font-size:.62rem;font-weight:400;letter-spacing:.38em;text-transform:uppercase;color:var(--faint);padding-left:.38em}#search-input{width:100%;height:52px;border-radius:999px;border:1px solid rgba(255,214,160,.28);background:#080a188c;color:var(--text);text-align:center;font-size:16px;letter-spacing:.04em;outline:none;box-shadow:0 0 90px 24px var(--sun-soft),0 0 0 1px #ffffff0a inset,0 16px 50px #00000073;-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);transition:border-color .25s,box-shadow .25s}#search-input::placeholder{color:#f4f1ea61;letter-spacing:.08em}#search-input:focus{border-color:#ffd6a08c;box-shadow:0 0 110px 32px var(--sun-soft),0 0 0 1px #ffffff0f inset,0 16px 50px #00000073}.suggest{list-style:none;margin:10px 0 0;padding:6px;border-radius:16px;background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);box-shadow:0 18px 50px #0006}.suggest li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:11px;cursor:pointer;font-size:.9rem}.suggest li span{color:var(--faint);font-size:.78rem}.suggest li.is-active,.suggest li:hover{background:#ffffff12}.glass{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 18px 60px #0000006b,0 0 0 1px #ffffff08 inset}.card{position:fixed;z-index:6;width:268px;padding:16px;border-radius:18px;pointer-events:auto;animation:rise .22s ease;border-color:#ffd6a038;box-shadow:0 18px 60px #00000080,0 0 40px #ffd6a01a,0 0 0 1px #ffffff0a inset}.card-top{display:flex;gap:12px;align-items:center}.card h2{margin:0;font-family:var(--font-serif);font-size:1.35rem;font-weight:500}.card-top p,.card-url{margin:4px 0 0;color:var(--muted);font-size:.8rem}.card-stage{margin:6px 0 0;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.card-url{margin:10px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;gap:8px;margin-top:14px}#card-preview{width:56px;height:56px;border-radius:50%}.hint,.empty{position:fixed;left:50%;transform:translate(-50%);z-index:4;text-align:center;color:var(--faint);letter-spacing:.08em;font-size:.78rem;pointer-events:none}.hint{bottom:max(5.5vh,calc(env(safe-area-inset-bottom) + 72px));transition:opacity .6s}.hint-coarse{display:none}.hint.is-gone{opacity:0}.empty{bottom:18vh;line-height:1.7;pointer-events:auto}.text-btn{background:none;border:0;color:var(--accent);cursor:pointer;letter-spacing:.08em;padding:0}kbd{display:inline-block;padding:1px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;font-family:var(--font-sans);font-size:.72em}.dock{position:fixed;bottom:max(4.5vh,calc(env(safe-area-inset-bottom) + 12px));z-index:5;display:flex;gap:10px;opacity:0;animation:fade-in 1s ease .55s forwards}.dock-left{left:max(3vw,env(safe-area-inset-left))}.dock-right{right:max(3vw,env(safe-area-inset-right))}.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--glass-border);background:var(--glass);color:var(--text);display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:transform .2s,border-color .2s,background .2s}.icon-btn:hover{transform:translateY(-2px);border-color:#ffd6a066;background:#141628b3}.icon-btn svg{width:20px;height:20px}.icon-btn span{font-family:var(--font-serif);font-size:1.05rem}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#03040c7a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px}.modal[hidden],.card[hidden],.suggest[hidden],.empty[hidden]{display:none}.panel{width:min(440px,92vw);max-height:min(88vh,760px);overflow:auto;border-radius:22px;padding:28px 26px 22px;animation:rise .28s ease}.panel.wide{width:min(640px,94vw)}.panel h2{margin:0;font-family:var(--font-serif);font-weight:500;font-size:1.8rem}.lede{margin:8px 0 22px;color:var(--muted);font-size:.92rem;line-height:1.5}.ext-only code{font-family:var(--font-sans);font-size:.85em;letter-spacing:.04em;color:var(--accent)}label,.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}label.check{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:.92rem;color:var(--text);gap:10px}input[type=text],select{height:44px;border-radius:12px;border:1px solid var(--glass-border);background:#ffffff0a;color:var(--text);padding:0 12px;font-size:.95rem;letter-spacing:0;text-transform:none;outline:none}input[type=range]{width:100%;accent-color:var(--sun)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border-radius:999px;border:1px solid var(--glass-border);background:#ffffff0a;color:var(--text);padding:6px 12px;font-size:.8rem;letter-spacing:.04em;text-transform:none;cursor:pointer}.chip.is-on{border-color:#ffd6a080;background:#ffd6a01f}.row{display:flex;gap:10px;align-items:center;margin-top:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1}button.primary,button.ghost,.link-btn{height:42px;padding:0 16px;border-radius:999px;cursor:pointer;font-size:.88rem;letter-spacing:.06em}button.primary{border:0;background:linear-gradient(180deg,#f0d7b0,#c9a56a);color:#1a140c;font-weight:500;letter-spacing:.12em}button.ghost,.link-btn{border:1px solid var(--glass-border);background:transparent;color:var(--text);display:inline-grid;place-items:center;text-decoration:none}button.danger{color:var(--danger);border-color:#e07a6a59}.keys{list-style:none;margin:0 0 18px;padding:0;color:var(--muted)}.keys li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.9rem}.apod-body{margin-bottom:16px}.apod-body img,.apod-body iframe{width:100%;border-radius:14px;max-height:360px;object-fit:cover;background:#000}.apod-body h3{font-family:var(--font-serif);font-weight:500;margin:12px 0 6px}.apod-body p{color:var(--muted);font-size:.88rem;line-height:1.55;margin:0}#toasts{position:fixed;top:max(4vh,calc(env(safe-area-inset-top) + 12px));right:max(3vw,env(safe-area-inset-right));z-index:30;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 16px;border-radius:14px;font-size:.88rem;animation:rise .25s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.brand,#search,.dock{opacity:1}}body.is-reduced .brand,body.is-reduced #search,body.is-reduced .dock{animation:none;opacity:1}@media(max-width:720px),(pointer:coarse){.hint-fine{display:none}.hint-coarse{display:inline}.brand{top:max(12px,calc(env(safe-area-inset-top) + 8px))}.brand h1{font-size:clamp(1.15rem,6.4vw,1.85rem);letter-spacing:.32em;padding-left:.32em}.brand p{display:none}#search{width:min(420px,calc(100vw - 32px));top:46%}#search-input{height:48px}.card.is-sheet{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:auto;bottom:max(76px,calc(env(safe-area-inset-bottom) + 68px));width:auto;max-width:none}.card-actions button{flex:1;min-height:44px}.dock{bottom:max(10px,calc(env(safe-area-inset-bottom) + 8px))}.icon-btn{width:46px;height:46px}.modal{align-items:end;padding:0;background:#03040c8c}.panel,.panel.wide{width:100%;max-width:none;max-height:min(88dvh,760px);border-radius:22px 22px 0 0;padding:22px 18px calc(18px + env(safe-area-inset-bottom))}.row:has(button.primary){flex-wrap:wrap}.row button.primary,.row button.ghost,.row .link-btn{min-height:44px}#toasts{left:12px;right:12px}.toast{text-align:center}}body.is-keyboard #search{top:auto;bottom:calc(var(--vv-bottom, 0px) + 12px);transform:translate(-50%)}body.is-keyboard .brand,body.is-keyboard .dock,body.is-keyboard .card,body.is-keyboard .hint{opacity:.2;pointer-events:none}@media(pointer:fine){.keys-touch{display:none}}
