/* The public journey uses the same housing and controls as Redish Terminal. */
@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{color-scheme:dark;--ground:#07090a;--stage:#050607;--panel:#0e1316;--panel-hi:#141b1f;--line:#1c262b;--line-hi:#2a383f;--ink:#dde6e9;--ink-dim:#8b9aa1;--muted:#8b9aa1;--vital:#3ddc97;--warn:#e8a33d;--crit:#ff4a3d;--viral:#ff4a3d;--display:'Chakra Petch',sans-serif;--body:'IBM Plex Sans',sans-serif;--data:'IBM Plex Mono',monospace}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--stage);color:var(--ink);font-family:var(--body)}
a{color:inherit}
/* Low specificity preserves the drag and hold controls' own gesture rules. */
:where(*){touch-action:pan-x pan-y}
button,a{ -webkit-tap-highlight-color:transparent }
:focus-visible{outline:2px solid var(--vital);outline-offset:4px}
.journey .stage{height:100dvh;min-height:0;padding:0;gap:0;overflow:hidden;background:var(--stage)}
.journey .device{width:min(100%,520px);height:100dvh;min-height:0;flex:none;border:0;border-radius:0;box-shadow:inset 1px 0 var(--line),inset -1px 0 var(--line);grid-template-rows:auto minmax(0,1fr) auto}
.journey .device::after{background:repeating-linear-gradient(180deg,#c0e5ff03 0 1px,transparent 1px 4px);z-index:5}
.journey .stamp{display:none}
.journey .head{margin:0 20px;padding:calc(19px + env(safe-area-inset-top)) 0 14px;border-bottom:1px solid var(--line-hi)}
.journey .head .unit{font:700 20px/1.3 var(--display);letter-spacing:.065em}
.journey .head .sub{display:none}
.journey .head .link{font:12px var(--data);letter-spacing:0}
.journey .scroll{min-height:0;overscroll-behavior:contain;scrollbar-width:none}
.journey .scroll h1{font:600 1.65rem/1.12 var(--display);margin:0 0 20px}
.journey .eyebrow{font:500 12px/1.5 var(--data);letter-spacing:.07em;color:var(--ink-dim)}
.journey .eyebrow::after{display:none}
.journey .note,.journey .breakdown{font:14px/1.6 var(--body);color:var(--ink-dim)}
.journey .craft,.journey .scanbtn,.journey .go,.journey .cta{min-height:50px;border-radius:3px;font:600 15px/1.4 var(--display);letter-spacing:.035em;padding:12px 15px}
.journey .craft,.journey .go,.journey .cta{background:var(--vital);color:#07150f;border:1px solid #71e9b2;box-shadow:inset 0 1px #ffffff2b,inset 0 -2px #0002}
.journey .scanbtn{background:linear-gradient(#151e23,#0e1418);border:1px solid #34444d;box-shadow:inset 0 1px #52667022,inset 0 -2px #0005;color:#c5d1d7}
.journey .craft .c,.journey .scanbtn .cool{font:12px var(--data);letter-spacing:0}
.journey .craft .c{color:#123b29}
.journey .strip,.journey .dial,.journey .gear,.journey .locked-box{border-radius:3px;border-color:var(--line-hi)}
.journey .strip .k{font-size:12px;letter-spacing:.04em}
.journey .strip .v{font-size:28px}
.journey .lockbtn{min-height:36px;padding:7px 10px;font:12px var(--data);border-radius:2px}
.journey input{font-size:16px}
.journey .nav{height:calc(83px + env(safe-area-inset-bottom));padding:9px 12px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;background:linear-gradient(#0e1519,#080d10);border-top:1px solid #35454e;box-shadow:0 -5px 25px #0009}
.journey .nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;text-decoration:none;border:1px solid transparent;border-radius:3px;color:var(--ink-dim);font:500 12px var(--data);text-transform:uppercase;letter-spacing:.055em}
.journey .nav a[aria-current]{background:linear-gradient(#19272c,#0f1a1d);border-color:#3b565d;color:#b8efd5;box-shadow:inset 0 1px #3ddc9726,inset 0 -2px #0006}
.journey .nav svg{width:20px;height:20px}
.journey .back-link{text-decoration:none;display:inline-flex;align-items:center;min-height:44px;font:12px var(--data);color:var(--ink-dim)}
.journey details{border-top:1px solid var(--line);padding:16px 0}
.journey summary{cursor:pointer;font:500 13px var(--data);color:var(--ink-dim);padding:4px 0}
.journey details[open]>summary{margin-bottom:14px}
.journey .view{padding:20px 20px 28px!important;gap:20px!important}
.journey .qbody{padding:0;gap:20px}
.journey .qbar{display:none}
.journey .mode-options{display:flex;gap:8px;margin-bottom:16px}
.journey .readout .big{font-size:52px}
.journey .readout .big span{font-size:15px}
.journey .cap,.journey .ticks,.journey .rate{font-size:12px}
.journey .band{min-height:44px}
.journey .sim{margin:0;max-width:520px;border-radius:0}
.journey[data-page="onboarding"] .device{grid-template-rows:auto minmax(0,1fr)}
.journey[data-page="onboarding"] .nav,.journey[data-page="onboarding"] .sim{display:none}
.journey[data-page="onboarding"] #view-admission{gap:20px!important}
.journey[data-page="onboarding"] #doors>.eyebrow{font:600 1.65rem/1.12 var(--display);color:var(--ink);text-transform:none;letter-spacing:0;margin-bottom:12px}
.journey[data-page="onboarding"] #row-x .craft{background:linear-gradient(#151e23,#0e1418);border-color:#34444d;color:var(--ink);box-shadow:inset 0 1px #52667022,inset 0 -2px #0005}
.journey[data-page="onboarding"] #note-google,.journey[data-page="onboarding"] #note-x{display:none}
.journey[data-page="enter"] .device{display:flex}
.journey[data-page="enter"] .step{padding:25px 20px calc(24px + env(safe-area-inset-bottom));overflow:auto}
.journey[data-page="enter"] .sub{font:16px/1.6 var(--body);max-width:32ch}
.journey[data-page="enter"] .big{font:700 clamp(30px,10vw,46px)/1.1 var(--display);color:var(--vital);letter-spacing:-.02em}
.journey[data-page="enter"] .foot{padding-top:30px}
/* Installation continues the same Pulse instrument and mobile housing. */
.journey[data-page="start"]{--ink:#dfece6;--ink-dim:#9cb5ae;--vital:#84e1c2;background:#07090a}
.install-page{width:min(100%,440px);min-height:100dvh;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 24px calc(30px + env(safe-area-inset-bottom));background:linear-gradient(#07090a 0,#07090a calc(env(safe-area-inset-top) + 16px),transparent 200px),radial-gradient(ellipse at 50% 25%,#13322d 0,transparent 60%),#0a1012}
.install-page .top{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:34px}
.install-page .mark{font:600 24px/1.2 var(--display);letter-spacing:.12em}
.install-page .language-control{gap:3px;color:var(--ink-dim)}
.install-page .language-control select{border:0;max-width:112px;padding-right:0;font-size:13px}
.install-page .language-control svg{width:15px;height:15px;opacity:.65}
.install-signal{position:relative;display:grid;place-items:center;width:min(100%,310px);height:176px;margin:12px auto 14px;color:#f16d70;isolation:isolate}
.install-halo{position:absolute;inset:-15% -5%;z-index:-1;background:radial-gradient(ellipse,#ed62651b 0,#d8434909 42%,transparent 70%);animation:install-breathe 3.4s ease-in-out infinite}
.install-ecg{width:92%;overflow:visible;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.install-trace{opacity:.5}
.install-sweep{stroke:#ff9c9b;stroke-dasharray:24 76;filter:drop-shadow(0 0 3px #ef6265aa);animation:boot-signal 3.4s linear infinite}
.install-content{animation:panel-appear .7s .35s ease both}
.install-infection{display:flex;align-items:center;gap:8px;color:#ef9294;font:12px/1.5 var(--data);margin:0 0 12px}
.install-infection::before{content:'';width:4px;height:4px;border-radius:50%;background:#f16d70;flex:none}
.install-page h1{font:500 clamp(30px,8vw,36px)/1.14 var(--display);letter-spacing:-.035em;margin:0;color:var(--ink)}
.install-intro{font:15px/1.65 var(--body);color:var(--ink-dim);margin:24px 0 0}
.install-intro b{font-weight:500;color:#c9ddd4}
.install-browsers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid #314449;gap:0;margin:26px 0 22px}
.install-browsers button{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;margin:0 0 -1px;padding:14px 8px;min-height:50px;color:#96afa6;font:16px/1.4 var(--body);cursor:pointer}
.install-browsers button[aria-pressed="true"]{color:#b6e6d4;border-bottom-color:var(--vital);background:linear-gradient(transparent,#84e1c208)}
.install-guide{margin-top:26px}
.install-steps{list-style:none;margin:0;padding:0;border:1px solid #314a43;border-radius:22px;overflow:hidden;background:linear-gradient(140deg,#172925,#0e1919)}
.install-steps li{display:grid;grid-template-columns:29px minmax(0,1fr);align-items:start;gap:13px;padding:21px 18px;font:15px/1.65 var(--body);color:#a8beb6}
.install-steps li+li{border-top:1px solid #2b423c}
.install-steps b{font-weight:500;color:var(--ink)}
.install-steps svg{display:inline-block;width:16px;height:16px;vertical-align:-3px;margin:0 3px;color:#bedbcc}
.install-number{display:grid;place-items:center;width:29px;height:30px;border:1px solid #486c5f;border-radius:8px;font:12px/1 var(--data);color:#a3d1bf;background:#15302855}
.install-add{display:flex;align-items:center;justify-content:space-between;gap:24px;width:fit-content;min-width:146px;max-width:100%;min-height:48px;padding:12px 22px;margin:24px auto 0;border:1px solid #9df3d7;border-radius:26px;background:linear-gradient(110deg,#a0f6da,#65d9b9);color:#08231b;font:500 15px/1.4 var(--body);cursor:pointer}
.install-add:disabled{opacity:.65;cursor:wait}
.install-status{font:14px/1.65 var(--body);color:var(--ink-dim);margin:22px 0 0}
@keyframes install-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@media(min-width:761px){.install-page{margin:14px auto 0;min-height:calc(100dvh - 14px);border:1px solid #314449;border-radius:30px 30px 0 0;box-shadow:0 0 0 6px #0e171a}}
@media(max-width:360px){.install-page{padding-left:20px;padding-right:20px}.install-page .mark{font-size:21px}.install-page .language-control select{max-width:96px;font-size:12px}.install-signal{height:150px}.install-steps li{padding:18px 13px;gap:10px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.install-sweep{stroke-dasharray:none;opacity:.7}}
.journey[data-page="landing"] .redact{color:#72828b}
.journey[data-page="landing"] .ref{color:#72828b}
.journey[data-page="landing"] .blink{background:var(--vital)}
.journey[data-page="landing"] .enter{background:var(--vital);color:#07150f;border-color:#71e9b2;border-radius:3px;font-family:var(--display)}
.journey[data-page="landing"] .line{font-family:var(--display)}
.catalog{min-height:100dvh;display:grid;place-items:center;padding:32px 20px}
.catalog main{width:100%;max-width:430px}
.catalog .brand{font:700 20px var(--display);letter-spacing:.065em;margin:0 0 32px;padding-bottom:20px;border-bottom:1px solid var(--line-hi)}
.design-card{display:block;text-decoration:none;border:1px solid var(--line-hi);border-radius:3px;background:var(--panel);overflow:hidden}
.design-art{height:240px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 65% 45%,#3ddc9718,transparent 70%),#090d0f}
.design-art::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(180deg,#c0e5ff05 0 1px,transparent 1px 4px);pointer-events:none}
.design-art img{filter:hue-rotate(125deg) saturate(.9) contrast(1.1);position:absolute;width:170px;height:255px;object-fit:cover;right:8px;top:0;mask-image:linear-gradient(#000 75%,transparent)}
.design-art .readout{position:absolute;left:24px;top:65px;font:700 64px/1 var(--display);color:var(--vital)}
.design-art .readout small{font-size:22px;color:var(--vital)}
.design-art .readout span{display:block;font:12px var(--data);letter-spacing:.12em;margin-top:12px;color:var(--ink-dim)}
.design-card .copy{padding:22px;border-top:1px solid var(--line)}
.design-card h1{font:600 27px var(--display);margin:0 0 8px}
.design-card p{font:15px/1.6 var(--body);color:var(--ink-dim);margin:0 0 24px}
.design-card .open{display:flex;justify-content:space-between;font:600 15px var(--display);color:var(--vital)}
.catalog .help{font:12px/1.7 var(--data);color:var(--ink-dim);margin-top:22px}
@media(min-width:761px){.journey .stage{padding-top:14px}.journey .device{width:430px;height:calc(100dvh - 14px);border:1px solid #344650;border-top:3px solid #3c4e59;border-radius:18px 18px 0 0;box-shadow:0 0 0 5px #0c1216,0 12px 70px #000c}}
@media(max-width:360px){.journey .head{margin:0 15px}.journey .view{padding-left:15px!important;padding-right:15px!important}.journey .head .unit{font-size:18px}.journey .nav a{letter-spacing:0}.journey .strip .k{font-size:11px}.journey .strip .v{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.journey .head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.journey .qbody>h1{margin:0 0 18px}.journey .qbody>section{margin:0 0 20px}
.journey #pane-dep>.craft{margin-top:20px}.journey #pane-dep>.scanbtn{margin-top:10px}
.journey #pane-dep>details{margin-top:20px}.journey .qbody>details{margin-top:0}

.journey[data-page=landing] .mark{font:700 20px/1.3 var(--display);letter-spacing:.065em}
.journey[data-page=landing] .mark em,.journey[data-page=landing] .sub{display:none}
.journey[data-page=landing] .snd{width:42px;height:42px;color:var(--ink-dim)}

/* The review menu lists the whole journey, independently of design variants. */
.catalog .design-art{height:155px}
.catalog .design-art img{width:140px;height:210px;top:-5px;right:18px}
.catalog .design-art .readout{top:39px;font-size:52px}
.catalog .design-card .copy{padding:18px 20px}
.catalog .design-card p{margin-bottom:16px}
.screen-menu{margin-top:30px}
.screen-menu h2{margin:0 0 14px;font:500 12px var(--data);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.screen-list{list-style:none;display:grid;gap:8px;margin:0;padding:0}
.screen-link{display:grid;grid-template-columns:24px minmax(0,1fr) 12px;align-items:center;gap:12px;padding:15px 14px;min-height:70px;background:var(--panel);border:1px solid var(--line);border-radius:3px;text-decoration:none}
.screen-link:hover{background:var(--panel-hi);border-color:var(--line-hi)}
.screen-number,.screen-arrow{font:12px var(--data);color:var(--vital)}
.screen-link strong{display:block;font:600 17px/1.2 var(--display)}
.screen-link small{display:block;margin-top:5px;font:13px/1.4 var(--body);color:var(--ink-dim)}

/* Admission belongs to the instrument, including its connecting state. */
.journey[data-page="onboarding"] .scroll{display:flex;flex-direction:column}
.journey[data-page="onboarding"] #view-admission{flex:1;justify-content:center;padding-top:40px!important;padding-bottom:40px!important}
.journey[data-page="onboarding"] #doors>.eyebrow{font-size:34px}
.journey[data-page="onboarding"] .craft.door{gap:12px;min-height:56px}
.provider-icon{width:20px;height:20px;flex:none;display:block}
.journey[data-page="onboarding"] #row-google .craft{background:#e3e9eb;border-color:#f4f7f8;color:#152027}
.journey[data-page="onboarding"] #wait,.journey[data-page="onboarding"] #ready{animation:panel-appear .3s ease both}
.boot-panel{padding:30px 0 20px;text-align:center}
.boot-symbol{width:116px;height:116px;position:relative;display:grid;place-items:center;margin:0 auto 32px;border:1px solid var(--line-hi);background:radial-gradient(#3ddc970c,transparent 70%);color:var(--vital)}
.boot-symbol::before,.boot-symbol::after{content:'';position:absolute;width:15px;height:15px;border-color:var(--vital);border-style:solid}
.boot-symbol::before{top:-1px;left:-1px;border-width:2px 0 0 2px}.boot-symbol::after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.boot-symbol svg{width:62px;height:62px;fill:none;stroke:currentColor;stroke-width:1.2}
.journey .boot-panel h1{font:600 30px/1.15 var(--display);margin:0 auto 12px;max-width:14ch}
.boot-panel p{font:15px/1.6 var(--body);color:var(--ink-dim);max-width:30ch;margin:0 auto}
.journey #ready .boot-symbol{color:var(--vital)}
.journey #enter{animation:panel-appear .35s ease both}
.journey #boot-slow{margin-top:24px;text-align:center}.journey #boot-slow p{font-size:13px}.journey #boot-slow a{display:inline-flex;min-height:44px;align-items:center;color:var(--vital);font:13px var(--data)}
@keyframes panel-appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.journey #enter,.journey #wait,.journey #ready{animation:none}}

/* One lightweight Pulse instrument for both admission and its review screen. */
.journey:has(#wait:not([hidden])){background:#07090a}
.journey:has(#wait:not([hidden])) .device{background:linear-gradient(180deg,#07090a 0,#07090a calc(env(safe-area-inset-top) + 10px),#07090acc calc(env(safe-area-inset-top) + 60px),#07090a00 calc(env(safe-area-inset-top) + 200px)),radial-gradient(ellipse at 50% 36%,#102522 0,transparent 60%),#07090a}
.journey:has(#wait:not([hidden])) .device{box-shadow:none}
.journey:has(#wait:not([hidden])) .device::after{display:none}
.journey:has(#wait:not([hidden])) .head{border-bottom:0;padding-top:calc(24px + env(safe-area-inset-top));position:relative;z-index:1}
.journey:has(#wait:not([hidden])) .head .unit{letter-spacing:.12em;text-decoration:none}
.journey:has(#wait:not([hidden])) #h-link{display:none}
.journey:has(#wait:not([hidden])) .language-control{color:#9cafa9;gap:2px}
.journey:has(#wait:not([hidden])) .language-control select{border:0;font-size:12px;max-width:98px;padding-right:0}
.journey:has(#wait:not([hidden])) .language-control svg{width:15px;height:15px;opacity:.6}
.journey[data-page="onboarding"] #view-admission:has(#wait:not([hidden])),.journey .activation-preview{justify-content:flex-start;padding:clamp(40px,11dvh,116px) 24px 32px!important;gap:0!important}
.journey .activation-preview{display:flex;flex-direction:column;align-items:center;overflow:auto}
.journey #wait{--boot-mint:#94f4d8;width:100%;padding:0;isolation:isolate}
.boot-pulse{position:relative;display:grid;place-items:center;width:clamp(204px,58vw,248px);aspect-ratio:1;margin:0 auto 38px;color:var(--boot-mint)}
.boot-halo{position:absolute;inset:-30%;border-radius:50%;background:radial-gradient(circle,#69e4bf14 0,#51d5b30a 35%,transparent 69%);pointer-events:none;animation:boot-breathe 4s ease-in-out infinite}
.boot-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke:currentColor;stroke-width:.75}
.boot-orbit-track{opacity:.18}.boot-orbit-inner{opacity:.07}.boot-orbit-ticks{opacity:.35}
.boot-orbit-motion{transform-origin:120px 120px;animation:boot-orbit 12s linear infinite}
.boot-orbit-arc{stroke-dasharray:15 85;stroke-dashoffset:25;opacity:.65}
.boot-orbit-point{fill:#c1ffea;stroke:none;filter:drop-shadow(0 0 4px #7cf2ce)}
.boot-core{position:relative;display:grid;place-items:center;width:68%;aspect-ratio:1;border:1px solid #a0f8da36;border-radius:50%;background:radial-gradient(ellipse at 40% 22%,#b2ffe326,transparent 58%),radial-gradient(circle at 50% 70%,#41cba719,transparent 70%),#0d201ee6;box-shadow:inset 0 1px 2px #d3fff428,inset 0 -6px 24px #07171499,0 0 40px #63eac513}
.boot-core::before{content:'';position:absolute;inset:7px;border:1px solid #c6ffea09;border-radius:inherit}
.boot-core::after{content:'';position:absolute;inset:-12px;border:1px solid #a0f8da12;border-radius:inherit;animation:boot-breathe 4s ease-in-out infinite}
.boot-ecg{position:relative;width:72%;overflow:visible;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.boot-ecg-trace{opacity:.55}
.boot-ecg-signal{stroke:#b9ffeb;stroke-dasharray:24 76;animation:boot-signal 3.4s linear infinite;filter:drop-shadow(0 0 3px #74f8d499)}
.journey #wait h1{max-width:13ch;margin:0 auto 18px;font:600 clamp(28px,7.5vw,34px)/1.13 var(--display);letter-spacing:-.025em;color:#e3f0ec;text-wrap:balance}
.journey #wait .boot-status{display:flex;align-items:baseline;justify-content:center;gap:9px;max-width:31ch;font:14px/1.65 var(--body);color:#9db5ae}
.boot-status-dot{width:4px;height:4px;flex:none;border-radius:50%;background:#94f4d8;transform:translateY(-2px)}
.journey #boot-slow{position:relative;z-index:1}
@keyframes boot-breathe{0%,100%{opacity:.65;transform:scale(.97)}50%{opacity:1;transform:scale(1.035)}}
@keyframes boot-orbit{to{transform:rotate(360deg)}}
@keyframes boot-signal{from{stroke-dashoffset:24}to{stroke-dashoffset:-76}}
@media(max-height:650px){.journey[data-page="onboarding"] #view-admission:has(#wait:not([hidden])),.journey .activation-preview{padding-top:28px!important}.boot-pulse{width:190px;margin-bottom:26px}}
@media(prefers-reduced-motion:reduce){.boot-ecg-signal{stroke-dasharray:none;opacity:.75}}

/* Enrolment: a field dossier with one decision at a time. */
.journey[data-page="enter"] .mid{padding:12px 0}
.journey[data-page="enter"] .big{font-size:38px;color:var(--ink);line-height:1.08;overflow-wrap:anywhere}
.journey[data-page="enter"] .eyebrow{margin:24px 0 12px;color:var(--vital);font-size:11px}
.journey[data-page="enter"] .sub{font-size:15px;margin:14px 0 0}
.identity-badge{display:flex;align-items:center;gap:16px;color:var(--ink-dim)}
.identity-badge svg{width:70px;height:70px;fill:none;stroke:currentColor;stroke-width:1.2;border:1px solid var(--line-hi);background:var(--panel)}
.identity-badge span{font:11px var(--data);letter-spacing:.06em}.identity-badge.online{color:var(--vital)}
.field-label{display:block;font:12px var(--data);margin:32px 0 10px}
.username-field{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid #435962;border-radius:3px;padding:0 14px}
.username-field:focus-within{border-color:var(--vital);box-shadow:0 0 0 2px #3ddc9710}.username-field>span{color:var(--vital);font:20px var(--data)}
.username-field input{min-width:0;width:100%;padding:16px 0;border:0;background:none;color:var(--ink);font:18px var(--data);outline:none}
.username-field input::placeholder{color:#627680}.field-help,.field-error{font:12px/1.6 var(--body);color:var(--ink-dim);margin:8px 0 0}.field-error{color:#ff8b80}
.entry-back{background:none;border:0;padding:0;min-height:44px;align-self:flex-start;color:var(--ink-dim);font:13px var(--data);text-decoration:underline;text-underline-offset:4px;margin-top:20px;cursor:pointer}
#identity-ready{animation:panel-appear .3s ease}#identity-ready h1:focus{outline:none}
@media(max-width:360px){.journey[data-page="enter"] .big{font-size:32px}.journey[data-page="enter"] .step{padding-left:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){#identity-ready{animation:none}}

.install-previews{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px}.install-previews>span{display:block;width:100%;font:12px var(--data);color:var(--ink-dim);margin-bottom:4px}.install-previews a{border:1px solid var(--line-hi);padding:12px 10px;font:12px var(--data);text-decoration:none;color:var(--ink);border-radius:3px}

.journey #setup>.gear,.journey #setup>#cfg-url,.journey #setup>#setup-why,.journey #setup>.gear+.note{display:none}

/* Class selection keeps gameplay and the proposed reward basket separate. */
.identity-count{float:right;color:var(--ink-dim);font-weight:400}
.class-stage{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.class-scroll{overflow-y:auto;min-height:0;flex:1;padding:14px 20px 24px;scrollbar-width:none;overscroll-behavior:contain}
.class-progress{display:flex;align-items:center;justify-content:space-between;font:11px var(--data);color:var(--ink-dim)}
.class-progress button{min-height:40px;padding:0;background:none;border:0;color:var(--ink-dim);font:12px var(--data);cursor:pointer}
.journey[data-page="enter"] .class-scroll>.eyebrow{margin:16px 0 9px}
.journey[data-page="enter"] .class-scroll>.big{font-size:32px;max-width:none;margin:10px 0 20px}
.class-list{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.class-card{border:1px solid #30434b;border-radius:4px;background:linear-gradient(145deg,#111a1e,#0b1115);overflow:hidden}
.class-card.selected{border-color:var(--vital);box-shadow:inset 3px 0 var(--vital)}
.class-choice{display:flex;gap:12px;align-items:center;min-height:76px;padding:16px;cursor:pointer}
.class-icon{width:40px;height:40px;display:grid;place-items:center;color:var(--ink-dim);border:1px solid var(--line-hi);background:#0b1216;border-radius:3px;flex:none}
.class-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.selected .class-icon{color:var(--vital);border-color:#345749;background:#10251c}
.class-name{font:600 24px/1.1 var(--display);color:var(--ink)}
.class-choice input{margin:0 0 0 auto;width:21px;height:21px;flex:none;accent-color:var(--vital);cursor:pointer}
.class-specialty{padding:0 16px 17px}.class-k{font:10px/1.5 var(--data);letter-spacing:.07em;color:var(--ink-dim);display:block}
.class-specialty>strong{display:block;font:500 15px/1.4 var(--body);margin-top:5px;color:var(--ink)}
.class-specialty p{font:14px/1.5 var(--body);margin:11px 0 0;color:var(--ink-dim)}.class-specialty p>span{color:var(--ink);margin-right:8px}
.class-basket{border-top:1px solid #293b43;background:#091215;padding:15px 16px}
.class-basket .class-k{color:#9bb6ac}.class-basket h3{font:600 17px/1.3 var(--display);margin:6px 0 6px;color:var(--ink)}
.class-footer{flex:none;padding:15px 20px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--line-hi);background:#0a1114;box-shadow:0 -10px 24px #0005;z-index:2}
.class-footer .field-error{margin:0 0 12px}.class-footer .go:disabled{opacity:.4;cursor:not-allowed}
#class-form h1:focus{outline:none}
@media(max-width:360px){.class-scroll{padding-left:16px;padding-right:16px}.class-footer{padding-left:16px;padding-right:16px}.class-name{font-size:22px}}


.screen-list li:has(.install-previews)>.screen-link{border-bottom:0;border-radius:3px 3px 0 0}
.screen-list .install-previews{margin:0;padding:0 14px 14px;border:1px solid var(--line-hi);border-top:0;border-radius:0 0 3px 3px;background:var(--panel)}
.screen-list .install-previews a{color:var(--vital);font-size:11px;flex:1;text-align:center;white-space:nowrap}

/* Field identity: personal photo, deliberate confirmation, then a briefing. */
.identity-photo{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.avatar-picker{position:relative;width:76px;height:80px;padding:0;flex:none;overflow:hidden;border:1px solid #34494e;border-radius:3px;background:#0e171b;color:var(--ink-dim);cursor:pointer}
.avatar-picker>svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;padding:6px}.avatar-picker>img{width:100%;height:100%;object-fit:cover}
.avatar-edit{position:absolute;right:0;bottom:0;background:#123629;color:var(--vital);width:21px;height:21px;font:19px/21px var(--data);border-top:1px solid #396451;border-left:1px solid #396451}
.photo-id{display:block;font:12px var(--data);color:var(--ink-dim)}.photo-hint{display:block;font:12px var(--body);color:var(--vital);margin-top:8px}
.remove-photo{display:block;border:0;background:none;padding:7px 0 0;color:var(--ink-dim);font:11px var(--data);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.journey[data-page="enter"] #identity-form .username-field{margin-top:25px}
.journey[data-page="enter"] h1:focus{outline:none}
.journey[data-page="enter"] .identity-confirm{padding-top:22px}
.fingerprint-button{--scan-progress:0%;display:flex;align-items:center;justify-content:center;width:124px;min-height:136px;margin:0 auto;padding:12px;border:0;border-radius:0;background:none;color:var(--ink);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;box-shadow:none}
.fingerprint-button:disabled{cursor:default}.fingerprint-button:disabled:not(.is-confirmed){opacity:.45}
.fingerprint-button:focus-visible{outline:none}.fingerprint-button:focus-visible:not(.is-reading):not(.is-confirmed) .fingerprint-base{stroke:var(--vital);opacity:1;filter:drop-shadow(0 0 5px #3ddc9799)}
.fingerprint-sensor{display:block;position:relative;flex:none;width:88px;height:112px;overflow:hidden}
.fingerprint-sensor svg{display:block;width:100%;height:100%;padding:4px}.fingerprint-base{stroke:#88b3a4;opacity:.65}
.fingerprint-growth{stroke:var(--vital);filter:drop-shadow(0 0 2px #3ddc9766)}.fingerprint-growth use{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.is-reading .fingerprint-base{opacity:.24}.is-reading .fingerprint-sensor{filter:drop-shadow(0 0 6px #3ddc9722)}.is-confirmed .fingerprint-sensor{filter:drop-shadow(0 0 9px #3ddc9777)}
.briefing-stage{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.briefing-scroll{flex:1;min-height:0;overflow:auto;scrollbar-width:none;overscroll-behavior:contain;padding:14px 20px 24px}
.journey .briefing-scroll>.eyebrow{color:var(--vital);margin:20px 0 10px}.journey[data-page="enter"] .briefing-scroll .big{font-size:32px;overflow-wrap:anywhere}
.briefing-console{padding:18px 16px;margin:24px 0 0;border:1px solid #2b4247;border-radius:4px;background:linear-gradient(130deg,#101b20,#080f12);box-shadow:inset 0 0 35px #0004;min-height:280px}
.transmission-head{display:flex;align-items:center;gap:7px;font:9px/1.5 var(--data);letter-spacing:.05em;color:var(--ink-dim);border-bottom:1px solid #263b40;padding:0 0 14px;margin:0 0 20px}.transmission-dot{width:4px;height:4px;background:var(--vital);box-shadow:0 0 7px #3ddc9760}.transmission-ref{margin-left:auto;color:#657b80}
.briefing-block{margin-top:20px}.briefing-block:first-child{margin-top:0}.briefing-tag{font:10px/1.5 var(--data);color:var(--vital);letter-spacing:.1em}.briefing-block p{font:13px/1.8 var(--data);color:#beced2;margin:6px 0 0;min-height:0}.briefing-block:last-child p{color:var(--vital)}
.terminal-cursor{display:inline-block;color:var(--vital);font:14px var(--data);animation:transmission-blink 1s steps(1) infinite}
.briefing-footer{flex:none;padding:0 20px calc(12px + env(safe-area-inset-bottom));background:none}
@keyframes transmission-blink{50%{opacity:0}}
@media(max-width:360px){.briefing-scroll{padding-left:16px;padding-right:16px}.briefing-footer{padding-left:16px;padding-right:16px}.journey[data-page="enter"] .briefing-scroll .big{font-size:28px}.briefing-console{padding:16px 12px}.briefing-block p{font-size:12px}}
@media(max-height:740px){.identity-photo{margin-bottom:15px}.journey[data-page="enter"] #identity-form{padding-top:18px}.fingerprint-button{min-height:108px;padding:8px}.fingerprint-sensor{width:72px;height:92px}.journey[data-page="enter"] .identity-confirm{padding-top:14px}}
@media(prefers-reduced-motion:reduce){.terminal-cursor{animation:none}}

/* Compact class previews: perks first, then a two-column token basket. */
.reward-tokens{list-style:none;padding:0;margin:12px 0 4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.reward-tokens li{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-width:0;padding:9px 10px;border-radius:9px;background:#78cbb80b;border:1px solid #78cbb821}
.reward-tokens li b{color:#b1eadb;font:500 13px/1.3 var(--mono,var(--data));letter-spacing:.02em}
.reward-tokens li span{min-width:0;overflow-wrap:anywhere;color:#a9c2b9;font:13px/1.35 var(--body)}
.class-perks{margin:12px 0 14px}.class-perks>.eyebrow{display:block;color:#a5bcb4;font:11px/1.4 var(--mono,var(--data));letter-spacing:.06em}
.perk-placeholders{list-style:none;margin:7px 0 0;padding:0;display:grid;gap:5px}
.perk-placeholders li{display:flex;align-items:baseline;gap:8px;color:#a9c2b9;font:13px/1.45 var(--body)}
.perk-placeholders li::before{content:'+';color:#83d8bd;flex:none;font-family:var(--mono,var(--data))}

.class-card>.class-perks{margin:0 16px 15px}

/* Account access uses the same deep green surfaces and amber light as Pulse. */
.journey[data-page="onboarding"]{--ink:#dfece6;--ink-dim:#a0b7ad;--muted:#91a79e;--vital:#9ae6cd;--line:#8db2a225;--line-hi:#8db2a23d;--signin-amber:#d6c996;background:#07090a}
.journey[data-page="onboarding"] .stage{background:#07090a}
.journey[data-page="onboarding"] .device{background:linear-gradient(180deg,#07090a 0,#07090a calc(env(safe-area-inset-top) + 10px),#07090acc calc(env(safe-area-inset-top) + 60px),#07090a00 calc(env(safe-area-inset-top) + 200px)),radial-gradient(ellipse at 65% 30%,#1b3c3070,transparent 65%),linear-gradient(160deg,#0c1815,#0a1212 80%);box-shadow:none}
.journey[data-page="onboarding"] .device::after{opacity:.45;mask-image:linear-gradient(180deg,transparent,black calc(env(safe-area-inset-top) + 200px))}
.journey[data-page="onboarding"] .head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 16px!important;margin:0 24px;padding:calc(24px + env(safe-area-inset-top)) 0 0;border-bottom:0}
.journey[data-page="onboarding"] .head .id{grid-column:1;grid-row:1;align-self:center}
.journey[data-page="onboarding"] .head .unit{font-weight:600;font-size:22px;letter-spacing:.09em;color:#e1ece5}
.journey[data-page="onboarding"] .head .link{grid-column:1;grid-row:2;justify-self:start;max-width:100%;padding:6px 9px;border:1px solid #a4bb982b;border-radius:20px;background:#a4bb9808;font:9px/1.3 var(--data);letter-spacing:.05em}
.journey[data-page="onboarding"] .head .link.off{color:#b4b79a}
.journey[data-page="onboarding"] .head .link.off .mark{border-color:#a6a378}
.journey[data-page="onboarding"] .head .language-control{grid-column:2;grid-row:1 / span 2;margin:0;align-self:start;gap:4px;color:#b5c8bd}
.journey[data-page="onboarding"] .language-control select{border-radius:15px;border-color:#8db2a230;background:#29443a2e;min-height:44px;padding:10px 7px}
.journey[data-page="onboarding"] #view-admission:has(:is(#doors,#join-identity,#admitted,#setup):not([hidden])){justify-content:flex-start;padding:clamp(30px,8dvh,72px) 24px calc(32px + env(safe-area-inset-bottom))!important;gap:20px!important}
.journey[data-page="onboarding"] :is(#doors,#join-identity,#admitted,#setup){position:relative;flex:none;padding:26px 22px;border:1px solid #b9a06445;border-radius:24px;background:radial-gradient(ellipse at 100% 0,#b39b5524,transparent 68%),linear-gradient(145deg,#203b3145,#101c1b80);box-shadow:inset 0 1px #e4eed907,0 16px 50px #00000012}
.journey[data-page="onboarding"] #doors>.eyebrow{font:500 32px/1.15 var(--display);letter-spacing:-.035em;margin:4px 60px 16px 0;color:#e2eee7}
.journey[data-page="onboarding"] .signin-symbol{position:absolute;top:24px;right:22px;display:grid;place-items:center;width:46px;height:50px;border:1px solid #b9b47744;border-radius:15px;color:var(--signin-amber);background:#a39c4012}
.signin-symbol svg{width:27px;height:27px;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.journey[data-page="onboarding"] #doors>.eyebrow+.note{max-width:26ch;margin:0 0 24px;padding:0;font:14px/1.65 var(--body);color:#adc2b6}
.journey[data-page="onboarding"] .craft.door{justify-content:flex-start;gap:13px;min-height:56px;padding:15px 18px;border-radius:14px;font:500 14px/1.4 var(--body);letter-spacing:0;text-transform:none;transition:background .16s ease,border-color .16s ease}
.journey[data-page="onboarding"] #row-google .craft{background:#e2eae3;color:#182b23;border-color:#f0f5ec;box-shadow:inset 0 1px #fff8,0 3px 12px #0000000d}
.journey[data-page="onboarding"] #row-google .craft:hover:not(:disabled){background:#f2f7ef;border-color:#fff}
.journey[data-page="onboarding"] #row-x .craft{background:linear-gradient(135deg,#29463a55,#172b2555);border-color:#93b3a63d;color:#dfede5;box-shadow:inset 0 1px #e0f4e609}
.journey[data-page="onboarding"] #row-x .craft:hover:not(:disabled){background:#34534466;border-color:#a5c4b475}
.journey[data-page="onboarding"] .craft.door:disabled{opacity:.48;box-shadow:none}
.journey[data-page="onboarding"] :is(#door-err,#signin-recovery){margin-top:16px;padding:13px 14px;border:1px solid #be996a38;border-radius:13px;background:#b98b4810;color:#dbc7a7;font-size:12px;overflow-wrap:anywhere}
.journey[data-page="onboarding"] #signin-recovery p{margin:0 0 12px;font:12px/1.65 var(--body)}
.journey[data-page="onboarding"] #signin-recovery .craft{justify-content:center;min-height:44px;background:#263d31;border-color:#a6ba9445;color:#d8e4d3;border-radius:11px;font:500 13px var(--body);text-transform:none;letter-spacing:0}
.journey[data-page="onboarding"] :is(#admitted,#setup)>.eyebrow{font:500 26px/1.2 var(--display);letter-spacing:-.025em;text-transform:none;color:#e2eee7;margin:0 0 22px}
.journey[data-page="onboarding"] #admitted .gear{border-radius:14px;border-color:#8db2a22e;background:#8db2a21c}
.journey[data-page="onboarding"] #admitted .slot{background:#162a23;border-color:#8db2a22e;padding:15px 12px;grid-template-columns:32px minmax(0,1fr) auto;gap:10px}
.journey[data-page="onboarding"] #admitted .slot .ico{border-radius:10px;color:var(--signin-amber);border-color:#b9a06438;background:#b39b550a}
.journey[data-page="onboarding"] #admitted .slot .nm{font:500 13px var(--body);text-transform:none;letter-spacing:0}
.journey[data-page="onboarding"] #admitted .slot .ef{font:11px/1.6 var(--data);overflow-wrap:anywhere}
.journey[data-page="onboarding"] #admitted>.note{margin-top:18px;font-size:12px}
.journey[data-page="onboarding"] :is(#a2hs,#signout){font-family:var(--body)}
.journey[data-page="onboarding"] #a2hs .gear{border-radius:16px}
.journey[data-page="onboarding"] #signout{align-self:center;min-height:44px;margin-top:0;color:#a6bcae;font-size:12px}
@media(max-width:360px){.journey[data-page="onboarding"] .head{margin:0 18px;gap:9px 10px!important}.journey[data-page="onboarding"] .head .unit{font-size:20px}.journey[data-page="onboarding"] #view-admission:has(:is(#doors,#join-identity,#admitted,#setup):not([hidden])){padding-left:18px!important;padding-right:18px!important}.journey[data-page="onboarding"] :is(#doors,#join-identity,#admitted,#setup){padding:24px 18px}.journey[data-page="onboarding"] .signin-symbol{right:18px;top:22px;width:41px;height:46px}.journey[data-page="onboarding"] #doors>.eyebrow{font-size:30px}.journey[data-page="onboarding"] .craft.door{padding-left:13px;padding-right:12px;font-size:13px}}
@media(max-height:650px){.journey[data-page="onboarding"] #view-admission:has(:is(#doors,#join-identity,#admitted,#setup):not([hidden])){padding-top:24px!important}}
.journey[data-page="onboarding"] #view-admission:has(#doors:not([hidden])){justify-content:center;padding-top:24px!important;padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}

/* Identity, device access and briefing share the installation's Pulse finish. */
.journey[data-page="enter"]{--ink:#dfece6;--ink-dim:#9cb5ae;--vital:#84e1c2;--panel:#14241f;background:#07090a}
.journey[data-page="enter"] .device{background:linear-gradient(#07090a 0,#07090a calc(env(safe-area-inset-top) + 16px),transparent 200px),radial-gradient(ellipse at 50% 32%,#13322d 0,transparent 68%),#0a1012;box-shadow:none}
.journey[data-page="enter"] .device::after{display:none}
.journey[data-page="enter"] .head{flex:none;margin:0 24px;padding:calc(24px + env(safe-area-inset-top)) 0 18px;border:0}
.journey[data-page="enter"] .head .unit{font:600 24px/1.2 var(--display);letter-spacing:.12em}
.journey[data-page="enter"] .step{padding:clamp(28px,6dvh,56px) 24px calc(28px + env(safe-area-inset-bottom));scrollbar-width:none;overscroll-behavior:contain}
.journey[data-page="enter"] #identity-form{padding-top:clamp(28px,6dvh,56px)}
.journey[data-page="enter"] .identity-content{flex:none;justify-content:flex-start}
.journey[data-page="enter"] .eyebrow{margin:0 0 18px;color:#a0c2b3;font:500 11px/1.5 var(--data);letter-spacing:.1em}
.journey[data-page="enter"] .big{font:500 clamp(30px,8vw,36px)/1.15 var(--display);letter-spacing:-.035em;color:var(--ink);max-width:14ch;text-wrap:balance}
.journey[data-page="enter"] .sub{font:15px/1.6 var(--body);color:var(--ink-dim);margin:14px 0 0}
.journey[data-page="enter"] .identity-photo{margin:30px 0 0;padding:20px;border:1px solid #365348;border-radius:22px;background:linear-gradient(125deg,#203c31aa,#14251e88);gap:18px}
.journey[data-page="enter"] .avatar-picker{width:72px;height:76px;border-radius:18px;border-color:#4c7462;background:linear-gradient(140deg,#294b3b,#162e25);color:#9fceba}
.journey[data-page="enter"] .avatar-picker>svg{padding:11px}
.journey[data-page="enter"] .avatar-edit{border-radius:9px 0 0 0;background:#91e5c4;color:#183e2e;border:0;width:23px;height:23px;line-height:23px}
.journey[data-page="enter"] .photo-id{font-size:11px;letter-spacing:.06em}
.journey[data-page="enter"] .photo-hint{font-size:14px;color:#c1e2d3;margin-top:7px}
.journey[data-page="enter"] #identity-form .username-field{margin-top:22px;border-radius:16px;border-color:#486a5b;background:linear-gradient(120deg,#1b342a,#101e1a);padding:0 18px}
.journey[data-page="enter"] .username-field:focus-within{border-color:#91e5c4;box-shadow:0 0 0 3px #84e1c212}
.journey[data-page="enter"] .username-field input{font:17px/1.4 var(--body);padding:18px 0}
.journey[data-page="enter"] .username-field input::placeholder{color:#879f93}
.journey[data-page="enter"] .field-help{margin:10px 2px 0}
.journey[data-page="enter"] .identity-confirm{padding-top:30px}
.journey-next{display:flex;align-items:center;justify-content:space-between;gap:24px;width:fit-content;min-width:146px;max-width:100%;min-height:48px;margin:0 auto;padding:12px 22px;border:1px solid #9df3d7;border-radius:26px;background:linear-gradient(110deg,#a0f6da,#65d9b9);color:#08231b;font:500 15px/1.4 var(--body);cursor:pointer;touch-action:manipulation;box-shadow:inset 0 1px #e2fff544}
.journey-next:hover:not(:disabled){filter:brightness(1.06)}
.journey-next:disabled{opacity:.4;cursor:default;box-shadow:none}
.journey[data-page="enter"] .setup-scroll{flex:none;overflow:visible;padding:0;justify-content:flex-start}
.journey[data-page="enter"] .setup-scroll>.big{margin:23px 0 27px;max-width:14ch}
.journey[data-page="enter"] .class-progress{font:11px/1.5 var(--data);color:#94b4a5}
.journey[data-page="enter"] .class-progress button{font:12px/1.5 var(--body);color:#b2d4c5}
.journey[data-page="enter"] #device-access{display:grid;gap:14px}
.journey[data-page="enter"] .access-card{margin:0;border:1px solid #365348;border-radius:22px;background:linear-gradient(125deg,#203b30bb,#11241e88);box-shadow:inset 0 1px #ccf5df06}
.journey[data-page="enter"] .access-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px 16px}
.journey[data-page="enter"] .access-symbol{display:grid;place-items:center;width:40px;height:44px;border:1px solid #55806977;border-radius:14px;background:linear-gradient(135deg,#355b4544,#162b2288);color:#aad7b9}
.journey[data-page="enter"] .access-symbol svg{width:26px;height:26px;stroke-width:1.4}
.journey[data-page="enter"] .access-copy{padding-top:1px}
.journey[data-page="enter"] .access-copy strong{font:500 17px/1.3 var(--display)}
.journey[data-page="enter"] .access-copy small{font:13px/1.6 var(--body);color:#a6bfb2;margin-top:6px}
.journey[data-page="enter"] :is(.access-button,.access-status){grid-column:3;justify-self:end;max-width:90px;min-height:44px;padding:11px 13px;border-radius:24px;font:500 12px/1.4 var(--body)}
.journey[data-page="enter"] .access-button{background:#3b5f4c44;border-color:#7eb79766;color:#c0ead1;cursor:pointer}
.journey[data-page="enter"] .access-note{padding:0 20px 18px;font-size:12px}
.journey[data-page="enter"] .setup-optional{margin:22px 0 0;font-size:12px;color:#94b0a2;max-width:32ch;align-self:center;text-wrap:balance}
.journey[data-page="enter"] .setup-footer{padding:24px 0 0}
.journey[data-page="enter"] .briefing-scroll{padding:12px 24px 18px}
.journey[data-page="enter"] .briefing-scroll .class-progress{min-height:40px;align-items:center;margin:0}
.journey[data-page="enter"] .briefing-scroll .class-progress button{min-height:40px}
.journey[data-page="enter"] .briefing-console{position:relative;min-height:0;margin:14px 0 0;padding:20px;border-radius:22px;border-color:#aba77a45;background:radial-gradient(ellipse at 100% 0,#b59a5022,transparent 62%),linear-gradient(145deg,#1b3028cc,#101c19dd);box-shadow:inset 0 1px #e6e6bc0b}
.journey[data-page="enter"] .transmission-head{gap:8px;margin:0;padding:0 0 14px;border-color:#a4af8130;color:#c5c39d;font:500 10px/1.5 var(--data);letter-spacing:.06em}
.journey[data-page="enter"] .transmission-dot{width:5px;height:5px;flex:none;border-radius:50%;background:#d6bc81;box-shadow:0 0 8px #d6bc8133}
.journey[data-page="enter"] .briefing-console .big{margin:18px 0 22px;max-width:none;font-size:clamp(25px,6.8vw,29px);line-height:1.16;letter-spacing:-.025em;text-wrap:initial}
.journey[data-page="enter"] .briefing-block{margin-top:18px}
.journey[data-page="enter"] .briefing-block:first-child{margin-top:0}
.journey[data-page="enter"] .briefing-block p{margin:0;font:14px/1.65 var(--body);color:#b5cbbf}
.journey[data-page="enter"] .briefing-block:nth-child(3){padding:14px 14px 14px 16px;border-left:2px solid #c8ae6b88;border-radius:0 12px 12px 0;background:linear-gradient(110deg,#b29b5113,transparent)}
.journey[data-page="enter"] .briefing-block:nth-child(3) p{color:#d3d3b7}
.journey[data-page="enter"] .briefing-block:last-child p{color:#d1e4d8;font-weight:500}
.journey[data-page="enter"] .briefing-footer{padding:12px 24px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(#0a101200,#0a1012 45%)}
.journey[data-page="enter"]:lang(zh-CN) .big{max-width:none;font-size:30px;line-height:1.35}
@media(min-width:761px){.journey[data-page="enter"] .device{width:440px;border:1px solid #314449;border-radius:30px 30px 0 0;box-shadow:0 0 0 6px #0e171a}}
@media(max-width:360px){.journey[data-page="enter"] .head{margin:0 20px}.journey[data-page="enter"] .head .unit{font-size:21px}.journey[data-page="enter"] .step{padding-left:20px;padding-right:20px}.journey[data-page="enter"] .identity-photo{padding:16px;gap:14px}.journey[data-page="enter"] .access-row{grid-template-columns:34px minmax(0,1fr) auto;padding:16px 12px;gap:9px}.journey[data-page="enter"] .access-symbol{width:34px;height:40px}.journey[data-page="enter"] :is(.access-button,.access-status){padding:11px 10px}.journey[data-page="enter"] .briefing-scroll{padding-left:20px;padding-right:20px}.journey[data-page="enter"] .briefing-footer{padding-left:20px;padding-right:20px}}

/* The review gallery follows the current Pulse surfaces and type scale. */
.screens-catalog{--ink:#dfece6;--ink-dim:#9cb5ae;--vital:#9de5cc;--panel:#12201c;--panel-hi:#1c3027;--line:#36504677;--line-hi:#8caa8266;display:block;padding:42px 24px 48px;background:radial-gradient(ellipse at 70% 0,#c09d3910,transparent 34%),radial-gradient(ellipse at 25% 15%,#16372b77,transparent 52%),#090f10}
.screens-catalog main{max-width:1120px;margin:0 auto}
.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}
.screens-catalog .brand{margin:0;padding:0;border:0;font:600 25px/1.2 var(--display);letter-spacing:.12em}
.catalog-head>span{color:#b6bd9b;font:10px/1.5 var(--data);letter-spacing:.08em;text-transform:uppercase}
.design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.screens-catalog .design-card{display:flex;flex-direction:column;border-radius:24px;border-color:#a2b08a44;background:radial-gradient(ellipse at 100% 0,#b39b5518,transparent 70%),linear-gradient(145deg,#1b3228,#101c19);transition:border-color .2s,background .2s}
.screens-catalog .design-card:hover{border-color:#98c0aa88}
.screens-catalog .design-art{height:184px;flex:none;background:radial-gradient(ellipse at 60% 55%,#629b7b16,transparent 70%),#0d1917}
.screens-catalog .design-art::after{display:none}
.screens-catalog .design-art img{filter:saturate(.65);height:230px;width:153px;right:28px;top:0}
.screens-catalog .design-art .readout{left:26px;top:46px;color:#b2ead2;font-weight:500}
.screens-catalog .design-art .readout small{color:#b2ead2}
.screens-catalog .design-card .copy{display:flex;flex:1;flex-direction:column;padding:23px 24px 24px;border-color:#7f9c7729}
.screens-catalog .design-card h1,.screens-catalog .design-card h2{margin:0 0 10px;font:500 30px/1.15 var(--display);letter-spacing:-.035em}
.screens-catalog .design-card p{font-size:14px;line-height:1.6;margin:0 0 24px}
.screens-catalog .design-card .open{margin-top:auto;font:500 14px/1.5 var(--body)}
.screens-catalog .laboratory-card{border-color:#c6ddea;background:linear-gradient(130deg,#fff,#e5f2fc);color:#193e5c}
.screens-catalog .laboratory-card .design-art{background:radial-gradient(ellipse,#c9e8fa,#f1f8fd 70%)}
.screens-catalog .laboratory-card .design-art img{inset:0;margin:auto;width:100%;height:100%;max-height:100%;object-fit:contain;transform:none;filter:none;mix-blend-mode:normal;opacity:1;mask-image:none}
.screens-catalog .laboratory-card .copy{border-color:#bbd4e066}
.screens-catalog .laboratory-card p{color:#507795}
.screens-catalog .laboratory-card .open{color:#2379b2}
.screens-catalog .liquid-card{background:linear-gradient(145deg,#d8f2df12,#adccb306 55%,#b1d8bc0b);border-color:#c6e8d650;box-shadow:inset 0 1px #f4ffe728,0 12px 32px #0003}
.screens-catalog .liquid-card .design-art{background:radial-gradient(ellipse at 90% 15%,#52786555,transparent 70%),radial-gradient(ellipse at 0 100%,#a78c4124,transparent 65%),#0b1716}
.screens-catalog .liquid-card .design-art img{opacity:.72;filter:grayscale(1) sepia(.25) hue-rotate(90deg);mix-blend-mode:screen}
.screens-catalog .liquid-card .readout{font-size:46px;top:35px;left:22px;color:#c5f2db}
.screens-catalog .liquid-card .readout span{font-size:10px;letter-spacing:.1em}
.liquid-art-bar{position:absolute;left:16px;right:16px;bottom:12px;height:37px;display:flex;align-items:center;justify-content:space-around;border:1px solid #e4f6e950;border-radius:23px;background:linear-gradient(150deg,#deefe624,#8fb69b12 48%,#d4e8ce1f);box-shadow:inset 0 1px #ffffff3b,0 6px 20px #0005;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.liquid-art-bar i{display:grid;place-items:center;width:42px;height:27px;font:18px var(--body);color:#c4e5d4}.liquid-art-bar i:first-child{border-radius:18px;background:#c4edda22;box-shadow:inset 0 1px #e9fff92b}
.liquid-art-bar svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.screens-catalog .liquid-card .copy{border-color:#c6e8d629}
.screens-catalog .liquid-card .open{color:#c5f2db}
.screens-catalog .screen-menu{margin-top:38px}
.screens-catalog .screen-menu h2{display:flex;align-items:center;gap:16px;margin-bottom:16px;color:#b6bd9b;font-size:10px}
.screens-catalog .screen-menu h2::after{content:"";height:1px;background:#90a48228;flex:1}
.screens-catalog .screen-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.screens-catalog .screen-list>li{min-width:0;border:1px solid #72997c35;border-radius:20px;overflow:hidden;background:linear-gradient(125deg,#1c332955,#101c19aa)}
.screens-catalog .screen-link{height:100%;min-height:104px;padding:19px 18px;gap:14px;grid-template-columns:28px minmax(0,1fr) 12px;border:0;border-radius:0;background:transparent}
.screens-catalog .screen-link:hover{background:#8dba9320}
.screens-catalog .screen-list>li:has(.install-previews) .screen-link{height:auto}
.screens-catalog .screen-number{display:grid;place-items:center;width:28px;height:32px;border-radius:9px;background:#a7b77d0a;border:1px solid #9fad6c2c;color:#b8c9a3;font-size:10px}
.screens-catalog .screen-link strong{font-size:19px;font-weight:500;letter-spacing:-.015em}
.screens-catalog .screen-link small{margin-top:7px;font-size:13px;line-height:1.5}
.screens-catalog .screen-arrow{color:#96cfb3}
.screens-catalog .install-previews{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0 18px 17px;border:0;background:none}
.screens-catalog .install-previews a{display:inline-flex;align-items:center;min-height:36px;padding:8px 10px;border:1px solid #7798753b;border-radius:11px;background:#91ad6810;font:10px/1.5 var(--data);color:#bdd0b0}
.screens-catalog .help{padding-top:22px;border-top:1px solid #90a48228;font:12px/1.65 var(--body);color:#819b8d}
@media(min-width:761px){.journey[data-page="enter"] .device:has(#identity-ready:not([hidden])){height:min(900px,calc(100dvh - 32px));border-radius:30px}.journey[data-page="enter"] .stage:has(#identity-ready:not([hidden])){padding-top:0}}
@media(max-width:900px){.design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-grid .liquid-card{grid-column:1/-1}.screens-catalog .liquid-card .liquid-art-bar{max-width:360px;margin:auto}}
@media(max-width:640px){.screens-catalog{padding:28px 20px 36px}.screens-catalog main{max-width:440px}.design-grid,.screens-catalog .screen-list{grid-template-columns:1fr}.catalog-head{margin-bottom:24px}.screens-catalog .brand{font-size:22px}.catalog-head>span{font-size:9px}.screens-catalog .screen-link{min-height:94px}.screens-catalog .design-art{height:172px}}

/* Two-screen entry: understand and install, then sign in and choose a name. */
.install-languages{display:flex;flex:none;gap:2px;width:fit-content;margin:0;padding:3px;border:1px solid #9ac9b527;border-radius:25px;background:#95c3ad0a}
.install-languages button{min-height:44px;padding:9px 10px;border:1px solid transparent;border-radius:21px;background:transparent;color:#91aaa1;font:12px/1.4 var(--body);white-space:nowrap;cursor:pointer}
.install-languages button[aria-pressed="true"]{background:linear-gradient(135deg,#b5ecd324,#83b7a00a);border-color:#bbeed53d;color:#daf0e6;box-shadow:inset 0 1px #edfff217}
.install-page .install-signal{height:92px;margin:16px auto 8px}
.install-page .install-infection{margin:0 0 12px}
.install-page #game-title{font:500 clamp(32px,9vw,38px)/1.1 var(--display);letter-spacing:-.035em;margin:0;color:var(--ink)}
.game-intro{font:15px/1.65 var(--body);color:#b3c8bf;margin:17px 0 0;max-width:36ch}
.install-instructions{margin-top:28px;padding-top:24px;border-top:1px solid #a3c9b727}
.install-page #head{font:500 24px/1.2 var(--display);letter-spacing:-.025em;color:var(--ink);margin:0}
.install-page .install-intro{font-size:13px;margin-top:12px}
.install-page .install-browsers{margin:18px 0 0}
.install-page .install-browsers button{font-size:14px;min-height:44px;padding:11px 8px}
.install-page .install-guide{margin-top:18px}
.install-page .install-steps li{padding:16px 14px;font-size:13px;gap:11px}
.journey[data-page="onboarding"] #view-admission:has(#join-identity:not([hidden])){justify-content:center;padding-top:24px!important;padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}
.journey[data-page="onboarding"] #join-identity h1{font:500 30px/1.15 var(--display);letter-spacing:-.035em;color:#e2eee7;max-width:12ch;margin:4px 58px 16px 0}
.journey[data-page="onboarding"] #join-identity>p{font:14px/1.65 var(--body);color:#adc2b6;margin:0 0 22px}
.journey[data-page="onboarding"] .join-name-field{display:flex;align-items:center;gap:10px;padding:0 15px;background:#14312855;border:1px solid #719b8755;border-radius:14px;color:#a3e1c6}
.journey[data-page="onboarding"] .join-name-field:focus-within{border-color:#a3e1c6;box-shadow:0 0 0 3px #a3e1c612}
.journey[data-page="onboarding"] #join-name{min-width:0;width:100%;min-height:52px;padding:12px 0;border:0;outline:0;background:transparent;color:#e1eee6;font:16px/1.4 var(--body)}
.journey[data-page="onboarding"] #join-name::placeholder{color:#829e91}
.journey[data-page="onboarding"] #join-identity .field-help{margin:9px 0 0;font-size:11px}
.journey[data-page="onboarding"] #join-identity .field-error{margin:12px 0 0;color:#e3ad9b;font-size:12px}
.journey[data-page="onboarding"] #join-submit{margin-top:26px}
.capsule-gallery-link{display:block;margin-top:20px;padding:17px 22px;border:1px solid #b0bd7e38;border-radius:18px;background:#a1b77409;color:#c7d5b5;font:12px/1.6 var(--data,monospace)}
