:root{--bg:#0e0f0c;--fg:#ecead8;--muted:#8d8b78;--acc:#c6ff3d;--card:#181a14;--line:#2b2e24}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:"DM Sans",sans-serif;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--acc)}header{display:flex;justify-content:space-between;align-items:center;padding:20px 5vw;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px}
.logo{font-family:"Space Grotesk",sans-serif;font-weight:700;color:var(--fg);text-decoration:none;letter-spacing:.05em}.logo span{color:var(--acc)}
nav a{color:var(--muted);text-decoration:none;margin-left:20px}nav a.on,nav a:hover{color:var(--acc)}
main{flex:1;padding:6vh 5vw;max-width:1200px;width:100%;margin:0 auto}
.kicker{font-family:"Space Grotesk",sans-serif;color:var(--acc);text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;font-weight:600}
h1{font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:clamp(2.6rem,8vw,6rem);line-height:.95;margin:.2em 0 .4em}h1 em{color:var(--acc);font-style:normal}h2{font-family:"Space Grotesk",sans-serif;font-weight:700}
.big{font-family:"Space Grotesk",sans-serif;background:var(--acc);color:var(--bg);border:0;font-weight:700;font-size:1.4rem;padding:22px 44px;cursor:pointer;transition:transform .1s}.big:active{transform:scale(.97)}
select,input{background:var(--card);color:var(--fg);border:1px solid var(--line);padding:12px;font:inherit;margin-bottom:18px;width:100%;max-width:520px}
.site{background:var(--card);border:1px solid var(--line);padding:22px;margin-top:28px}.site h3{font-family:"Space Grotesk",sans-serif;font-weight:600;margin:.2em 0;font-size:1.5rem}
.site .dom{color:var(--muted);font-size:.85rem}.tag{display:inline-block;border:1px solid var(--acc);color:var(--acc);padding:2px 8px;font-size:.75rem}
.acts{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.acts button,.btn{background:none;border:1px solid var(--line);color:var(--fg);padding:8px 14px;font:inherit;cursor:pointer;text-decoration:none}
.acts button.on{border-color:var(--acc);color:var(--acc)}.acts a.visit{background:var(--acc);color:var(--bg);padding:8px 14px;text-decoration:none;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.grid .site{margin-top:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.chips button{background:none;border:1px solid var(--line);color:var(--muted);padding:6px 12px;font:inherit;cursor:pointer}.chips button.on{color:var(--bg);background:var(--acc)}
.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stats div{background:var(--card);border:1px solid var(--line);padding:18px}.stats b{display:block;font-size:2rem;color:var(--acc);font-family:"Space Grotesk",sans-serif;font-weight:700}
footer{padding:20px 5vw;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}
:root{--danger:#f29191;--radius:6px}button,.btn{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;font:inherit;cursor:pointer}button:hover,.btn:hover{border-color:var(--acc)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:3px}[hidden]{display:none!important}h1{font-size:5rem;letter-spacing:0;line-height:1.05}h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:0}nav{display:flex;gap:16px;flex-wrap:wrap}nav a{margin:0}.logo{letter-spacing:0}main{padding-top:36px}.filters{display:flex;gap:16px;flex-wrap:wrap}.filters label{min-width:180px;flex:1;max-width:300px}label{display:block;color:var(--muted);font-size:.9rem}label select,label input{display:block;margin-top:8px}input,select,textarea{border-radius:var(--radius);min-width:0;max-width:100%}.big{border-radius:var(--radius)}.site{border-radius:var(--radius);overflow:hidden;min-width:0;padding:0}.site-body{padding:20px}.site h3,.site p,.dom{overflow-wrap:anywhere}.thumb{width:100%;aspect-ratio:16/10;background:var(--line);overflow:hidden;position:relative}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top}.thumb .fallback{display:grid;place-items:center;height:100%;padding:20px;color:var(--muted)}.thumb img~.fallback{display:none}.thumb.failed img{display:none}.thumb.failed .fallback{display:grid}.meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:.75rem;color:var(--muted)}#card,#daily{max-width:700px}.acts button{min-width:42px;padding:8px 12px}.site .tag{border-radius:3px}.rank{margin:20px 0;max-width:520px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}progress{width:100%;height:5px;accent-color:var(--acc)}.daily-title{margin-top:48px}.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline input{flex:1;margin:0}.inline button{white-space:nowrap}.grid{margin-top:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}.collection{padding:24px 0;border-bottom:1px solid var(--line)}.collection h3{margin-top:0}.collection-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.collection-head h3{margin-right:auto;margin-bottom:0}fieldset{margin:24px 0;border:0;border-bottom:1px solid var(--line);padding:0 0 20px;max-width:700px}legend{font-family:"Space Grotesk",sans-serif;font-size:1.1rem;color:var(--fg);margin-bottom:16px}.check{display:flex;align-items:center;gap:10px;margin-bottom:12px}.check input{width:18px;margin:0;accent-color:var(--acc)}.checks{display:flex;flex-wrap:wrap;gap:20px}textarea{width:100%;margin:12px 0;min-height:80px;background:var(--card);color:var(--fg);border:1px solid var(--line);padding:12px;font:inherit}dialog{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:min(90%,460px)}dialog::backdrop{background:var(--bg);opacity:.85}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:12px 20px;max-width:90%;border-radius:var(--radius);z-index:20}#more{margin-top:20px}.stats div{background:none;border:0;border-bottom:1px solid var(--line)}#card .site{display:grid;grid-template-columns:1fr 1fr}#card .thumb{height:100%;aspect-ratio:auto;min-height:240px}#daily .site{display:grid;grid-template-columns:1fr 1fr}#daily .thumb{height:100%;aspect-ratio:auto}.no-motion *{transition:none!important;animation:none!important}@media(max-width:700px){h1{font-size:3rem}header{padding:18px 5vw}.logo{font-size:.95rem}nav{gap:12px;font-size:.85rem}main{padding-top:28px}#card .site,#daily .site{display:block}#card .thumb,#daily .thumb{aspect-ratio:16/10;min-height:0}.big{width:100%;padding:20px}#rank-count{max-width:65%;text-align:right}.inline input{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.thumb img{position:absolute;inset:0}.thumb img~.fallback{display:grid}.thumb.loaded .fallback{display:none}.thumb .fallback{font-size:.85rem;text-align:center}
#card.pop{animation:pop .35s ease}@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
button.ghost{background:transparent;border:1px solid currentColor;margin-left:.6rem}#chips small{opacity:.6;font-size:.75em}
@media (prefers-reduced-motion:reduce){#card.pop{animation:none}}

/* Stumble Bar */
.stumble{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column}
.stumble[hidden]{display:none}body.stumbling{overflow:hidden}
.sb-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}
.sb-info{flex:1;min-width:160px;display:flex;flex-direction:column;line-height:1.2}.sb-info b{font-family:"Space Grotesk",sans-serif}.sb-info span{color:var(--muted);font-size:.85rem}
.sb-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sb-next{font-family:"Space Grotesk",sans-serif;font-weight:700;background:var(--acc);color:var(--bg);border-color:var(--acc)}
#sb-gem.on,#sb-save.on{border-color:var(--acc);color:var(--acc)}
#sb-frame{flex:1;width:100%;border:0;background:var(--fg)}
.sb-blocked{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:5vw}
.sb-blocked .big{text-decoration:none}

/* Time Warp */
.warp{max-width:520px;margin:4px 0 22px}.warp label b{color:var(--acc);font-family:"Space Grotesk",sans-serif;margin-left:6px}
.warp input[type=range]{accent-color:var(--acc);padding:0;margin:8px 0;border:0;background:none}
html.era-90s{--bg:#c0c0c0;--fg:#000;--muted:#333;--acc:#0000ee;--card:#fff;--line:#808080;--radius:0}
html.era-90s body{font-family:"Times New Roman",Times,serif}html.era-90s h1,html.era-90s h2,html.era-90s h3,html.era-90s .logo,html.era-90s .big{font-family:"Times New Roman",Times,serif}
html.era-90s button,html.era-90s .btn,html.era-90s .big{border:2px outset #dfdfdf;background:#c0c0c0;color:#000}html.era-90s a{color:#0000ee}html.era-90s .tag{border-color:#000;color:#000}
html.era-y2k{--bg:#001a33;--fg:#cfe8ff;--muted:#7fa8cc;--acc:#00ccff;--card:#00264d;--line:#0059b3;--radius:4px}
html.era-y2k body,html.era-y2k h1,html.era-y2k h2,html.era-y2k h3,html.era-y2k .logo,html.era-y2k .big{font-family:Verdana,Tahoma,sans-serif}
html.era-y2k .big{background:linear-gradient(#66e0ff,#0099cc);color:#001a33}
html.era-web2{--bg:#eef3f8;--fg:#1f2a36;--muted:#5b6b7c;--acc:#2f7fe0;--card:#fff;--line:#cdd8e3;--radius:12px}
html.era-web2 body,html.era-web2 h1,html.era-web2 h2,html.era-web2 h3,html.era-web2 .logo{font-family:"Lucida Grande","Helvetica Neue",Arial,sans-serif}
html.era-web2 .big,html.era-web2 .sb-next{background:linear-gradient(#7db8ff,#2f7fe0);color:#fff;border-radius:12px;box-shadow:inset 0 1px 0 #ffffff88,0 2px 6px #0003}
/* Vibe Journeys */
.trail .stops{margin:10px 0 14px;padding-left:20px;font-size:.85rem;line-height:1.5}.trail .stops li.done{color:var(--acc)}.trail .stops li.done::marker{content:"✓ "}
.trail progress{margin-bottom:12px}

/* Galaxy */
.galaxy{position:relative;height:min(72vh,720px);border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(ellipse at center,var(--card),var(--bg) 70%);overflow:hidden;margin-top:12px}
#galaxy-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.galaxy-tip{position:absolute;pointer-events:none;background:var(--card);border:1px solid var(--acc);border-radius:var(--radius);padding:8px 12px;font-size:.85rem;max-width:260px}.galaxy-tip span{color:var(--muted)}
/* Hall of Fame */
.fame{list-style:none;padding:0;margin:16px 0;max-width:820px}
.fame-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.fame-rank{font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:1.3rem;width:52px;color:var(--acc)}
.fame-info{flex:1;display:flex;flex-direction:column;min-width:0}.fame-info b{font-family:"Space Grotesk",sans-serif}
.fame-score{font-family:"Space Grotesk",sans-serif;color:var(--muted);white-space:nowrap;font-size:.9rem}
/* Explorer Passport */
.passport-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:20px;margin:12px 0 24px;max-width:900px}
.passport-head{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}.passport-head h3{margin:4px 0;font-size:1.8rem}
.passport-seal{width:110px;height:110px;border-radius:50%;border:3px dashed var(--acc);color:var(--acc);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:"Space Grotesk",sans-serif;font-size:2rem;font-weight:700;transform:rotate(-8deg)}
.passport-seal span{font-size:.7rem;font-weight:400}
.badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}.badges>*{margin:0!important}
.badge{border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:4px;opacity:.55;font-size:.85rem}
.badge.got{opacity:1;border-color:var(--acc)}.badge b{font-family:"Space Grotesk",sans-serif;font-size:1rem}.badge-icon{font-size:1.8rem}
.vibe,.tech{display:inline-block;margin-left:6px;padding:2px 8px;font-size:.72rem;border-radius:999px}.vibe{background:var(--acc);color:var(--bg)}.tech{border:1px dashed var(--line);color:var(--muted)}
.mystery .clues{padding-left:20px;line-height:1.7}.mystery .clues .locked{color:var(--muted)}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:18px 0}.choices button{text-align:left;font-family:'Space Grotesk',sans-serif}.choices small{display:block;color:var(--muted);font-family:'DM Sans',sans-serif}.choices .wrong{opacity:.4;text-decoration:line-through}.mystery .result{font-family:'Space Grotesk',sans-serif;font-size:1.2rem;color:var(--acc)}
.cal-head{display:flex;align-items:center;gap:12px;margin:8px 0}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:420px}.cal i{font-style:normal;color:var(--muted);font-size:.75rem;text-align:center}.cal button{padding:8px 0;min-height:44px}.cal small{display:block;font-size:.65rem}.cal .won{background:var(--acc);color:var(--bg)}.cal .lost{border-color:var(--danger);color:var(--danger)}.cal .started{border-style:dashed}.cal .future{opacity:.3}.cal .on{outline:2px solid var(--acc);outline-offset:2px}

/* Themes preserve the brand palette and Space Grotesk / DM Sans fonts. */
html[data-theme=index] .grid{display:block}
html[data-theme=index] .grid .site{display:grid;grid-template-columns:180px minmax(0,1fr);margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
html[data-theme=index] .grid .site:not(:has(.thumb)){grid-template-columns:1fr}
html[data-theme=index] .grid .thumb{height:100%;min-height:160px;aspect-ratio:auto}
html[data-theme=index] .grid .site h3{font-size:1.3rem}
html[data-theme=terminal] .site,html[data-theme=terminal] button,html[data-theme=terminal] select,html[data-theme=terminal] input,html[data-theme=terminal] .btn{border-radius:0}
html[data-theme=terminal] .site{background:none;border-style:dashed}
html[data-theme=terminal] h2::before,html[data-theme=terminal] .site h3::before{content:"> ";color:var(--acc)}
html[data-theme=terminal] .tag{border-style:dashed;border-radius:0}
.chill #card.pop{animation:none}.chill .rank progress{height:3px}.chill .site-body{line-height:1.7}.chill .meta{line-height:1.5}
#setting-volume{accent-color:var(--acc);padding:0;border:0;background:none;max-width:420px}#ambient-volume{float:right;color:var(--fg)}
@media(max-width:700px){html[data-theme=index] .grid .site{grid-template-columns:1fr}html[data-theme=index] .grid .thumb{aspect-ratio:16/10;min-height:0}}

#moods{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}#moods button{border-radius:999px;padding:.35rem .8rem}#moods button.on{outline:2px solid currentColor;font-weight:700}
#orbit{margin-top:1rem;max-width:700px}.orbit-h{font-size:1rem;margin:.2rem 0 .5rem}.orbit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.orbit-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.2rem;padding:.6rem}.orbit-item span{font-size:.8rem;opacity:.75}

/* Taste DNA */
.dna-card{border:1px solid var(--line);border-radius:var(--radius,10px);background:var(--card);padding:20px;margin:12px 0 24px;max-width:900px}
.dna-wrap{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:720px){.dna-wrap{grid-template-columns:1fr}}
.dna-svg{width:100%;height:auto}.dna-svg .ring{fill:none;stroke:var(--line)}.dna-svg .spoke{stroke:var(--line)}
.dna-svg .shape{fill:var(--acc);fill-opacity:.22;stroke:var(--acc);stroke-width:2}.dna-svg text{fill:var(--muted);font-size:10px;font-family:"Space Grotesk",sans-serif}
.dna-sliders{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 16px}
.dna-sliders label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted)}.dna-sliders label b{color:var(--fg);font-weight:500;display:flex;justify-content:space-between}
.dna-sliders input{accent-color:var(--acc);width:100%}
.dna-top{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.dna-top span{border:1px solid var(--acc);color:var(--acc);border-radius:999px;padding:2px 10px;font-size:.78rem}


/* Galaxy Constellations */
.galaxy-webring{border-top:1px solid rgba(255,255,255,0.12);padding-top:4px;margin-top:4px;font-size:11px;color:var(--acc,#a3e635)}


/* Smart Frame-Buster Bypass: Portal Card */
.sb-blocked{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at center, var(--card) 0%, var(--bg) 100%)}
.sb-blocked-card{max-width:580px;width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--radius, 12px);overflow:hidden;box-shadow:0 12px 36px rgba(0,0,0,0.4);display:flex;flex-direction:column}
.sb-blocked-shot{width:100%;max-height:260px;object-fit:cover;border-bottom:1px solid var(--line)}
.sb-blocked-content{padding:24px;display:flex;flex-direction:column;gap:12px;text-align:left}
.sb-blocked-badge{font-size:0.75rem;font-weight:700;color:var(--acc);text-transform:uppercase;letter-spacing:0.06em;margin:0}
.sb-blocked-content h2{margin:0;font-size:1.4rem;line-height:1.2}
.sb-blocked-content p{margin:0;line-height:1.5}
.sb-blocked-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}
.sb-blocked-actions .big{text-decoration:none;padding:10px 20px;font-size:1rem}
.sb-fallback-btn{font-size:0.8rem;opacity:0.85;cursor:pointer}
