*{box-sizing:border-box}html,body{margin:0;background:#091215;color:#f2f7f7;font-family:Colbuy,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #00efdf;outline-offset:4px}[hidden]{display:none!important}#umbral{height:100svh;min-height:620px;display:flex;flex-direction:column;overflow:hidden}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.office-header{height:72px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 4vw;border-bottom:1px solid #ffffff12;gap:20px;background:#091215}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:#00efdf}.brand img{object-fit:contain;max-width:104px}.brand span,.story-kicker,.scene-tag,.control-foot>span,.door-title>span{font-size:10px;letter-spacing:.16em}.back{color:#bccacd;text-decoration:none;display:flex;align-items:center;gap:12px;font-size:12px}.scene{position:relative;flex:1;min-height:240px;overflow:hidden;background:#112127;isolation:isolate}canvas{position:absolute;width:100%;height:100%;inset:0;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.door-title{position:absolute;top:25px;left:4vw;pointer-events:none;max-width:32%}.door-title>span{color:#00efdf}.door-title h1{font-weight:400;line-height:1.05;font-size:clamp(28px,4vw,60px);letter-spacing:-.05em;margin:16px 0}.door-title em{font-style:normal;color:#00efdf}.door-title p{color:#b8c6c9;font-size:14px}.door-instruction{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);text-align:center;max-width:90%;width:340px;padding:12px 18px;background:#091215ed;border:1px solid #00efdf30;border-radius:12px;pointer-events:none}.door-instruction p{margin:0 0 10px;font-size:14px}.door-instruction small{font-size:9px;letter-spacing:.13em;color:#b3c9ca}.opening{height:2px;background:#ffffff20;margin:10px 0}.opening i{height:100%;display:block;background:#00efdf;width:0}.scene-tag{position:absolute;top:16px;left:4vw;right:4vw;display:flex;justify-content:space-between;pointer-events:none;color:#d4e4e5}.scene-tag span{padding:8px 10px;background:#091215d9;border-radius:6px}.transition,.loading{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.transition{font-size:36px;color:#00efdf}.transition:empty{display:none}.loading{background:#091215;z-index:10;font-size:14px}.story{position:relative;flex-shrink:0;display:flex;align-items:center;gap:35px;padding:21px 4vw;background:#091215;border-top:1px solid #00efdf40;min-height:164px}.story-copy{flex:1;min-width:0;max-width:970px}.story-kicker{color:#00efdf;display:flex;gap:20px;justify-content:space-between;max-width:650px}.story h2{font-size:clamp(19px,2.3vw,30px);line-height:1.22;font-weight:400;letter-spacing:-.025em;margin:10px 0 8px}.story p{color:#b8c9cc;line-height:1.5;margin:0;font-size:14px;max-width:780px}.primary{flex-shrink:0;display:flex;align-items:center;gap:18px;background:#00efdf;color:#04201e;border:0;border-radius:30px;padding:14px 20px;font-size:13px;max-width:260px;text-align:left;min-height:48px}.stations{display:flex;justify-content:center;gap:10px;padding:10px 4vw;background:#0d191d;border-top:1px solid #ffffff0c;flex-shrink:0}.stations button{background:transparent;border:1px solid #ffffff20;border-radius:30px;color:#c8d7d9;padding:9px 15px;font-size:12px;min-height:40px}.stations button span{color:#00efdf;margin-right:8px;font-size:10px}.stations button.is-active{border-color:#00efdf;background:#00efdf13;color:#fff}.stations button.is-heard span:after{content:' ·';color:#fff}.controls{padding:12px 4vw max(12px,env(safe-area-inset-bottom));background:#091215;flex-shrink:0;border-top:1px solid #ffffff12}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.actions button{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #ffffff26;background:#ffffff05;color:#e3eeef;border-radius:30px;padding:9px 15px;font-size:12px;min-height:40px}.actions button:first-child{border-color:#00efdf60}.actions button[aria-pressed=true]{color:#00efdf;background:#00efdf10}.actions button:disabled{opacity:.4;cursor:wait}.control-foot{display:flex;justify-content:center;gap:20px;margin-top:10px;align-items:center}.control-foot>span{font-size:9px;color:#00efdf;flex-shrink:0}.control-foot p{font-size:11px;color:#a5b9bd;margin:0;line-height:1.4;max-width:650px}#umbral[data-phase=universe] .door-title,#umbral[data-phase=universe] .door-instruction,#umbral[data-phase=crossing] .door-title,#umbral[data-phase=crossing] .door-instruction{display:none}
@media(max-width:700px){#umbral{height:100svh;min-height:690px}.office-header{height:58px;padding:10px 18px}.brand{gap:10px}.brand img{width:85px}.brand span{font-size:8px;letter-spacing:.1em}.back{font-size:0;gap:0}.back svg{width:23px;height:23px}.scene{min-height:260px}.door-title{top:18px;left:22px;max-width:90%}.door-title h1{font-size:27px;margin:10px 0}.door-title>span{font-size:8px}.door-title p{display:none}.door-instruction{bottom:10px;padding:10px 12px;max-width:calc(100% - 40px);width:300px}.door-instruction p{font-size:12px}.story{padding:16px 20px;gap:13px;display:block;min-height:0}.story h2{font-size:20px;line-height:1.24;margin:8px 0}.story p{font-size:13px;line-height:1.4}.story-kicker{font-size:9px}.primary{margin-top:12px;min-height:42px;padding:10px 16px;max-width:100%;font-size:12px}.stations{padding:8px 12px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.stations button{border-radius:8px;padding:7px 3px;font-size:10px;min-height:44px;line-height:1.2}.stations button span{display:block;margin:0 0 4px}.controls{padding:9px 12px max(9px,env(safe-area-inset-bottom))}.actions{gap:6px}.actions button{padding:8px 10px;font-size:10px;min-height:38px}.actions svg{width:16px;height:16px}.control-foot{gap:5px;display:block;text-align:center;margin-top:7px}.control-foot>span{display:none}.control-foot p{font-size:10px;min-height:14px}.scene-tag{font-size:8px;top:10px}}
@media(max-height:540px) and (min-width:701px){#umbral{height:auto;min-height:100svh;overflow:visible}.scene{flex:none;height:66svh;min-height:250px}.office-header{height:48px}.story{min-height:125px;padding:12px 4vw}.story h2{font-size:22px}.story p{font-size:12px}.control-foot{margin-top:6px}.door-title{max-width:30%;top:10px}.door-title h1{font-size:25px}.door-title p{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* In-scene narrative: speaker and dialogue occupy separate projected regions. */
.speech{position:absolute;z-index:6;width:min(360px,32vw);padding:23px 25px;background:#08171bf2;border:1px solid #00efdf6b;border-radius:20px 20px 20px 4px;box-shadow:0 18px 55px #0005;opacity:0;pointer-events:none;transition:opacity .18s;transform:translateZ(0)}.speech.is-visible{opacity:1;pointer-events:auto}.speech h2{font-size:clamp(22px,2.1vw,30px);font-weight:400;line-height:1.24;letter-spacing:-.035em;margin:13px 0}.speech p{color:#b3cbcf;font-size:13px;line-height:1.5;margin:0}.speech .primary{margin-top:20px;padding:12px 17px;font-size:12px;min-height:44px;max-width:100%}.speech .story-kicker{font-size:9px;line-height:1.5;gap:12px;color:#00efdf}.speech-link{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.speech-link path{stroke:#00efdf99;stroke-width:1;fill:none}.speech-link circle{fill:#00efdf;stroke:none}.speaker-cue{position:absolute;top:60px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;background:#0a1c22f2;border:1px solid #00efdf80;border-radius:30px;color:#dffffb;padding:12px 18px;font-size:12px;z-index:9;max-width:90%}.speaker-cue svg{color:#00efdf}.office-notice{position:absolute;pointer-events:none;z-index:4;display:flex;gap:7px;align-items:center;white-space:nowrap;padding:8px 10px;background:#003c39ed;border:1px solid #00efdf;color:#eafffd;font-size:9px;letter-spacing:.06em;border-radius:7px;box-shadow:0 0 25px #00efdf30}.office-notice i{width:5px;height:5px;border-radius:50%;background:#00efdf;box-shadow:0 0 10px #00efdf}.client-panel,.colbuy-closing{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;padding:30px;background:radial-gradient(ellipse at 50% 30%,#113039f7,#061015fa 70%);overflow:auto}.client-card{width:min(470px,100%);padding:26px;background:#102329;border:1px solid #4b757c;border-radius:24px;box-shadow:0 25px 100px #0007;animation:message-arrive .7s both}.conversation-head{display:flex;align-items:center;gap:13px;padding-bottom:19px;border-bottom:1px solid #ffffff15}.client-avatar{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#00efdf;color:#07312d;border-radius:50%;font-size:16px}.conversation-head strong{display:block;font-size:15px;font-weight:400}.conversation-head small{display:block;font-size:8px;letter-spacing:.13em;color:#84b5bc;margin-top:6px}.message-icon{margin-left:auto;color:#00efdf}.client-thread{display:flex;flex-direction:column;padding:22px 0 15px;gap:15px}.chat{margin:0;padding:15px 17px;background:#233c44;border-radius:3px 16px 16px 16px;font-size:19px;line-height:1.4;max-width:95%}.chat small{display:block;text-align:right;font-size:10px;margin-top:9px;color:#9ebfc4}.chat.last{background:#402b32;border:1px solid #b76b7580;color:#fff3f2;font-size:25px;animation:message-arrive .5s both}.chat.reply{align-self:flex-end;background:#004e49;border-radius:16px 3px 16px 16px;color:#edfffd;font-size:19px;animation:message-arrive .5s both}.chat.reply svg{width:14px;height:14px;vertical-align:middle}.waiting{font-size:12px;color:#a2babf;text-align:center;margin:6px 0}.client-comment{font-size:14px;line-height:1.5;color:#c0d4d7;margin:0 0 19px}.client-card>.primary{max-width:100%;width:100%;justify-content:space-between}.rewind-screen{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#001d266b;pointer-events:none;gap:20px;backdrop-filter:blur(1px)}.rewind-screen>span,.rewind-screen>small{color:#bafff6;font-size:10px;letter-spacing:.2em;text-align:center}.rewind-screen strong{font-size:clamp(65px,12vw,150px);font-weight:400;letter-spacing:-.08em;color:#ddfffb}.rewind-progress{width:200px;height:2px;background:#ffffff30}.rewind-progress i{height:100%;background:#00efdf;display:block;width:100%}.handoff{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:14px;z-index:10;width:min(340px,90%);background:#05252af2;border:1px solid #00efdf;border-radius:22px;padding:26px;box-shadow:0 0 70px #00efdf23;pointer-events:none}.handoff>span{font-size:10px;letter-spacing:.15em;color:#00efdf}.handoff strong{display:flex;gap:30px;align-items:center;font-size:28px;font-weight:400}.handoff small{font-size:11px;color:#c0d3d7}.handoff>i{height:2px;width:100%;background:linear-gradient(90deg,transparent,#00efdf,transparent);animation:handoff-light .7s infinite alternate}.colbuy-closing{flex-direction:column;text-align:center;background:radial-gradient(ellipse at 50% 10%,#09434af5,#050e13 70%)}.colbuy-closing>span{font-size:10px;letter-spacing:.18em;color:#00efdf;margin:25px 0 8px}.colbuy-closing h2{font-size:clamp(28px,4.2vw,60px);font-weight:400;letter-spacing:-.05em;line-height:1.12;max-width:950px;margin:12px 0 22px}.colbuy-closing em{font-style:normal;color:#00efdf}.colbuy-closing p{max-width:670px;color:#b5d1d5;line-height:1.55;font-size:16px;margin:0 0 20px}.colbuy-closing p.closing-note{font-size:14px;color:#e7faf8;border-top:1px solid #00efdf40;padding-top:18px}.colbuy-closing .primary{max-width:100%}.colbuy-closing img{object-fit:contain}.door-title{max-width:30%;top:30px}.door-title h1{font-size:clamp(25px,3.1vw,45px)}.door-instruction{bottom:12px}.scene{min-height:410px}.controls .actions{gap:8px}#umbral[data-stage=lost] .scene>canvas{filter:saturate(.45)}#umbral[data-stage=rewind] .scene>canvas{filter:saturate(.3) contrast(1.18)}#umbral[data-stage=closing] .scene-tag{visibility:hidden}#umbral[data-stage=incoming] .stations,#umbral[data-stage=lost] .stations,#umbral[data-stage=rewind] .stations,#umbral[data-stage=routing] .stations,#umbral[data-stage=sent] .stations,#umbral[data-stage=closing] .stations{display:none}
@keyframes message-arrive{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}@keyframes handoff-light{from{opacity:.3}to{opacity:1}}
@media(max-width:700px){#umbral{min-height:640px}.scene{min-height:430px}.door-title{left:20px;top:12px;max-width:90%}.door-title h1{font-size:21px;margin:7px 0}.door-title>span{font-size:7px}.speech{width:44vw;max-width:210px;padding:14px 12px;border-radius:14px 14px 14px 3px}.speech h2{font-size:18px;line-height:1.25;margin:10px 0}.speech p{font-size:11px;line-height:1.4}.speech .story-kicker{display:block;font-size:8px;letter-spacing:.08em}.speech .story-kicker>span:last-child{display:block;font-size:8px;margin-top:5px;color:#8faeb5}.speech .primary{font-size:11px;line-height:1.3;gap:7px;margin-top:12px;padding:10px;min-height:42px;border-radius:15px}.speech .primary svg{width:15px;height:15px}.scene-tag{left:12px;right:12px}.scene-tag span{font-size:7px;padding:7px}.speaker-cue{font-size:10px;top:45px;padding:10px 12px}.client-panel{padding:22px 18px}.client-card{padding:20px;border-radius:22px}.conversation-head{padding-bottom:14px;gap:10px}.conversation-head strong{font-size:13px}.client-thread{padding-top:18px;gap:13px}.chat{font-size:17px;padding:13px}.chat.last{font-size:22px}.chat.reply{font-size:17px}.client-comment{font-size:13px}.waiting{font-size:11px}.office-notice{font-size:7px;padding:6px}.colbuy-closing{padding:22px}.colbuy-closing>span{font-size:8px;margin-top:20px}.colbuy-closing h2{font-size:28px;margin:10px 0 18px}.colbuy-closing p{font-size:13px;line-height:1.45;margin-bottom:16px}.colbuy-closing p.closing-note{font-size:12px}.colbuy-closing img{width:125px;height:40px}.controls .actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.controls .actions button{font-size:10px;min-height:34px;padding:7px}.controls .actions button[hidden]{display:none}.control-foot{margin-top:6px}.control-foot p{font-size:9px}.office-header{height:52px}.stations{padding:7px 10px}.stations button{min-height:38px}.stations button span{margin-bottom:2px}.rewind-screen>small{font-size:8px}}
@media(max-height:540px) and (min-width:701px){.scene{height:520px;min-height:520px}.speech h2{font-size:22px}.door-title{max-width:30%}.colbuy-closing h2{font-size:32px;max-width:700px}.colbuy-closing p{font-size:13px}.colbuy-closing>span{margin-top:12px}.client-card{max-width:500px;padding:18px}.client-thread{padding:14px 0;gap:10px}.chat{font-size:17px}.chat.last{font-size:21px}}
@media(prefers-reduced-motion:reduce){.speech{transition:none}*,*:before,*:after{animation:none!important}}
@media(max-width:700px){.speech p{display:none}.speech .story-kicker{font-size:9px}.speech h2{font-size:18px}.speech{padding:14px 12px}}
.speech{background:linear-gradient(90deg,#071b21db,#071b2170);border:0;border-left:1px solid #00efdf8c;border-radius:0;box-shadow:none}.office-notice{max-width:140px;font-size:8px}
@media(max-width:700px){.office-notice{font-size:6px;padding:5px 6px}.speech{background:linear-gradient(90deg,#071b21db,#071b2150)}}
/* Oversized chapters start at the top and remain scrollable on short screens. */
.client-panel{align-items:flex-start;background:radial-gradient(ellipse at 50% 30%,#113039,#061015 70%)}.client-card{margin-top:auto;margin-bottom:auto;flex-shrink:0}.colbuy-closing{justify-content:safe center;background:radial-gradient(ellipse at 50% 10%,#09434a,#050e13 70%)}.colbuy-closing>*{flex-shrink:0}.speech-link path{stroke-dasharray:2 6;opacity:.65}.speech-link circle{r:2}
#umbral:not([data-stage=explore]) .stations{display:none}
#umbral:not([data-stage=door]):not([data-stage=explore]):not([data-stage=assign]):not([data-stage=reply]) #u-center,#umbral:not([data-stage=door]):not([data-stage=explore]):not([data-stage=assign]):not([data-stage=reply]) #u-motion{display:none}
@media(max-width:700px){.client-card{padding:16px}.client-thread{padding:14px 0;gap:11px}.conversation-head{padding-bottom:12px}.chat{font-size:16px;line-height:1.35;padding:12px}.chat.last{font-size:20px}.chat.reply{font-size:16px}.client-comment{font-size:12px;margin-bottom:16px}.client-panel{padding:18px}.colbuy-closing h2{font-size:26px}.colbuy-closing{justify-content:safe center}.closing-note{font-size:12px}}
