:root{
 color-scheme:dark;
 --bg:#050814;--navy:#080d1f;--panel:#10172c;--panel2:#151f38;
 --edge:#2e4772;--edge2:#6c88b7;--cyan:#79eaf5;--cyan2:#3bc5de;
 --violet:#a98dff;--gold:#f4c970;--green:#63e9b3;--text:#edf4ff;--muted:#9cadcf;
 --shadow:0 24px 70px #0008;--radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px;overflow-x:clip;background:var(--bg)}
body{margin:0;min-height:100vh;overflow-x:clip;color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:
 radial-gradient(circle at 12% -8%,#2b3f78 0,transparent 34%),
 radial-gradient(circle at 88% 12%,#2f1f61 0,transparent 30%),
 linear-gradient(180deg,#071020 0%,#060a16 44%,#040611 100%)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.25;background-image:
 radial-gradient(circle,#b9efff 0 1px,transparent 1.5px),
 radial-gradient(circle,#d2baff 0 1px,transparent 1.5px);
 background-size:71px 71px,113px 113px;background-position:0 0,34px 52px;mask-image:linear-gradient(#000,transparent 78%)}
a{color:var(--cyan);text-decoration:none}
button,input,select{font:inherit}
button,a,input,select,summary{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
.skip-link{position:fixed;z-index:999;left:12px;top:10px;transform:translateY(-160%);background:#fff;color:#111;padding:9px 12px;border-radius:9px}
.skip-link:focus{transform:none}

.top,.journey,.section-nav,main,.gallery,.next-route,footer{width:min(1180px,calc(100% - 28px));margin-inline:auto}
.top{position:relative;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0 14px}
.spark-brand{display:flex;align-items:center;gap:11px;color:var(--text);min-width:0}
.spark-mark{display:block;width:43px;height:43px;flex:none;border-radius:11px;box-shadow:0 0 26px #4fe0ef3d}
.spark-brand b{display:block;font-size:.86rem;letter-spacing:.16em}
.spark-brand small{display:block;margin-top:2px;color:var(--muted);font-size:.59rem;letter-spacing:.14em}
.route-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.route-nav a{color:#b8c8e8;border:1px solid transparent;border-radius:999px;padding:8px 11px;font-size:.72rem;font-weight:700;letter-spacing:.045em}
.route-nav a:hover,.route-nav a[aria-current=page]{border-color:#6ce7ff4f;background:#163051b3;color:#e9fbff}

.journey{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #6f87b13b;background:#0a1225cc;backdrop-filter:blur(16px);border-radius:17px;padding:9px 12px;box-shadow:0 10px 40px #0004}
.journey-title{color:#8ea2c8;font:700 .61rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em}
.journey ol{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));gap:5px;list-style:none;margin:0;padding:0;flex:1;max-width:620px}
.journey li{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:6px;color:#7688ac;border-left:1px solid #33476a;padding:4px 8px;font-size:.65rem;font-weight:800;letter-spacing:.08em}
.journey li:first-child{border-left:0}
.journey li b{color:#61759f;font:700 .58rem ui-monospace,monospace}
.journey li.current,.journey li.current b{color:var(--cyan)}
.journey li a{color:inherit}

.section-nav{position:sticky;top:8px;z-index:35;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;padding:6px;border:1px solid #536a9340;background:#081223e8;backdrop-filter:blur(18px);border-radius:15px;box-shadow:0 12px 30px #0006}
.section-nav button,.section-nav a{appearance:none;border:1px solid transparent;background:transparent;color:#9eb0d1;border-radius:10px;min-height:37px;padding:8px 13px;font-size:.7rem;font-weight:750}
.section-nav button:hover,.section-nav button[aria-current=page],.section-nav .play-chip:hover{color:#fff;border-color:#5fddf253;background:#17314ccc}
.section-nav .play-chip{margin-left:auto;color:#06101d;background:linear-gradient(120deg,#73e8f4,#ac9cff);border-color:transparent}

main{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.9fr);gap:18px;align-items:start;padding:18px 0 22px}
.stage-wrap,.panel,.gallery,.next-route{border:1px solid #59739b46;background:linear-gradient(180deg,#111a31e8,#0b1225e8);box-shadow:var(--shadow);border-radius:var(--radius)}
.stage-wrap{padding:18px;overflow:hidden}
.panel{padding:17px;position:sticky;top:75px}
.eyebrow{margin:0;color:#8ccbe2;font:800 .62rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em}
.hint,#status,footer p{color:var(--muted);font-size:.79rem}
h1,h2,h3,p{overflow-wrap:anywhere}
h2{margin:.55rem 0 .35rem;font-size:1rem;color:#f3d797}
.panel h2{color:#e7edff}

.habitat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.plate{margin-top:7px}
.plate strong{display:block;color:#fff;font-size:clamp(1.35rem,3vw,2rem);line-height:1.08;letter-spacing:-.025em}
.plate span{display:block;color:var(--gold);font:.7rem ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em;margin-top:6px}
#meta{margin:8px 0 0}
.sound-stack{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
#voice,#music,#mic-react{min-height:38px;white-space:nowrap;font-size:.67rem;font-weight:800}
#voice.on,#music[aria-pressed=true],#mic-react[aria-pressed=true]{border-color:#5de9f46e;background:#17334d;color:#e8fdff;box-shadow:0 0 22px #54dff31b}

.habitat{position:relative;min-height:385px;overflow:hidden;margin-top:14px;border:1px solid #456187;border-radius:17px;background:
 radial-gradient(circle at 50% 78%,#1d4860 0,#122842 31%,transparent 58%),
 linear-gradient(180deg,#0c1733,#090d1e 72%);
 box-shadow:inset 0 0 90px #153f5857,0 18px 55px #0006}
.habitat:before{content:"";position:absolute;inset:auto 8% 8% 8%;height:18%;border-radius:50%;background:radial-gradient(ellipse,#75e7dc26,transparent 65%);filter:blur(7px)}
.habitat:after{content:"";position:absolute;left:7%;right:7%;bottom:9%;border-bottom:1px solid #7ff0e254;box-shadow:0 0 30px #70e6df40}
.habitat-stars{position:absolute;inset:0;opacity:.55;background-image:radial-gradient(circle,#e8f8ff 0 1px,transparent 1.5px),radial-gradient(circle,#a7caff 0 1px,transparent 1.5px);background-size:63px 63px,97px 97px;background-position:14px 11px,41px 58px;mask-image:linear-gradient(#000,transparent 78%)}
.habitat-tag,.habitat-status{position:absolute;top:12px;z-index:2;font:700 9px ui-monospace,monospace;letter-spacing:.13em}
.habitat-tag{left:12px;color:#8db0c7}
.habitat-status{right:12px;display:flex;align-items:center;gap:6px;color:#8ebbb3}
.habitat-status i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 11px var(--green)}
#view{position:relative;z-index:1;display:block;width:100%;height:auto;max-width:100%;image-rendering:pixelated;background:transparent;cursor:pointer}
.bubble{position:absolute;z-index:3;top:46px;right:15px;max-width:min(48%,230px);margin:0;background:#e1f2ff;color:#101933;border:1px solid #fff8;padding:7px 10px;border-radius:11px 11px 2px 11px;box-shadow:0 10px 28px #0006;font:12px/1.35 ui-monospace,monospace;pointer-events:none}

.speech{min-height:63px;margin:10px 2px 6px;padding:10px 12px;border-left:2px solid #67dbe9;background:linear-gradient(90deg,#10223a8c,transparent);border-radius:0 10px 10px 0}
.speech>span{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:800}
.speech p{margin:4px 0 0;color:#a5efff;font-size:.88rem}

.interactions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:10px}
.interactions button{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 4px;font-size:.69rem;font-weight:800}
.interactions button span{color:var(--cyan);font-size:.86rem}

.audio-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #48638a55;border-radius:12px;background:#0a1427}
.audio-strip>div{min-width:0}
.audio-strip strong{display:block;font-size:.62rem;letter-spacing:.11em;color:#dce7ff}
.audio-strip span{display:block;margin-top:2px;color:#8296ba;font-size:.68rem}
.audio-strip label{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;color:#aab9d5;font-size:.69rem}
.audio-strip input{width:100px;accent-color:var(--cyan)}

.stats-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0 6px}
.stats{margin:0;color:#9cafce;font:11px ui-monospace,SFMono-Regular,monospace}
.stats-row a{font-size:.7rem;font-weight:750}
.generate{display:block;width:100%;min-height:48px;margin-top:8px;padding:13px!important;font-size:.78rem!important;font-weight:850;letter-spacing:.055em}
.identity-card{margin-top:13px;padding:11px 12px;border:1px solid #394f7552;border-radius:12px;background:#090f20}
.provenance{font:10px/1.6 ui-monospace,SFMono-Regular,monospace}
.provenance p{color:var(--cyan);margin:0}.provenance code{display:block;color:#899dbe;overflow-wrap:anywhere;font-size:9px}
.identity-note{margin:7px 0 0;color:#8394b2;font-size:.7rem}
.destinations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}
.destinations a{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;font-size:.65rem;font-weight:800;padding:10px 5px}
.destinations a span{color:#839cc6;font:700 .58rem ui-monospace,monospace}
.destinations .primary span{color:#112442}
#status{margin:10px 2px 0}

button,.button,select,input:not([type=range]):not([type=checkbox]){max-width:100%;min-width:0;min-height:40px;border:1px solid var(--edge);border-radius:9px;padding:9px 10px;background:#16213d;color:var(--text);transition:border-color .18s,background .18s,transform .18s}
button:hover,.button:hover{border-color:#6eeafa80;background:#1a2d4d}
button:active,.button:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
button.on,.primary,button[aria-pressed=true]{border-color:#6eeaf58a;color:#ecfeff;background:linear-gradient(120deg,#17334f,#282653)}

details{border-top:1px solid #31445f;margin-top:14px;padding-top:11px}
summary{cursor:pointer;color:#a7dff1;font-size:.78rem;font-weight:750}
.stage-preview{margin-top:14px}
.stage-picks{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.evol-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}
figure{margin:0;text-align:center;font-size:.68rem;color:#aabbd6}
canvas{image-rendering:pixelated;max-width:100%;background:#0a1021;border-radius:9px}
.talk-card{margin-top:12px;padding:12px;border:1px solid #455e8657;border-radius:12px;background:#091225}
.talk-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.talk-head label{margin:0} .talk-head span{flex:none;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #4f6f98;border-radius:999px;padding:4px 7px;background:#101d35;color:#8ea5c8;font:800 8px ui-monospace,SFMono-Regular,monospace;letter-spacing:.09em}.talk-head span.remote{border-color:#5ce5ef75;background:#123247;color:#dffcff;box-shadow:0 0 18px #56e4ee1a}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.row input{flex:1;min-width:130px}
label{display:grid;gap:5px;margin:10px 0;color:#becae0;font-size:.79rem}
input[type=range]{width:100%;accent-color:var(--cyan)}
select{width:100%;text-overflow:ellipsis}
.check{display:flex;gap:8px;align-items:flex-start}.check input{flex:none}
.training-bar{height:12px;position:relative;border-radius:99px;background:#192847;margin:8px 0 14px;overflow:hidden}.training-bar i{position:absolute;left:35%;width:30%;height:100%;background:#57d8c388}.training-bar b{position:absolute;height:100%;width:5px;background:var(--gold)}

.panel-head{padding:3px 3px 8px}
.panel-head h2{margin:6px 0 4px;font-size:1.15rem}
.recipe{border:1px solid #344c7155;border-radius:12px;background:#0b1428;padding:11px;margin-top:10px}
.recipe summary{padding:1px 0 6px}
.drive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}
.drive-grid label{margin:0;padding:8px;border:1px solid #334b7060;border-radius:10px;background:#101b33}
.drive-grid label span{display:grid;grid-template-columns:1fr 28px;gap:5px;align-items:center}
.drive-grid b{text-align:right;color:var(--cyan);font:700 10px ui-monospace,monospace}
.seed code{display:block;word-break:break-all;color:var(--gold);font-size:9px}

.qvm-lab{margin-top:12px;padding:13px;border:1px solid #4c5f925c;border-radius:13px;background:linear-gradient(145deg,#111c38,#0a1228);box-shadow:inset 0 0 30px #443d8a15}
.lab-title{display:flex;align-items:center;gap:8px}.lab-title span{border:1px solid #9b8fff5c;border-radius:999px;padding:4px 7px;color:#c8baff;font:700 8px ui-monospace,monospace;letter-spacing:.12em}.lab-title h2{margin:0}
.qvm-lab>button{width:100%;font-weight:800;letter-spacing:.035em;border-color:#7ee7ff;background:linear-gradient(110deg,#153149,#252352)}
.growth-meter{height:10px;margin:12px 0 6px;border-radius:99px;background:#172240;overflow:hidden;border:1px solid #314878}.growth-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#7ee7ff,#c9b1ff,#f3c15b);transition:width .35s ease}.qvm-growth{margin:0;color:#b8c9eb;font:10px/1.5 ui-monospace,monospace;letter-spacing:.03em}
.keep-card{margin-top:12px;padding:13px;border:1px solid #395a7a55;border-radius:13px;background:linear-gradient(145deg,#0b1e2b,#121730)}
.keep-card h2{margin:5px 0 3px}.keep-card button{width:100%}
.honest p{font-size:.73rem;color:#91a2c0}

.gallery{position:relative;z-index:2;padding:18px;margin-bottom:18px}
.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.gallery-head h2{margin:4px 0 0;font-size:1.25rem;color:#fff}.gallery-head a{font-size:.72rem;font-weight:750}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.beast-card{width:100%;height:100%;text-align:center;font-size:.72rem;padding:10px;border-radius:13px;background:linear-gradient(180deg,#14203a,#0b1326);border-color:#435c8354}
.beast-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0005;border-color:#70e6f16b}
.beast-card canvas{display:block;width:100%;height:auto;margin-bottom:7px;border-radius:9px;background:radial-gradient(circle,#19314d,#0a1020 70%)}
.roster-search-label{display:grid;gap:6px;max-width:420px;margin:12px 0 0;color:#becced;font-weight:750;font-size:.78rem}
.roster-search-label input{min-height:44px;width:100%;border-radius:12px}
.roster-card{display:flex;min-width:0;flex-direction:column;gap:6px;border:1px solid #435c8354;transition:border-color .2s,transform .2s;overflow:hidden}
.roster-card strong{color:#f5f7ff;font-size:.83rem;overflow-wrap:anywhere}
.roster-card small{color:#aab9d5;line-height:1.35;min-height:2.7em}
.roster-card code{color:#7ce4ec;font-size:.7rem}
.roster-card canvas{margin-bottom:1px}
.roster-active{border-color:#7ce4ec;box-shadow:0 0 0 1px #7ce4ec44,0 8px 22px #0004}
.roster-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:auto;padding-top:7px}
.roster-actions button{min-width:0;min-height:44px;padding:5px 2px;font-size:.64rem;font-weight:750;white-space:normal;border:1px solid #4e6b92;background:#101e38;border-radius:8px;color:#def8ff;cursor:pointer}
.roster-actions button:first-child{background:#143e58;border-color:#3dc8d2}
.roster-actions button:hover,.roster-actions button:focus-visible{border-color:#9aefff;background:#28567d;outline-offset:2px}


.next-route{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;margin-bottom:18px}
.next-route>div,.next-route>a{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;gap:1px 8px;align-items:center;min-height:78px;padding:13px;border-right:1px solid #334968;color:#b8c7e1}
.next-route>*:last-child{border-right:0}
.next-route span{grid-row:1/span 2;color:#6880aa;font:700 .7rem ui-monospace,monospace}
.next-route small{font-size:.52rem;letter-spacing:.12em;color:#7e91b2}.next-route strong{font-size:.76rem;color:#e8f1ff}
.next-route a:hover{background:#13223b}.next-route>div{background:#10273a}.next-route>div strong{color:var(--cyan)}

footer{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:7px 18px;align-items:center;padding:8px 2px 86px}
footer p{margin:0;font:700 .62rem ui-monospace,monospace;letter-spacing:.1em}
footer nav{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}footer nav a{font-size:.7rem}footer small{grid-column:1/-1;color:#7285a7;font-size:.66rem}

.mobile-nav{display:none}
[hidden]{display:none!important}

@media(max-width:920px){
 main{grid-template-columns:1fr}.panel{position:relative;top:auto}
 .journey-title{display:none}.journey ol{max-width:none}
 .destinations{grid-template-columns:1fr 1fr}.destinations .primary{grid-column:1/-1}
}
@media(max-width:680px){
 html{scroll-padding-top:112px}
 body{padding-bottom:70px}
 .top{align-items:flex-start;padding-top:14px}.route-nav{display:none}
 .spark-brand small{font-size:.54rem}
 .journey{padding:7px 8px}.journey ol{grid-template-columns:repeat(3,1fr)}.journey li{display:flex;justify-content:center;border-left:0;padding:5px 2px;font-size:.56rem}.journey li b{display:none}
 .section-nav{top:6px;justify-content:space-between;padding:5px}.section-nav button{flex:1;padding:7px 5px}.section-nav .play-chip{display:none}
 main{padding-top:12px}.stage-wrap,.panel,.gallery{padding:12px;border-radius:16px}
 .habitat-head{display:block}.sound-stack{justify-content:flex-start;margin-top:9px}
 .habitat{min-height:0}.bubble{max-width:58%;top:40px;font-size:11px}
 .interactions{grid-template-columns:repeat(3,minmax(0,1fr))}.interactions button{min-height:44px;font-size:.72rem}
 .audio-strip{align-items:flex-start;flex-direction:column}.audio-strip label{width:100%}.audio-strip input{flex:1;width:auto}
 .drive-grid{grid-template-columns:1fr}
 .destinations{grid-template-columns:1fr}.destinations .primary{grid-column:auto}.destinations a{min-height:44px}
 .stats-row{align-items:flex-start;flex-direction:column}
 .evol-grid{gap:5px}.stage-picks button{flex:1}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .next-route{grid-template-columns:1fr 1fr}.next-route>*:nth-child(2){border-right:0}.next-route>*{border-bottom:1px solid #334968}.next-route>*:nth-child(3),.next-route>*:nth-child(4){border-bottom:0}
 footer{grid-template-columns:1fr;padding-bottom:90px}footer nav{justify-content:flex-start}
 .mobile-nav{position:fixed;z-index:60;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px;border:1px solid #607ca557;background:#071124ed;backdrop-filter:blur(18px);border-radius:14px;box-shadow:0 16px 45px #000a}
 .mobile-nav button,.mobile-nav a{display:grid;place-items:center;min-height:42px;border:0;border-radius:10px;background:transparent;color:#aebed8;font-size:.65rem;font-weight:800}
 .mobile-nav button[aria-current=page],.mobile-nav a:hover{background:#17304c;color:#ecfeff}
}
@media(max-width:390px){
 .top,.journey,.section-nav,main,.gallery,.next-route,footer{width:calc(100% - 20px)}
 .spark-mark{width:38px;height:38px;border-radius:13px}
 .spark-brand b{font-size:.76rem}.spark-brand small{max-width:210px}
 .habitat-status{display:none}
 .plate strong{font-size:1.25rem}
 #voice,#music,#mic-react{font-size:.61rem;padding-inline:8px}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .next-route{grid-template-columns:1fr}.next-route>*{border-right:0;border-bottom:1px solid #334968!important}.next-route>*:last-child{border-bottom:0!important}
}
@media(max-width:330px){
 .spark-brand small{display:none}.section-nav button{font-size:.62rem}.interactions{gap:5px}
 .stage-wrap,.panel,.gallery{padding:10px}.bubble{max-width:66%}.grid{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .growth-meter i{transition:none}
}

.first-steps{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0;padding:16px;border:1px solid #617190;border-radius:16px;background:#14243b}.first-steps label{flex-basis:100%;color:#d1e9ff}.first-steps input{min-width:0;width:100%;max-width:280px;min-height:44px;font-size:16px;padding:10px;border:1px solid #647c9f;background:#0a1425;color:#f1f7ff;border-radius:9px}.first-steps button{min-height:44px;flex:1 1 140px}.first-steps span{font-size:12px;color:#b7e3d2;flex-basis:100%}.keep-card input[type=file]{max-width:100%;font-size:14px;margin-block:10px}html[data-beastbox-reduced-motion="true"] *,html[data-beastbox-reduced-motion="true"] *::before,html[data-beastbox-reduced-motion="true"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}

/* Front-end finishing pass (2026-10-11): phones get the full seven-room
   journey as one swipeable row (the three-step strip stays on wider screens),
   a Home button in the bottom bar, and 44px tap targets. */
.route-nav a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:680px){
 .top{flex-wrap:wrap;gap:8px}
 .route-nav{display:flex;flex-wrap:nowrap;justify-content:flex-start;width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:4px;padding:4px;border:1px solid #6f87b13b;border-radius:14px;background:#0a1225cc}
 .route-nav::-webkit-scrollbar{display:none}
 .route-nav a{flex:0 0 auto;padding:8px 12px;font-size:.72rem;white-space:nowrap}
 .journey{display:none}
 .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
 .mobile-nav button,.mobile-nav a{min-height:44px}
 .section-nav button{min-height:44px}
}
@media (pointer:coarse){
 html body :is(button,select,summary,[role=button]):not([role=switch]){min-height:44px;min-width:44px}
 html body input[type=range]{min-height:44px}
 .route-nav a,.mobile-nav a,.spark-brand,.next-route a,footer a{min-height:44px}
}
@media(max-width:680px){.route-nav{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);padding-right:30px}}

/* Spark's chat surface shares providers and per-creature storage with the talk
   room. Its fixed shell follows the visual viewport when a keyboard opens. */
.spark-chat-overlay[hidden],.spark-chat-dialog [hidden],.spark-chat-resume[hidden]{display:none!important}
.spark-chat-overlay{position:fixed;z-index:200;left:var(--talk-visible-left,0px);bottom:var(--talk-keyboard-bottom,0px);width:var(--talk-visible-width,100vw);height:var(--talk-visible-height,100dvh);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:#020611ba;backdrop-filter:blur(14px);overscroll-behavior:contain}
.spark-chat-dialog{display:flex;flex-direction:column;min-width:0;min-height:0;width:min(620px,100%);height:min(740px,100%);max-height:100%;border:1px solid #718db171;border-radius:24px;background:radial-gradient(ellipse at 5% 0,#243759aa,transparent 55%),linear-gradient(180deg,#111c32,#091222);color:#edf4ff;box-shadow:0 30px 100px #000b,0 0 45px #70b7e516;overflow:hidden;isolation:isolate;animation:spark-chat-arrive .18s ease-out}
.spark-chat-dialog[data-expanded=true]{width:min(920px,100%);height:100%}
.spark-chat-header{display:flex;align-items:center;gap:12px;flex:none;padding:17px 16px 15px;border-bottom:1px solid #829bd01f}
#talk-avatar{flex:none;width:48px;height:48px;image-rendering:pixelated;border:1px solid #7897cb54;border-radius:14px;background:radial-gradient(circle,#354269,#152238);box-shadow:0 0 22px #89d7ef16}
.spark-chat-heading{flex:1;min-width:0}.spark-chat-heading>span{font:750 9px/1.3 ui-monospace,monospace;letter-spacing:.14em;color:#93b8d3}.spark-chat-heading h2{margin:4px 0 3px;font-size:1.18rem;line-height:1.15;letter-spacing:-.02em;color:#f4f7ff}.spark-chat-heading p{margin:0;color:#a3b5d2;font-size:11px}
.spark-chat-window-actions{display:flex;gap:4px;flex:none}.spark-chat-window-actions button{width:44px;height:44px;min-height:44px;padding:0;border:1px solid #6985b040;border-radius:12px;background:#17243a91;color:#c6daf2;font-size:23px;line-height:1}.spark-chat-window-actions button:hover{background:#294164;border-color:#9ee6fa99}
.spark-chat-brain{display:flex;align-items:center;gap:9px;flex:none;padding:12px 16px;background:#06122487;border-bottom:1px solid #7897c12b}.spark-chat-brain>i{flex:none;width:7px;height:7px;border-radius:50%;background:#a0b4d0}.spark-chat-brain>div{min-width:0;flex:1}.spark-chat-brain strong{display:block;color:#c4d3eb;font-size:11px;font-weight:650;overflow-wrap:anywhere}.spark-chat-brain p{margin:3px 0 0;color:#829abc;font-size:11px}.spark-chat-brain button{flex:none;font-size:11px;padding:8px 9px;min-height:44px;background:#17243b}
.spark-chat-brain[data-tone=verified]>i{background:#83eac2;box-shadow:0 0 12px #63e9b355}.spark-chat-brain[data-tone=verified] p{color:#9fdfca}.spark-chat-brain[data-tone=offline]>i{background:#f4bf88}.spark-chat-brain[data-tone=offline] p{color:#efc49b}.spark-chat-brain[data-tone=busy]>i{background:#9cdfff;animation:spark-chat-pulse 1s infinite alternate}
.spark-chat-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 17px;scrollbar-width:thin;scrollbar-color:#426180 transparent;-webkit-overflow-scrolling:touch;overflow-wrap:anywhere}.spark-chat-scroll:focus-visible{outline:2px solid #79eaf5;outline-offset:-3px}
.spark-chat-empty{margin:20px auto 28px;text-align:center;max-width:310px;color:#93a8c7;font-size:13px;line-height:1.7}
.talk-turn{max-width:90%;width:fit-content;margin:0 0 15px;padding:12px 14px;border:1px solid #7796c134;border-radius:15px;background:#17243b;box-shadow:0 4px 15px #0002}.talk-you{margin-left:auto;border-color:#9b87cf38;background:linear-gradient(135deg,#2d284a,#292642);border-bottom-right-radius:4px}.talk-beast{border-bottom-left-radius:4px;background:linear-gradient(135deg,#183648,#172c40)}.talk-speaker{display:block;color:#b9e5eb;font-size:10px;font-weight:750}.talk-you .talk-speaker{color:#d1c5fa}.talk-speaker small{color:#94a7c1;font-size:10px;font-weight:400}.talk-turn p{margin:6px 0 0;white-space:pre-wrap;color:#e1ebf7;font-size:14px;line-height:1.55}
.spark-chat-brains{min-width:0;margin:0 0 18px;padding:12px;border:1px solid #6889b04f;border-radius:15px;background:#0c1a2f}.spark-chat-brains legend{padding:0 7px;color:#d8e7f5;font-size:12px;font-weight:700}.spark-chat-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.spark-chat-routes label{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 9px;border:1px solid #5d7a9b4f;border-radius:11px;background:#15243a;cursor:pointer}.spark-chat-routes label:has(input:checked){border-color:#8ae1f394;background:#193649}.spark-chat-routes input{margin:3px 0 0;flex:none;accent-color:#79eaf5;min-height:16px}.spark-chat-routes strong{display:block;font-size:12px;color:#dfeafa}.spark-chat-routes small{display:block;color:#98acca;font-size:10px;line-height:1.5;margin-top:4px}
.spark-chat-fields{display:grid;gap:7px;margin-top:13px}.spark-chat-fields>label:not(.spark-chat-check){font-size:12px;color:#d0dff3;margin:3px 0 0}.spark-chat-fields input:not([type=checkbox]){width:100%;font-size:16px;min-height:44px}.spark-chat-fields>small{color:#96abc7;line-height:1.6;font-size:11px}.spark-chat-help{padding-left:17px;margin:12px 0 0;color:#91a9c8;font-size:11px;line-height:1.6}.spark-chat-help li+li{margin-top:6px}
.spark-chat-offline,.spark-chat-pattern{margin:0 0 16px;padding:13px;border:1px solid #c28d6055;border-radius:14px;background:#30232180}.spark-chat-offline>strong,.spark-chat-pattern>strong{color:#edcaaa;font-size:13px}.spark-chat-offline p,.spark-chat-pattern p{margin:7px 0;color:#c9bdba;font-size:12px;line-height:1.6}.spark-chat-offline ul{margin:8px 0 12px;padding-left:17px;color:#c2b4ac;font-size:11px}.spark-chat-offline li+li{margin-top:5px}.spark-chat-offline button{display:block;margin-top:10px;border-color:#b1947655;background:#3d302c;min-height:44px;font-size:12px}.spark-chat-offline>small{display:block;color:#b3a49b;font-size:10px;margin-top:8px}.spark-chat-pattern{border-color:#7e91b351;background:#19283d}.spark-chat-pattern>strong{color:#c3d7f0}.spark-chat-pattern p{color:#b3c5dc;white-space:pre-wrap}
.spark-chat-options{margin-top:20px;padding-top:13px;border-top-color:#7899be38}.spark-chat-options summary{display:flex;align-items:center;min-height:44px;color:#a3c6df;font-size:12px}.spark-chat-options>label:not(.spark-chat-check){display:block;font-size:12px;color:#d0dff3;margin-top:11px}.spark-chat-options select{width:100%;font-size:16px;min-height:44px}.spark-chat-check{display:flex;align-items:flex-start;gap:9px;margin:12px 0;color:#b8cbe1;font-size:12px;line-height:1.5}.spark-chat-check input{flex:none;margin:3px 0 0;accent-color:#79eaf5}.spark-chat-options p{margin:7px 0;color:#889fbc;font-size:11px;line-height:1.6}.spark-chat-setting-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.spark-chat-setting-actions button{flex:1;min-height:44px;font-size:11px}.spark-chat-options>a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.spark-chat-composer{flex:none;min-width:0;border-top:1px solid #7194bd35;padding:12px 16px 14px;background:#0b162a}.spark-chat-composer textarea{display:block;resize:none;width:100%;max-height:140px;min-height:64px;margin:0;padding:11px 12px;border:1px solid #7594be65;border-radius:13px;background:#15233b;color:#edf5ff;font-family:inherit;font-size:16px;line-height:1.45;scrollbar-width:thin}.spark-chat-composer textarea::placeholder{color:#8e9fbf}.spark-chat-composer textarea:focus{outline:2px solid #78d9ed;outline-offset:2px}.spark-chat-send-row{display:flex;align-items:center;gap:8px;margin-top:8px}.spark-chat-send-row>span{color:#849dbb;font-size:10px}.spark-chat-send-row>span:nth-child(2){flex:1}.spark-chat-send-row button{margin-left:auto;font-size:12px;min-height:44px;min-width:64px}.spark-chat-send-row button+button{margin-left:0}.spark-chat-send-row .primary{border-color:#80e3f195;background:linear-gradient(125deg,#70d8e9,#b0a1ed);color:#102036;font-weight:800}.spark-chat-send-row .primary span{margin-left:8px;font-size:17px}.spark-chat-composer>p{margin:6px 0 0;color:#e4c9ab;font-size:10px}.spark-chat-composer>p:empty{display:none}
.spark-chat-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.spark-chat-resume{position:fixed;z-index:180;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);min-height:48px;padding:10px 16px;border:1px solid #8dddea99;border-radius:999px;background:linear-gradient(120deg,#193b50,#30294e);color:#e3f8fb;box-shadow:0 12px 40px #0009,0 0 28px #67d8e91c;font-size:12px;font-weight:700}.spark-chat-resume>span:first-child{font-size:22px;color:#92e7f3}
@keyframes spark-chat-arrive{from{opacity:0}to{opacity:1}}@keyframes spark-chat-pulse{from{opacity:.4}to{opacity:1}}
@media(max-width:680px){
 .spark-chat-overlay{align-items:flex-end;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
 .spark-chat-dialog{width:100%;height:min(740px,95%);border-radius:21px}.spark-chat-dialog[data-expanded=true]{height:100%}
 .spark-chat-header{padding:12px 11px;gap:8px}.spark-chat-heading>span{font-size:8px;letter-spacing:.08em}.spark-chat-heading h2{font-size:1.05rem}.spark-chat-heading p{font-size:10px}#talk-avatar{width:38px;height:38px;border-radius:11px}
 .spark-chat-window-actions{gap:2px}.spark-chat-window-actions button{border-radius:10px}.spark-chat-brain{padding:10px 12px}.spark-chat-brain strong{font-size:10px}.spark-chat-brain p{font-size:10px}.spark-chat-brain button{font-size:10px;padding-inline:8px}
 .spark-chat-scroll{padding:15px 12px}.spark-chat-composer{padding:10px 12px 12px}.spark-chat-send-row>span:nth-child(2){display:none}.spark-chat-send-row>span:first-child{flex:1}.spark-chat-routes{grid-template-columns:1fr}.spark-chat-routes small{font-size:11px}.spark-chat-resume{bottom:calc(max(8px,env(safe-area-inset-bottom)) + 66px)}
}
@media(max-width:360px){#talk-avatar{display:none}.spark-chat-heading>span{display:none}.spark-chat-heading h2{font-size:1rem}.spark-chat-heading p{font-size:9px}.spark-chat-header{gap:5px}.spark-chat-window-actions{gap:1px}.spark-chat-brain{gap:7px}.spark-chat-brain>i{display:none}}
.spark-chat-overlay[data-keyboard=true] .spark-chat-dialog{height:100%}.spark-chat-overlay[data-keyboard=true] .spark-chat-header{padding:6px 10px}.spark-chat-overlay[data-keyboard=true] :is(.spark-chat-heading>span,.spark-chat-heading p,#talk-avatar){display:none}.spark-chat-overlay[data-keyboard=true] .spark-chat-brain{padding:6px 11px}.spark-chat-overlay[data-keyboard=true] .spark-chat-composer{padding:7px 11px 8px}.spark-chat-overlay[data-keyboard=true] textarea{min-height:48px;height:48px}.spark-chat-overlay[data-keyboard=true] .spark-chat-send-row{margin-top:5px}
.spark-chat-overlay[data-keyboard=true] :is(.spark-chat-brain strong,.spark-chat-brain p){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:500px){.spark-chat-overlay{padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.spark-chat-dialog{height:100%;border-radius:16px}.spark-chat-header{padding:6px 10px}.spark-chat-heading>span,.spark-chat-heading p,#talk-avatar{display:none}.spark-chat-brain{padding:6px 11px}.spark-chat-brain p{font-size:10px}.spark-chat-composer{padding:7px 11px 8px}.spark-chat-composer textarea{min-height:48px;height:48px}.spark-chat-send-row{margin-top:5px}.spark-chat-scroll{padding:12px}}
@media(prefers-reduced-motion:reduce){.spark-chat-dialog,.spark-chat-brain>i{animation:none}}
.spark-chat-private{margin:14px 0;padding:12px;border:1px solid #789ac34d;border-radius:13px;background:#0d1d30}.spark-chat-private h3{margin:0 0 10px;color:#c8dcf2;font-size:12px}.spark-chat-private>button{min-height:44px;width:100%;font-size:12px}.spark-chat-private[aria-busy=true]{border-color:#88dce478}.spark-chat-private .spark-chat-check{margin-bottom:8px}.spark-chat-private #talk-cloud-status{color:#b9d1e8}.talk-cloud-import{color:#d5c2a7!important}
/* Living Cosmos depth polish (additive): floating glass for the phone nav. */
@media (max-width:760px){.mobile-nav{-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);filter:drop-shadow(0 10px 22px #02051899)}}

/* One navigation bar on phones: the bottom mobile nav carries the same journey links (Cory IMG 286ac1a8, two nav bars). Desktop keeps the top route nav. */
@media(max-width:680px){.route-nav{display:none!important}}
/* Quantum catalogue picker + feelings (mobile-first) */
.catalog .cat-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog .cat-filters input{grid-column:1/-1}
.catalog select,.catalog input{width:100%;min-height:40px;font-size:14px}
.cat-list{list-style:none;margin:8px 0;padding:0;max-height:420px;overflow:auto;-webkit-overflow-scrolling:touch}
.cat-list li{margin:0 0 6px}.cat-row{display:block;width:100%;text-align:left;padding:9px 11px;border:1px solid #5d7a9b4f;border-radius:11px;background:#15243a;color:#dfeafa;font-size:13px;line-height:1.4}
.cat-row b{color:#f3c15b}.cat-row span{color:#9fdfca}.cat-row small{display:block;color:#98acca;font-size:11px}
.emotion-card{margin:8px 0;padding:10px 12px;border:1px solid #6889b04f;border-radius:14px;background:#0c1a2f;color:#dfeafa}
.emotion-card summary{cursor:pointer;font-weight:700}.emotion-card summary b{color:#f3c15b;text-transform:capitalize}
.emotion-bars{list-style:none;margin:8px 0;padding:0;display:grid;gap:5px}
.emotion-bars li{display:grid;grid-template-columns:76px 1fr 30px;align-items:center;gap:8px;font-size:12px}
.emotion-bars li b{text-transform:capitalize;font-weight:600}.emotion-bars li i{display:block;height:8px;border-radius:5px;background:#79eaf5}
.emotion-bars li[data-emotion=joy] i{background:#f3c15b}.emotion-bars li[data-emotion=fear] i{background:#c38bff}.emotion-bars li[data-emotion=calm] i{background:#83eac2}.emotion-bars li[data-emotion=mischief] i{background:#ff8fa3}
.emotion-bars li span{text-align:right;color:#98acca}.emotion-diary{padding-left:18px;font-size:12px;color:#c9d6ea;line-height:1.5}
.emotion-title{margin:0;font-size:14px}.emotion-title b{color:#f3c15b;text-transform:capitalize}
