@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#eaf6ef;background:#061619;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #c4e5d638;border-radius:8px;background:#0b242ccb;padding:12px 16px;backdrop-filter:blur(15px);transition:background .2s}button:hover{background:#29554bd9}button:disabled{opacity:.45;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #b6ffd4;outline-offset:4px}[hidden]{display:none!important}#experience{height:100svh;min-height:600px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#041519ee,transparent 70%),linear-gradient(0deg,#031218c9,transparent 22%)}.riding .vignette{background:linear-gradient(0deg,#030d16da,transparent 27%,transparent 75%,#030d1677)}header{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:24px 36px;pointer-events:none}header>*{pointer-events:auto}.wordmark{display:flex;gap:12px;align-items:center;font-size:28px;text-decoration:none;color:#b8f0d3}.wordmark span{font-size:15px;letter-spacing:3px;color:#eefaf3}#return{font-size:13px}#home{position:absolute;left:8%;top:29%;pointer-events:none}#home button{pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:2px;color:#b0d6c9;font-weight:500}#home h1{font:400 clamp(48px,5.4vw,84px)/1 'Instrument Serif',Georgia,serif;margin:22px 0}h1 em{color:#b4edc9;font-weight:400}#home p{font-size:17px;color:#acc6bb;line-height:1.7;margin:23px 0}.primary{background:#bbf5d7;color:#103d31;border:0;font-weight:600}.primary:hover{background:#defeea}#enter{padding:18px 23px;font-size:16px;min-width:228px;box-shadow:0 0 60px #91ffd215}#enter span{margin-left:25px}#home #loading{font-size:12px;margin:13px 0}.home-foot{font-size:13px;color:#759e91;margin-top:34px}.location{position:absolute;left:36px;top:109px;pointer-events:none}.location h1{font:400 48px/1.1 'Instrument Serif',Georgia,serif;margin:12px 0 9px}.scene-note{font-size:12px;color:#b8c5c2}#field-note{position:absolute;right:30px;top:115px;width:260px;padding:18px 20px;border-left:1px solid #bbecd249;background:linear-gradient(90deg,#05151aab,#05151a22);border-radius:0 9px 9px 0}#field-note .eyebrow{font-size:11px}#field-note h2{font:400 26px 'Instrument Serif',Georgia,serif;margin:10px 0}#field-note p{font-size:14px;line-height:1.65;color:#c1d0c9;margin:0 0 10px}#field-note a{font-size:12px;color:#a5d7c3;text-decoration:none}.reticle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#e0ffe144;font-size:22px;pointer-events:none}.ride-bottom{position:absolute;left:36px;right:36px;bottom:65px}.journey-progress{display:flex;align-items:center;gap:17px;font-size:12px;color:#bfd5c9;margin-bottom:16px}.journey-progress>div{width:110px;height:2px;background:#d6f2e32c}.journey-progress i{height:100%;display:block;background:#ccf7da;width:0}.journey-progress button{margin-left:auto;font-size:14px;background:#afedcf1c;border-color:#baf0d755}.controls{display:flex;gap:8px}.controls button{font-size:13px}.keyboard{color:#9bb7ac;font-size:12px;margin:12px 0 0}footer{position:absolute;left:36px;right:36px;bottom:18px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#93b3a6}footer a{text-decoration:none}footer div{display:flex;gap:16px}footer button{font-size:12px;padding:5px 0;border:0;background:none;backdrop-filter:none;color:inherit}#completion{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);padding:28px;background:#071d24eb;border:1px solid #ccf7da44;border-radius:12px;text-align:center;min-width:390px;backdrop-filter:blur(15px)}#completion>span{font-size:11px;letter-spacing:2px;color:#acd8c3}#completion h2{font:36px 'Instrument Serif',Georgia,serif;margin:13px 0 24px}#completion>div{display:flex;gap:10px;justify-content:center}#routes{position:absolute;inset:0;z-index:10;background:#06191af5;padding:clamp(25px,7vw,100px);overflow:auto;backdrop-filter:blur(20px)}.route-head{display:flex;align-items:flex-start;justify-content:space-between;max-width:1150px;margin:auto}.route-head h2{font:48px 'Instrument Serif',Georgia,serif;margin:15px 0 35px}#close-routes{font-size:28px;line-height:1;padding:8px 13px}#route-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1150px;margin:auto}.route-card{text-align:left;min-height:290px;padding:25px;display:flex;flex-direction:column;background:linear-gradient(160deg,#552536,#102128);border-color:#e398aa40}.route-stomach{background:linear-gradient(160deg,#6a353b,#232231)}.route-intestine{background:linear-gradient(160deg,#79554b,#182831)}.route-card>span{font-size:11px;letter-spacing:1.5px;color:#d8b5b0}.route-card strong{font:34px 'Instrument Serif',Georgia,serif;margin:20px 0 8px}.route-card em{font-size:14px;font-style:normal;color:#e7c7b9}.route-card p{font-size:15px;line-height:1.6;color:#c5c9bd}.route-card b{font-size:14px;color:#b9f3d5;margin-top:auto;font-weight:500}.route-context{max-width:760px;margin:25px auto;font-size:14px;line-height:1.7;color:#9fbcb0;text-align:center}#veil{position:absolute;inset:0;z-index:12;background:#04151a;display:flex;justify-content:center;align-items:center;flex-direction:column;pointer-events:auto;opacity:0;text-align:center;padding:25px}#veil h2{font:italic 54px 'Instrument Serif',Georgia,serif;margin:25px 0;color:#c3f2d6}#veil p{font-size:15px;color:#95b1a6;max-width:430px;line-height:1.6}#error{position:absolute;inset:0;z-index:20;background:#071a20;padding:15%;font-size:17px;line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.touch-controls{display:none}
@media(pointer:coarse){.touch-controls{display:block;position:absolute;left:26px;bottom:235px;text-align:center}.touch-controls>div{display:flex;justify-content:center;gap:5px}.touch-controls button{padding:0;min-width:43px;min-height:43px;margin:3px 0;font-size:14px;touch-action:none}.touch-controls>button{margin-bottom:4px}.keyboard{display:none}}
@media(max-width:700px){#experience{min-height:600px}header{padding:18px 20px}.wordmark span{font-size:12px;letter-spacing:2px}.wordmark{font-size:24px}#return{font-size:12px;padding:9px 11px}#home{left:24px;right:24px;top:auto;bottom:105px}#home h1{font-size:46px;margin:18px 0}#home p{font-size:16px;margin:19px 0}.vignette{background:linear-gradient(0deg,#041519 14%,#041519ce 38%,transparent 78%)}.home-foot{margin-top:22px}.location{left:21px;top:92px}.location h1{font-size:34px;margin:8px 0}.eyebrow{font-size:10px}.scene-note{font-size:11px}#field-note{top:auto;bottom:236px;right:17px;width:198px;padding:13px;background:#07171ec7;border-radius:9px;border:1px solid #bde5d324}#field-note h2{font-size:22px}#field-note p{font-size:12px;line-height:1.55}.ride-bottom{left:19px;right:19px;bottom:74px}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.controls button{font-size:11px;padding:11px 5px;min-height:39px}.journey-progress{gap:9px;font-size:11px;margin-bottom:12px}.journey-progress>div{width:48px}.journey-progress button{font-size:12px;padding:12px}.keyboard{display:none}footer{left:20px;right:20px;bottom:max(16px,env(safe-area-inset-bottom));font-size:11px;gap:10px}footer div{gap:12px}footer button{font-size:11px;min-height:32px}.touch-controls{display:block;position:absolute;bottom:252px;left:18px;text-align:center}.touch-controls>div{display:flex;justify-content:center;gap:4px}.touch-controls button{min-width:39px;min-height:40px;padding:5px;font-size:12px;margin:2px;touch-action:none}#completion{min-width:0;width:90%;top:40%;padding:20px;z-index:2}#completion h2{font-size:29px}#completion button{font-size:13px;padding:12px}#routes{padding:30px 22px}.route-head h2{font-size:36px}#route-list{grid-template-columns:1fr;gap:12px}.route-card{min-height:195px;padding:20px}.route-card strong{font-size:30px;margin:12px 0 6px}.route-card p{font-size:14px}.route-context{text-align:left}#veil h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Destination controls stay beside the body, never across its anatomy. */
#home{top:19%;width:34%;max-width:440px}#home h1{font-size:clamp(44px,5vw,72px);margin:18px 0}#home p{font-size:15px;margin:17px 0}
#body-entries{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:22px 0 12px;pointer-events:auto;max-width:350px}
.body-entry{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:11px 13px;font-size:13px;min-height:43px;background:#082127b8;border-color:#9fe8c72b}
.body-entry:last-child{grid-column:1/-1}.body-entry b{font-weight:400;color:#7ab99d}.body-entry.highlighted{border-color:#a5ffd9;background:#9ef7ce18;color:#d9ffef}.body-entry[aria-pressed=true] b{color:#affcda}
#home #entry-description{font-size:12px;line-height:1.6;min-height:39px;max-width:350px;color:#a3c0b3;margin:12px 0}#enter{min-width:225px;padding:15px 20px}#home #loading{font-size:11px;margin:10px 0}
#body-hint{position:absolute;right:10%;bottom:12%;font-size:12px;color:#96baab;pointer-events:none}.riding #body-hint{display:none}
#passage-position{display:inline-block;margin:14px 0 0;padding:7px 11px;border:1px solid #a5e3cf36;border-radius:20px;color:#c4f2de;background:#072126a8;font-size:12px;letter-spacing:.4px}
#route-list{grid-template-columns:repeat(3,minmax(0,1fr))}.route-card{min-height:250px}.route-heart{background:linear-gradient(150deg,#792839,#271827)}.route-lungs{background:linear-gradient(150deg,#426b79,#202137)}
@media(max-width:900px){#route-list{grid-template-columns:repeat(2,minmax(0,1fr))}.route-card{min-height:225px}}
@media(max-width:700px){#experience{min-height:600px}#home{top:auto;bottom:73px;left:20px;right:20px;width:auto;max-width:none}#home h1{font-size:33px;line-height:1;margin:0 0 9px}#home h1 br{display:none}#home h1 em{padding-left:7px}#home>.eyebrow,#home>p:not(#entry-description):not(#loading){display:none}#body-entries{display:flex;flex-wrap:wrap;max-width:none;gap:5px;margin:11px 0}.body-entry{font-size:11px;padding:8px 10px;min-height:38px;gap:12px;flex:1 0 28%}.body-entry:last-child{flex-grow:2}#home #entry-description{font-size:11px;min-height:30px;margin:8px 0;max-width:none}#enter{font-size:14px;min-width:0;width:100%;padding:13px}#home #loading{margin:7px 0;font-size:10px}#body-hint{right:20px;top:76px;bottom:auto;font-size:10px}#route-list{grid-template-columns:1fr}#passage-position{font-size:11px;margin-top:10px}.vignette{background:linear-gradient(0deg,#041519 22%,#041519cc 35%,transparent 56%)}.riding #experience{min-height:600px}}

#next-landmark{display:block;font-size:11px;color:#a1baaf;margin-top:8px;letter-spacing:.3px}.route-kidney{background:linear-gradient(145deg,#71623d,#1e2934)}.body-entry:last-child{grid-column:auto}@media(max-width:700px){.body-entry:last-child{flex-grow:1}}

/* Reserve a real model area on phones instead of hiding anatomy behind controls. */
@media(max-width:700px){
 body:not(.riding) #viewport{inset:75px 0 305px}
 #home{bottom:55px}#home h1{font-size:28px;margin-bottom:6px}
 #body-entries{margin:9px 0}.body-entry{min-height:38px}
 #home #loading{margin:5px 0}#body-hint{top:68px;left:0;right:0;text-align:center}
 .vignette{background:linear-gradient(0deg,#041519 23%,transparent 47%)}
 footer{bottom:max(6px,env(safe-area-inset-bottom))}
 .location{top:82px;right:20px}.location h1{font-size:29px}
 #passage-position{margin-top:8px}#next-landmark{margin-top:5px}
 #field-note{top:215px;bottom:auto;right:17px;width:min(260px,calc(100% - 34px));padding:10px 13px}
 #field-note h2{font-size:21px;margin:6px 0}#field-note p{margin-bottom:5px}
 .touch-controls{bottom:219px;left:18px}
 .touch-controls button{min-width:44px;min-height:44px}
 .ride-bottom{bottom:58px}
 #completion{top:44%}
}
@media(max-height:720px) and (max-width:700px){
 #field-note{top:203px;max-width:235px}#field-note h2{font-size:19px}#field-note p{font-size:11px;line-height:1.4}
 .touch-controls{bottom:214px;opacity:.86}
 #next-landmark{display:none}
}
@media(max-height:580px) and (min-width:701px){
 #experience{min-height:480px}header{padding:15px 26px}#home{top:95px;left:5%;width:39%}
 #home h1{font-size:33px;margin:8px 0}#home>.eyebrow,#home>p:not(#entry-description):not(#loading){display:none}
 #body-entries{margin:10px 0}.body-entry{padding:8px 11px;min-height:35px}
 #home #entry-description{min-height:0;margin:7px 0}#home #loading{display:none}
 #enter{padding:11px 18px}#body-hint{bottom:12%}
 .location{top:70px}.location h1{font-size:32px}#field-note{top:80px;padding:12px;width:235px}
 #field-note h2{font-size:22px}#field-note p{font-size:12px}.ride-bottom{bottom:51px}
 .touch-controls{bottom:170px}.keyboard{display:none}
}

/* One thumb controls the cross-section; forward and back remain separate. */
.touch-controls{width:104px}
.touch-controls #steering{display:block;position:relative;width:88px;height:88px;min-width:88px;margin:0 auto 8px;border-radius:50%;padding:0;background:radial-gradient(circle,#b4f5d918,#07232bc4 68%);border-color:#cfffe14d;touch-action:none}
.stick-axis{font:40px/1 system-ui;color:#c0f5dc40;position:absolute;inset:23px;pointer-events:none}
#stick-knob{position:absolute;width:28px;height:28px;left:29px;top:29px;border-radius:50%;background:#bdebdbe0;box-shadow:0 0 17px #b7f2d52b;pointer-events:none}
.touch-controls>div{gap:5px}.touch-controls button[data-control]{min-height:44px;min-width:46px}
@media(max-width:700px){#field-note{top:215px;width:min(240px,calc(100% - 143px))}.touch-controls{bottom:220px;left:18px}#field-note .eyebrow{font-size:9px;letter-spacing:1px}}
@media(max-height:720px) and (max-width:700px){#field-note{top:204px}.touch-controls{bottom:209px}}

.route-brain{background:linear-gradient(145deg,#424570,#18283a)}
#body-entries .body-entry:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:700px){#body-entries{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.body-entry{gap:4px;padding:8px 7px;font-size:10px;white-space:nowrap}#body-entries .body-entry:last-child:nth-child(odd){grid-column:auto}.body-entry[data-region=intestine]{grid-column:span 2}}
@media(min-width:701px){
 #home{top:100px;bottom:73px;display:flex;flex-direction:column;justify-content:center;max-height:calc(100svh - 173px);overflow-y:auto;scrollbar-width:thin;pointer-events:auto}
 #home>p:not(#entry-description):not(#loading){display:none}
 #home h1{font-size:clamp(40px,6.7vh,64px);margin:12px 0}
 #body-entries{margin:15px 0 8px;width:100%;gap:6px}
 .body-entry{padding:9px 12px;min-height:39px}
 #home #entry-description{margin:9px 0;min-height:36px}
 #enter{align-self:flex-start;flex-shrink:0}
 #home #loading{margin:8px 0 0}
}
@media(min-width:701px) and (max-height:720px){
 #home{top:85px;bottom:58px;max-height:calc(100svh - 143px)}#home h1{font-size:38px;margin:8px 0}
 #home>.eyebrow,#home #loading{display:none}#body-entries{margin:9px 0 5px;gap:5px}.body-entry{min-height:35px;padding:8px 11px}
}

#restore-ui{position:absolute;right:25px;bottom:max(24px,env(safe-area-inset-bottom));font-size:12px;background:#072129a6;border-color:#c5eeda44;z-index:3}#restore-ui span{margin-left:12px}
.clear-view header,.clear-view footer,.clear-view #hud>.location,.clear-view #field-note,.clear-view .ride-bottom,.clear-view .touch-controls,.clear-view .reticle{display:none}
.clear-view .vignette{opacity:.3}
@media(prefers-reduced-motion:no-preference){.vignette{transition:opacity .2s}}

#inspection-close{display:block;margin-top:12px;font-size:11px;padding:8px 10px;background:#b5ecd91c;border-color:#bcebd342}
#inspection-pin{position:absolute;width:24px;height:24px;border:1px solid #d8ffe4;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #b3f7d526;pointer-events:none}

#inspection-tip{display:block;margin-top:12px;color:#a5d7c3;font-size:11px;letter-spacing:.2px}@media(max-width:700px){#inspection-tip{margin-top:8px;font-size:10px}}

#home-actions{display:flex;gap:8px;align-items:stretch;flex-shrink:0;pointer-events:auto}
#resume-journey{padding:15px 18px;font-size:14px;white-space:nowrap}
#home-actions.can-resume #enter{background:#09252bba;border:1px solid #a1d8c545;color:#b6d8c9;min-width:0;padding:13px;font-size:12px;box-shadow:none}
#home-actions.can-resume #enter span{margin-left:8px}
@media(max-width:700px){#home-actions #enter{flex:1}#home-actions.can-resume #resume-journey{flex:1}#home-actions.can-resume #enter{flex:0 0 auto;width:auto}#resume-journey{padding:12px 16px}}

/* Keep mobile notes below the location labels and the middle of the ride open. */
@media(max-width:700px){#field-note{top:270px}}
@media(max-height:720px) and (max-width:700px){#field-note{top:230px}}

/* Preserve label contrast against pale tissue as well as the dark bloodstream. */
.location{text-shadow:0 1px 5px #001019,0 0 15px #001019}
.scene-note{display:block}#passage-position{display:table}
#field-note{background:#05151ad9;border:1px solid #bbecd22b}
.journey-progress{ text-shadow:0 1px 5px #001019,0 0 12px #001019}
.journey-progress button{background:#10343ee8;text-shadow:none}
.riding .vignette{background:linear-gradient(0deg,#030d16ed,transparent 32%,transparent 62%,#030d16aa)}
