/* Warm animated storybook: a character-led, mobile-first game entrance. */
:root{--gold:#c5672e;--amber:#c5672e;--bg:#fff5e6;--panel:#fffdf6;--text:#294942}
.is-lobby #header{background:transparent}.is-lobby .brand{visibility:hidden}.is-lobby #footer{background:transparent}.is-lobby #lobby{background:#fff3dc}.is-lobby .keyart{inset:0;background-image:url('./assets/game-hero-v2.png');background-position:center 47%;background-size:cover;filter:none}.is-lobby .keyart:after{background:linear-gradient(0deg,#fff3dc 0%,#fff3dcf0 12%,transparent 47%),linear-gradient(180deg,#fff6e8cc,transparent 28%)}
.game-cover-title{position:absolute;top:8%;left:7%;z-index:2}.cover-episode{font-size:14px;font-weight:700;letter-spacing:3px;color:#6c6850}.game-cover-title h1{font-size:88px;font-weight:950;letter-spacing:-4px;line-height:1.12;margin:12px 0;color:#24564e;text-shadow:0 3px 0 #fff6de}.game-cover-title h1 span{color:#d17938}.game-cover-title>p{font-size:22px;color:#4e6456;font-weight:600;margin:12px 0}.cover-callout{position:absolute;right:10%;top:43%;background:#fffdf4ee;border:2px solid #fff;box-shadow:0 8px 25px #75623e20;padding:14px 20px;border-radius:22px 22px 22px 4px;transform:rotate(3deg);z-index:2}.cover-callout span{display:block;color:#77705a;font-size:13px;margin-bottom:5px}.cover-callout b{font-size:20px;color:#405743}.is-lobby .lobby-copy{left:7%;bottom:85px;right:auto;width:370px;z-index:3}.cover-quest>span{font-size:13px;color:#9b652e;font-weight:800}.cover-quest>b{display:block;font-size:23px;margin:6px 0 12px;color:#294d43}.cover-quest>div{display:flex;gap:12px}.cover-quest i{font-style:normal;font-size:13px;color:#686e59}.lobby-start{margin-top:21px;display:grid;gap:10px}.button.primary,.lobby-start .primary,.role-select-screen .role-start{background:linear-gradient(#f5b04f,#e98931);color:#3f301c;border:2px solid #ffd68b;border-bottom:5px solid #b96b28;box-shadow:0 5px 0 #fff5d6,0 9px 22px #bd722528;border-radius:18px;font-weight:800}.button.primary:hover:not(:disabled){background:linear-gradient(#ffc16a,#f2a144);box-shadow:0 5px 0 #fff5d6,0 9px 22px #bd722540}.button.primary:active:not(:disabled){transform:translateY(2px)}.lobby-start .primary{height:64px;font-size:23px;letter-spacing:1px;clip-path:none}.cover-note{font-size:13px;text-align:center;color:#7e7864;margin:16px 0 0}.lobby-start .ghost{border:0;background:transparent;min-height:40px;box-shadow:none;font-size:16px;padding:8px}.lobby-footer{gap:24px}.lobby-footer button,.lobby-footer>span{font-size:13px;color:#6b7864}.lobby-footer button{display:flex;align-items:center;gap:8px}
.portrait,.role-hero .portrait.hero,.reply-cast .portrait.hero{background-image:url('./assets/game-cast-v2.png');filter:none}.role-select-screen{background:radial-gradient(ellipse at 10% 0%,#d3e8d8,transparent 50%),#fff4df}.role-select-screen:before{display:none}.role-select-header>div>span{font-size:26px;font-weight:850;color:#28564d}.role-select-header h2{font-size:16px;color:#63715f;margin-top:7px}.role-hero{background:#f1e9d6;border:3px solid #fffdf3;box-shadow:0 10px 0 #e9dbc2,0 18px 35px #89734b17}.role-hero .portrait.hero{mask-image:none}.role-hero-caption{background:linear-gradient(transparent,#fff7e9ee 40%,#fff7e9);padding-top:32px}.role-hero-caption h3{font-size:38px;color:#2c5549}.role-hero-caption>span{background:#2e7060;color:white;padding:5px 12px;border-radius:8px;font-size:14px}.role-hero-caption p{font-size:16px}.route-brief{border-left:4px solid #e5a14b;padding-left:14px}.route-brief h3{font-size:23px}.route-brief p{font-size:15px;line-height:1.6}.roster-card{border:2px solid #e3d9c6;background:#fffaf0;padding:7px;box-shadow:0 4px 0 #e5dac5;border-radius:14px}.roster-card.selected{border-color:#de953a;background:#fff0cf;box-shadow:0 4px 0 #bb7a2c;color:#5c421f;transform:translateY(-3px)}.roster-card span{font-size:16px;font-weight:750}.roster-card .portrait{border-radius:9px}.role-modes button{font-size:15px;min-height:48px}.role-modes button.selected{background:#deece0;color:#285745;border-color:#61917a}.save-replace-note{font-size:13px;color:#786e5d}
.story-shot,.story-shot.incident{background-image:linear-gradient(0deg,#264f45bb,transparent 65%),url('./assets/game-hero-v2.png');background-position:center 46%;filter:none}.story-shot.handover{background-image:linear-gradient(0deg,#264f45bb,transparent),url('./assets/game-cast-v2.png')}.risk-patient{background-image:linear-gradient(90deg,#fff4e8ee,#fff4e833),url('./assets/game-hero-v2.png')}.personal-task{border-top:6px solid #df9a48}.role-task-heading .portrait{width:90px;height:90px}.personal-task .personal-note{font-size:14px}.option{border:2px solid #d7dfce;box-shadow:0 4px 0 #e4e7da;margin-bottom:12px}.option-letter{background:#f6dfb1;border:0;color:#775023;font-weight:800}.option:hover{border-color:#c9934a;background:#fff6e4}.planning-head h2,.personal-task h2{font-size:26px}.plan-card.chosen{border:2px solid #6b967a}.reply-cast{background:#f8ecd5}.review-overview{font-size:16px;line-height:1.7;color:#526148;gap:16px}.review-overview b{color:#294e40}.review-clues>span{font-size:15px;color:#3d5944;background:#f2f5e9;border-color:#c5d6b8;padding:12px}.review-clues small{font-size:14px;color:#526b3f}.review-answer h4{font-size:17px;line-height:1.7;color:#2c4c3d}.review-answer p{font-size:16px;line-height:1.8}.review-answer>span{font-size:14px;color:#6f6c52}.review-answer .recommended{color:#446841}.badge b{font-size:16px;color:#375b43}.badge small{font-size:14px;color:#63735a}.badge{background:#f3f5ea;border-color:#d2dac2}.badge.earned{background:#fff0ce;border-color:#ddb163}.toggle:after{background:#fffdf3}
@media(min-width:701px){.is-lobby .keyart{left:35%;background-position:center 38%}.is-lobby .keyart:after{background:linear-gradient(90deg,#fff3dc,transparent 25%),linear-gradient(0deg,#fff3dc,transparent 25%)}.cover-callout{right:6%;top:25%}.game-cover-title{top:14%}}
@media(max-width:700px){.is-lobby .keyart{background-size:100% auto;background-repeat:no-repeat;background-position:center 48%;filter:none}.game-cover-title{top:58px;left:0;width:100%;text-align:center}.game-cover-title h1{font-size:58px;letter-spacing:-2px;margin:6px 0}.game-cover-title>p{font-size:17px;margin:7px 0}.cover-episode{font-size:12px;letter-spacing:3px}.cover-callout{top:44%;right:16px;padding:9px 13px;border-radius:16px 16px 16px 3px}.cover-callout b{font-size:15px}.cover-callout span{font-size:11px}.is-lobby .lobby-copy{left:24px;right:24px;bottom:62px;width:auto;text-align:center}.cover-quest>b{font-size:21px;margin:4px 0 10px}.cover-quest>div{justify-content:center;gap:13px}.cover-quest i{font-size:12px}.lobby-start{margin-top:17px;gap:2px}.lobby-start .primary{min-height:60px;height:60px;font-size:23px}.lobby-start .ghost{min-height:36px;font-size:15px}.cover-note{margin:8px 0 0;font-size:12px}.is-lobby #footer{height:48px;min-height:48px;padding:0 16px 6px}.lobby-footer button{font-size:13px;min-height:40px}.lobby-footer>span{display:block!important;font-size:12px}.role-select-screen{padding:20px 18px 28px}.role-hero{height:300px;min-height:300px}.role-hero .portrait.hero{height:100%;width:100%;background-size:300% 200%}.role-hero-caption{padding:30px 20px 15px}.role-hero-caption h3{font-size:30px;margin:7px 0}.role-hero-caption p{font-size:14px;max-width:240px}.role-roster{gap:10px}.roster-card .portrait{width:100%;height:auto;aspect-ratio:1}.route-brief p{display:none}.route-brief{margin:10px 0}.role-start{min-height:60px;font-size:20px}.review-overview{display:grid;grid-template-columns:1fr}.review-answer{grid-template-columns:1fr auto}.review-answer>span{grid-column:1/-1}.review-clues{grid-template-columns:1fr}.story-shot{height:220px}.personal-task{padding:22px 18px}.role-task-heading .portrait{width:76px;height:76px}.role-task-heading h2{font-size:23px}.option b{font-size:18px}}
@media(max-height:740px) and (max-width:700px){.game-cover-title{top:45px}.game-cover-title h1{font-size:46px}.game-cover-title>p{font-size:15px}.cover-episode{font-size:11px}.is-lobby .keyart{background-position:center 38%;background-size:100% auto}.cover-callout{top:36%}.cover-quest>div,.cover-quest>span{display:none}.is-lobby .lobby-copy{bottom:48px}.lobby-start{margin-top:10px}.cover-note{display:none}}
@media(max-width:700px){.role-hero{height:225px;min-height:225px}.role-hero .portrait.hero{width:225px;left:auto;right:0}.role-hero-caption{left:0;right:auto;bottom:0;width:58%;padding:40px 12px 18px;background:linear-gradient(90deg,#fff5e9 55%,#fff5e900)}.role-hero-caption h3{font-size:28px}.role-hero-caption>span{font-size:12px;padding:5px 8px}.roster-card{padding:5px}.roster-card .portrait{height:65px;width:65px;margin:auto}.roster-card span{font-size:14px}.role-select-layout{gap:14px}.role-select-header{margin-bottom:14px}.role-select-content{gap:12px}.role-modes button{font-size:13px}.save-replace-note{margin:0;font-size:12px}.role-roster{gap:9px}.role-start{width:100%;margin-top:4px}.route-brief h3{font-size:21px}.route-brief>span{font-size:12px}}
/* Story opening and patient-centred team decisions. */
.fall-animation{background:#e0eadd!important;display:grid;place-items:center}.fall-animation>.cinema-content{display:none}.fall-story{width:min(100%,600px);position:relative}.fall-story svg{display:block;width:100%;max-height:75dvh}.fall-caption{text-align:center;padding:20px 10px 0}.fall-caption span{font-size:14px;color:#647668}.fall-caption h2{font-size:27px;color:#36584b;margin:10px 0}.fall-travel{animation:patient-travel 3.7s linear forwards}.fall-person{animation:patient-fall 3.7s ease-in forwards}.fall-leg{transform-box:fill-box;transform-origin:50% 0%;animation:patient-step .7s ease-in-out 4 alternate}.fall-leg.right{animation-direction:alternate-reverse}.fall-arm{transform-origin:25px -170px;animation:patient-reach 3.7s forwards}.fall-impact{opacity:0;animation:impact-mark .8s 3.4s forwards}.fall-subtitles{position:absolute;bottom:4%;left:10px;right:10px;text-align:center;font-size:19px;font-weight:700;color:#3a5447}.after-fall{position:absolute;inset:0;opacity:0;animation:subtitle-in .3s 2.8s forwards}.before-fall{animation:subtitle-out .2s 2.7s forwards}.fall-animation .cinema-skip{bottom:24px;background:#f0ac4e;color:#4f371a}.gentle-motion .fall-leg{animation:none}.gentle-motion .fall-travel,.gentle-motion .fall-person{animation-timing-function:steps(3,end)}
@keyframes patient-travel{0%{transform:translate(145px,440px)}70%{transform:translate(325px,440px)}100%{transform:translate(335px,477px)}}@keyframes patient-fall{0%,68%{transform:rotate(0)}76%{transform:rotate(12deg)}100%{transform:rotate(80deg)}}@keyframes patient-step{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@keyframes patient-reach{0%,68%{transform:rotate(0)}80%,100%{transform:rotate(-45deg)}}@keyframes impact-mark{0%{opacity:0}40%{opacity:1}100%{opacity:.55}}@keyframes subtitle-in{to{opacity:1}}@keyframes subtitle-out{to{opacity:0}}
.care-tools{display:flex;gap:8px;margin:12px 0}.care-tools .button{flex:1;font-size:15px;min-height:44px;padding:8px}.phase-search #scene-bottom{bottom:104px;width:max-content;max-width:calc(100% - 32px);z-index:4;pointer-events:auto}.phase-search #scene-bottom .care-tools{background:#fff7e9ed;border-radius:15px;padding:5px}.partner-heading{display:flex;align-items:center;gap:18px}.partner-heading .portrait{width:100px;height:100px;border-radius:18px}.partner-heading h3{font-size:28px;margin:8px 0}.partner-heading span{font-size:16px;color:#47765d}.partner-clue,.partner-action{background:#f3f1df;border-radius:14px;padding:16px;margin:18px 0}.partner-clue span{font-size:14px;color:#9c672f}.partner-clue h3{font-size:21px;margin:8px 0}.partner-action p{margin-bottom:0}.modal-body>.button.full{margin-top:12px}.team-assessment>p{font-size:17px;line-height:1.8}.team-assessment>small{font-size:13px;color:#68765e;line-height:1.7;display:block;margin:14px 0}.assessment-factors{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assessment-factors>div{background:#eff2e6;padding:12px;border-radius:10px}.assessment-factors b,.assessment-factors span{display:block;font-size:15px;line-height:1.7}.assessment-factors span{color:#5d6e56}.team-assessment .risk-patient{padding:24px 18px}.team-assessment .risk-patient h2{font-size:27px}.team-summary p{border-bottom:1px solid #d5dec9;padding-bottom:10px}.plan-card:disabled{opacity:.55}.plan-card.chosen:disabled{opacity:1}
@media(max-width:700px){.phase-search #scene-bottom{display:block!important;bottom:115px;left:16px;right:16px;transform:none;width:auto}.phase-search #scene-bottom .explore-hint{display:none}.phase-search.clue-open #scene-bottom{display:none!important}.care-tools .button{font-size:14px}.planning .care-tools{margin:16px 0}.assessment-factors{grid-template-columns:1fr}.fall-story{padding-bottom:45px}.fall-caption h2{font-size:24px}.fall-subtitles{bottom:10%}.fall-animation .cinema-skip{bottom:20px}}
.team-assessment .risk-patient>div{width:100%}.team-assessment .risk-patient h2{white-space:nowrap;font-size:26px;margin:12px 0}.team-assessment .risk-patient b{display:inline-block;font-size:13px;line-height:1.5;padding:6px 10px}.team-assessment .risk-patient span{font-size:15px}.team-assessment .risk-patient{background-position:center 46%;background-image:linear-gradient(90deg,#fff4e8f2,#fff4e877),url('./assets/game-hero-v2.png')}
/* Cinematic 3D opening: articulated movement, restrained camera, grounded shadows. */
.fall-animation{background:#e4e8db!important}.fall-film{position:absolute;inset:0;overflow:hidden;background:#e4e8db}.fall-viewport{position:absolute;inset:0}.fall-viewport canvas{display:block;width:100%;height:100%}.fall-film-caption{position:absolute;top:10%;left:20px;right:20px;text-align:center;z-index:2;pointer-events:none}.fall-film-caption span{font-size:14px;letter-spacing:2px;color:#526b60}.fall-film-caption h2{font-size:32px;color:#2d5147;margin:14px 0;text-shadow:0 1px 8px #f7f2df}.fall-film-subtitle{position:absolute;bottom:19%;left:24px;right:24px;padding:13px 18px;text-align:center;color:#2f5146;font-size:20px;font-weight:650;line-height:1.6;background:#fff9e8e8;border:1px solid #fff9e8;border-radius:16px;z-index:2;box-shadow:0 5px 18px #52665110}.fall-film-note{position:absolute;bottom:12%;left:20px;right:20px;text-align:center;font-size:13px;color:#617567;z-index:2}.fall-animation .cinema-skip{bottom:24px;right:24px;font-size:15px;min-height:46px;padding:10px 20px;border-radius:14px}.fall-unavailable{position:absolute;inset:30% 20px auto;text-align:center;font-size:24px;line-height:2;color:#365448}@media(max-width:700px){.fall-film-caption{top:12%}.fall-film-caption h2{font-size:26px}.fall-film-subtitle{font-size:18px;bottom:19%;left:18px;right:18px}.fall-film-note{bottom:12%}}
.patient-history{background:#f5f0e2!important;display:block!important;overflow-y:auto;padding:30px 22px 110px}.intro-history{width:min(100%,650px);margin:0 auto;color:#365447}.intro-history header>span{font-size:13px;letter-spacing:2px;color:#a67438}.intro-history h2{font-size:30px;margin:10px 0}.intro-history header>p{font-size:17px;color:#6a7764}.history-identity{padding:22px;background:linear-gradient(100deg,#e1e9d5,#f3e9d1);border-radius:18px;margin:24px 0 16px;border:1px solid #fff9ed}.history-identity>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.history-identity b{font-size:29px}.history-identity span{font-size:16px}.history-identity strong{display:block;margin-top:14px;font-size:19px;color:#8c5d32}.history-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.history-facts article{background:#fffdf5;border:1px solid #e2e3d3;border-radius:14px;padding:15px}.history-facts article>span{font-size:14px;color:#758267}.history-facts h3{font-size:17px;line-height:1.6;margin:7px 0 0;color:#355846}.history-bridge{font-size:17px;line-height:1.8;padding:8px 0 0}.patient-history .cinema-skip{position:sticky;display:block;bottom:auto;right:auto;margin:25px auto 0;width:min(100%,650px);min-height:58px;background:linear-gradient(#f5b04f,#e98931);border:1px solid #ffd68b;border-bottom:4px solid #b96b28;color:#49351d;font-size:19px;border-radius:15px}.patient-history .cinema-skip:focus-visible{outline:3px solid #38755e;outline-offset:4px}@media(max-width:700px){.patient-history{padding:27px 20px 40px}.history-facts{grid-template-columns:1fr 1fr}.history-facts article{padding:12px}.history-facts h3{font-size:16px}.history-identity{padding:18px}.intro-history h2{font-size:28px}.history-bridge{font-size:16px}.chapter-title .cinema-content p{font-size:27px}}
.patient-history:before,.patient-history:after,.fall-animation:before,.fall-animation:after{display:none!important}
.risk-question{margin:20px 0;padding:18px;background:#fff1d4;border:1px solid #e4bd7b;border-radius:16px}.risk-question h3{font-size:21px;line-height:1.6;margin:0 0 15px}.risk-choices{display:grid;gap:10px}.risk-choices .button{font-size:18px;min-height:52px}.risk-answer-feedback{margin-top:16px;padding:14px;background:#edf4df;border-radius:12px;color:#355b40}.risk-answer-feedback.retry{background:#fff8e8;color:#7b542f}.risk-answer-feedback p{font-size:16px;line-height:1.8;margin-bottom:0}.last-partner,.team-summary{padding:14px 0;border-bottom:1px solid #d6ddc7}.last-partner summary,.team-summary summary{font-size:16px;font-weight:650;line-height:1.7}.team-assessment .assessment-factors{grid-template-columns:1fr 1fr}.team-assessment .assessment-factors>div{padding:10px}.team-assessment .assessment-factors span{font-size:14px}.team-assessment>p{font-size:15px}.team-assessment>small{font-size:12px}.team-assessment .risk-patient{min-height:125px;padding:16px}.button:disabled{cursor:not-allowed;opacity:.5}
.script-intro{margin:0 0 16px;padding:15px 18px;background:#fff9e9eb;border:1px solid #fffdf4;border-radius:18px;box-shadow:0 6px 20px #92744912;text-align:left}.script-intro>span{font-size:13px;color:#a16a30;font-weight:800;letter-spacing:2px}.script-intro p{font-size:17px;line-height:1.7;color:#3e594a;margin:7px 0 0}.is-lobby .cover-quest{display:none}.is-lobby .lobby-copy{width:410px}.team-assessment>p,.team-assessment>small{display:none}.risk-question{padding:14px;margin-top:14px}.risk-question h3{font-size:19px}.risk-choices .button{font-size:17px}
@media(max-width:700px){.is-lobby .lobby-copy{width:auto;left:20px;right:20px;bottom:57px}.script-intro{padding:12px 15px;margin-bottom:12px}.script-intro p{font-size:16px;line-height:1.65}.script-intro>span{font-size:12px}.is-lobby .lobby-start{margin-top:10px}.is-lobby .cover-note{display:none}.is-lobby .cover-callout{top:36%;right:16px}.game-cover-title{top:56px}}
@media(max-height:740px) and (max-width:700px){.script-intro{padding:10px 13px;margin-bottom:8px}.script-intro p{font-size:15px;line-height:1.6}.is-lobby .cover-callout{display:none}.is-lobby .lobby-copy{bottom:45px}.game-cover-title{top:45px}.game-cover-title>p{display:none}}
.medical-file .history-identity{margin:20px 0 16px;padding:18px 20px}.medical-file .history-identity>span{display:block;font-size:14px;color:#728268;margin-bottom:9px}.medical-file .history-identity b{font-size:25px}.medical-record{margin:0;background:#fffdf5;border:1px solid #dedfcb;border-radius:16px;padding:0 18px}.medical-record>div{padding:15px 0;border-bottom:1px solid #e4e7d9}.medical-record>div:last-child{border:0}.medical-record dt{font-size:14px;font-weight:700;color:#8d693e;margin-bottom:7px}.medical-record dd{margin:0;color:#355447;font-size:18px;line-height:1.7}.history-incident{margin:18px 0 0;padding:17px 19px;background:#f7e4c5;border-left:4px solid #c98d3f;border-radius:12px}.history-incident>b{font-size:22px;color:#8d562b}.history-incident p{font-size:18px;line-height:1.75;margin:9px 0 0;color:#684c31}@media(max-width:700px){.is-lobby .cover-callout{top:44%}.medical-record dd{font-size:17px}.medical-record>div{padding:12px 0}.history-incident p{font-size:17px}.patient-history .cinema-skip{margin-top:20px}}
.night-order{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:13px 15px;margin:12px 0;background:#eff3e4;border:1px solid #d4ddc5;border-radius:12px}.night-order>span{font-size:13px;color:#4a7958}.night-order>b{font-size:16px;color:#355644}.night-order>small{font-size:13px;color:#6e7c61;width:100%}
.team-celebration{position:relative;text-align:center;overflow:hidden;padding:12px 0}.team-trophy{display:grid;place-items:center;margin:5px auto 15px;width:88px;height:88px;background:#fff0c6;color:#d09a37;border:3px solid #e9c268;border-radius:50%;font-size:54px;box-shadow:0 0 0 9px #f3dfa94d}.team-celebration h3{font-size:24px;line-height:1.5}.team-celebration>p{font-size:17px;line-height:1.8}.success-cast{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.success-cast .portrait{width:62px;height:62px;border-radius:14px;margin:auto}.success-cast span{display:block;font-size:13px;margin-top:8px;color:#47634d}.team-celebration>.button{position:relative;z-index:1;margin-top:12px}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-20px;width:8px;height:15px;border-radius:2px;background:var(--color);animation:celebration-fall 2.8s var(--delay) ease-out both}@keyframes celebration-fall{0%{opacity:0;transform:translateY(-20px) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translateY(480px) rotate(calc(var(--spin)*540deg))}}.reduced-motion .confetti i{animation:none;display:none}@media(prefers-reduced-motion:reduce){.confetti i{animation:none;display:none}}
.risk-workshop{max-width:680px;width:100%}.risk-stage-label{font-size:14px;color:#8f642e;font-weight:750}.risk-workshop>h2{margin:12px 0;font-size:27px}.risk-workshop>p{font-size:17px;line-height:1.8}.risk-workshop>small{display:block;font-size:13px;line-height:1.7;color:#6f7b64;margin-top:20px}.factor-options{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0}.factor-choice{padding:16px 18px;text-align:left;border:2px solid #d5deca;border-radius:12px;background:#fffdf6;color:#385644;font-size:18px;min-height:54px}.factor-choice:before{content:'＋';display:inline-block;margin-right:12px;color:#789068}.factor-choice.selected{background:#e8f0d9;border-color:#649174}.factor-choice.selected:before{content:'✓';color:#2d744b}.factor-feedback{background:#fff1d9;padding:14px;border-radius:10px;color:#83542f}.identified-factors{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.identified-factors>span{padding:8px 10px;border-radius:8px;background:#e9f1dc;color:#436944;font-size:14px}.risk-workshop .button.full{margin-top:12px}
/* One visual grammar for every third-act interaction. */
.preparation-card{width:100%;max-width:760px;margin:0 auto}.preparation-card .story-shot{margin-top:0}.preparation-card .event-heading{margin-top:18px}.preparation-card .dialogue{margin:16px 0}.preparation-card .dialogue p{font-size:18px;line-height:1.85}.preparation-card>h2{font-size:26px}.preparation-card .factor-choice:before{display:none}.preparation-card .factor-choice{display:flex;align-items:center;gap:12px;min-height:64px;margin:0;padding:15px 16px}.preparation-card .factor-choice.selected,.preparation-card .option.selected{border-color:#648d6e;background:#edf3df}.preparation-card .factor-choice.selected .option-letter{background:#48795a;color:#fff}.preparation-card .factor-options{gap:12px}.preparation-card .unified-question{padding:0;margin:20px 0;background:none;border:0}.preparation-card .risk-choices{gap:12px}.preparation-card .risk-choices .option{margin:0}.preparation-card .personal-note,.preparation-card>small{font-size:13px;line-height:1.7;color:#65765d;display:block;margin-top:20px}.preparation-card .risk-help{font-size:15px;color:#69795f}.preparation-card .option-letter{flex-shrink:0}.preparation-card .story-shot{height:240px}@media(max-width:700px){.preparation-card{padding:22px 18px;border-radius:16px}.preparation-card .story-shot{height:220px}.preparation-card .option b{font-size:18px}.preparation-card>h2{font-size:25px}.preparation-card .dialogue p{font-size:18px}}
.fall-guidance{text-align:left;margin:22px 0;color:#304d40}.fall-guidance h3{font-size:22px;line-height:1.4}.fall-guidance article{padding:16px;margin:14px 0;border:1px solid #d4ddca;border-radius:16px;background:#f6f8ef}.fall-guidance h4{margin:0 0 12px;font-size:19px;color:#315c46}.fall-guidance ul,.fall-guidance ol{margin:0;padding-left:22px}.fall-guidance li{font-size:16px;line-height:1.8;margin:10px 0}.decision-dialog .fall-guidance p{font-size:16px;line-height:1.75}.fall-guidance .care-first,.fall-guidance .care-condition{padding:12px;border-radius:10px;background:#fff0d4;color:#705323}.fall-guidance .care-sources{font-size:12px}.decision-dialog:has(.fall-guidance){max-width:680px;max-height:90dvh;overflow-y:auto}.decision-dialog:has(.fall-guidance)>.button:last-child{position:sticky;bottom:0;box-shadow:0 -6px 16px #fff8}
.realistic-film{background:#292d25}.realistic-film .fall-viewport{inset:0;overflow:hidden}.fall-photo-backdrop{position:absolute;inset:-30px;background:url('./assets/fall-storyboard-v2.png') 50% 50%/cover;filter:blur(28px) brightness(.5)}.fall-photo-stage{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);height:100%;aspect-ratio:2/3;overflow:hidden;box-shadow:0 0 70px #1118}.fall-photo{position:absolute;inset:0;background-image:url('./assets/fall-storyboard-v2.png');background-size:300% 100%;background-repeat:no-repeat;opacity:0;transition:opacity .45s ease;will-change:opacity,transform}.fall-photo.active{opacity:1}.realistic-film .fall-viewport:after{content:'';position:absolute;inset:0;background:linear-gradient(#151e2480,transparent 23%,transparent 60%,#152019b0)}.realistic-film .fall-film-caption{top:5%}.realistic-film .fall-film-caption span{color:#f3ead6}.realistic-film .fall-film-caption h2{color:#fff9e9;text-shadow:0 2px 16px #0009;font-size:28px}.realistic-film .fall-film-subtitle{bottom:17%;background:#fffaedeb;color:#304d40;max-width:500px;margin:auto;font-size:19px}.realistic-film .fall-film-note{color:#fff4dc;bottom:11%}.reduced-film .fall-photo{transition:none}@media(max-width:700px){.fall-photo-stage{height:100%;min-width:100%}.realistic-film .fall-film-caption h2{font-size:25px}.realistic-film .fall-film-subtitle{font-size:18px;bottom:16%}.realistic-film .fall-film-note{bottom:10%}}
.realistic-film .fall-film-caption{top:2%}.realistic-film .fall-film-caption h2{margin:8px 0;font-size:24px}
.strategy-workshop>p{font-size:18px;line-height:1.7}.strategy-workshop>.button{margin:18px 0}.strategy-workshop>small{display:block;line-height:1.7;margin-top:18px}.strategy-summary article{padding:16px;margin:12px 0;background:#f4f7ec;border:1px solid #d7dfcc;border-radius:14px}.strategy-summary h3{font-size:19px;margin:0 0 10px;color:#315743}.strategy-summary p{font-size:17px;line-height:1.8;margin:0 0 8px}.strategy-workshop .option:disabled{opacity:1}.strategy-workshop .option.selected{border-color:#68955d;background:#edf5df}
.strategy-workshop .strategy-question{margin:18px 0 24px;padding:22px 20px;background:#fff0cc;border:2px solid #c68a28;border-left:7px solid #b87817;border-radius:16px;box-shadow:0 5px 16px #77571912;text-align:left}.strategy-question-label{display:inline-block;padding:5px 10px;background:#865518;color:#fff9eb;border-radius:6px;font-size:14px;font-weight:750;letter-spacing:1px}.strategy-workshop .strategy-question h3{font-size:28px;line-height:1.45;font-weight:850;color:#352c1d;margin:16px 0 14px;overflow-wrap:anywhere}.strategy-workshop .strategy-question-prompt{font-size:20px;font-weight:750;line-height:1.6;color:#503a18;margin:0 0 14px}.strategy-question-team{display:block;border-top:1px solid #d9bc80;padding-top:12px;font-size:15px;line-height:1.6;color:#685436}@media(max-width:700px){.strategy-workshop .strategy-question{padding:18px 16px;margin:16px 0 22px}.strategy-workshop .strategy-question h3{font-size:25px}.strategy-workshop .strategy-question-prompt{font-size:19px}.strategy-workshop .story-shot{height:130px;min-height:130px}}
.strategy-confirmation .strategy-confirm-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#e5f0d5;color:#426f35;font-size:34px;margin:0 auto 20px}.strategy-confirm-label{font-size:14px;font-weight:700;color:#88601f}.strategy-confirmation h3{font-size:24px;line-height:1.5;color:#314c3a;margin:8px 0 18px}.strategy-confirm-action{padding:16px;background:#fff1cf;border-left:4px solid #c79132;border-radius:10px}.strategy-confirm-action b{font-size:14px;color:#805b22}.strategy-confirmation p{font-size:18px;line-height:1.8}.strategy-confirm-action p{margin:8px 0 0}.strategy-confirmation small{display:block;font-size:14px;color:#61725a;margin:12px 0 22px}.strategy-confirmation>.button{min-height:54px;font-size:18px}
.final-ending-dialog{text-align:center;max-width:560px!important;max-height:90dvh;overflow-y:auto;border-top:6px solid #6a9759!important}.final-ending-dialog.ending-failed{border-top-color:#b55d49!important}.final-ending-dialog .ending-number{font-size:13px;letter-spacing:3px;color:#7a8469}.final-ending-dialog h2{font-size:29px!important;line-height:1.4;margin:14px 0 8px!important}.final-ending-dialog .ending-verdict{font-size:25px;font-weight:800;color:#3d663a;margin:0 0 22px}.final-ending-dialog.ending-failed .ending-verdict{color:#9e4337}.ending-captions{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:11px;text-align:left}.ending-captions li{display:flex;gap:14px;align-items:center;padding:14px 16px;background:#edf3df;border:1px solid #d4dfc2;border-radius:12px;font-size:20px;line-height:1.4}.ending-captions li>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#d1e3ba;color:#3a6332;font-weight:800}.ending-failed .ending-captions li{background:#faece3;border-color:#e7c9ba}.ending-failed .ending-captions li>span{background:#efd1be;color:#984434}.final-ending-dialog .ending-specific{font-size:15px;line-height:1.7;color:#746c59;text-align:left}.ending-fiction{display:block;font-size:12px;color:#7c816e;margin:12px 0}.final-ending-dialog>.button{font-size:17px;min-height:54px;margin-top:12px}@media(max-width:700px){.final-ending-dialog{padding:24px 20px!important}.final-ending-dialog h2{font-size:26px!important}.ending-captions li{font-size:19px;padding:12px 14px}}
.ending-confetti{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.ending-confetti i{position:absolute;top:-25px;left:var(--x);width:9px;height:16px;border-radius:2px;background:var(--color);opacity:0;animation:ending-confetti-fall 3.8s var(--delay) cubic-bezier(.18,.6,.45,1) both}.ending-confetti i:nth-child(3n){width:10px;height:10px;border-radius:50%}.ending-confetti i:nth-child(4n){width:6px;height:20px}@keyframes ending-confetti-fall{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}8%,75%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),110dvh,0) rotate(calc(var(--spin)*680deg))}}@media(prefers-reduced-motion:reduce){.ending-confetti{display:none}}
.decision-backdrop.somber-ending{background:radial-gradient(ellipse at 50% 30%,#414744de,#111614f5)!important;backdrop-filter:grayscale(1) blur(10px);-webkit-backdrop-filter:grayscale(1) blur(10px)}.somber-ending .final-ending-dialog.ending-failed{background:linear-gradient(150deg,#454b48,#292f2c)!important;border:1px solid #68706a!important;border-top:5px solid #89918a!important;box-shadow:0 25px 100px #0009;color:#e7e9e4}.somber-ending .final-ending-dialog h2{color:#f0f1ec!important}.somber-ending .final-ending-dialog .ending-number{color:#b1b9b2}.somber-ending .final-ending-dialog .ending-verdict{color:#d2d7d0}.somber-ending .ending-captions li{background:#353d37;border-color:#606b61;color:#e0e5dd}.somber-ending .ending-captions li>span{background:#596259;color:#e5e8df}.somber-ending .final-ending-dialog .ending-specific,.somber-ending .ending-fiction{color:#bbc3b9}.somber-ending .final-ending-dialog>.button{background:#657365!important;color:#fff!important;border-color:#899487!important;box-shadow:0 4px 0 #172019!important}.somber-result{filter:grayscale(.9);background:#e0e3dc!important}.somber-result .ending-captions li{background:#d1d7ce;border-color:#a4aea0}.somber-result .ending-captions li>span{background:#acb6a7;color:#35432f}
.profession-scene{position:relative;aspect-ratio:1.8;min-height:180px;overflow:hidden;border-radius:18px;background-image:url('./assets/role-scenes.png');background-size:300% 200%;background-position:var(--scene-x) var(--scene-y);isolation:isolate;margin-bottom:18px}.profession-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 10%,#172b1eaa);z-index:-1}.profession-scene>span{position:absolute;top:14px;left:14px;background:#fff6e8ed;padding:7px 10px;border-radius:7px;font-size:13px;color:#355540}.profession-scene>div{position:absolute;left:18px;right:18px;bottom:16px;color:white}.profession-scene b{display:block;font-size:25px;line-height:1.35}.profession-scene small{display:block;font-size:14px;line-height:1.6;margin-top:8px;color:#f8f8ed}.profession-scene~.story-shot{display:none!important}.profession-intro{font-size:18px;line-height:1.8}.profession-evidence-grid{display:grid;gap:12px;margin:20px 0}.profession-evidence{display:flex;align-items:center;gap:14px;text-align:left;padding:16px;border:1px solid #cbd8bf;background:#f7faef;border-radius:14px;color:#34543b;width:100%}.profession-evidence>span{font-size:22px;font-weight:800;color:#9b792d}.profession-evidence>div{flex:1}.profession-evidence b{font-size:19px}.profession-evidence small{display:block;font-size:14px;margin-top:7px;color:#68775e}.profession-investigation #stage-overlay{display:block!important;pointer-events:auto!important;overflow-y:auto!important}.profession-investigation .event-card{pointer-events:auto!important}.profession-investigation .button.full{margin:18px 0}.profession-investigation .strategy-question{padding:18px;background:#fff0cf;border-radius:14px;margin:16px 0}.profession-investigation .strategy-question h3{font-size:23px;line-height:1.6}.profession-investigation .event-card>small{display:block;line-height:1.7}@media(max-width:700px){.profession-scene{min-height:205px;aspect-ratio:1.6}.profession-scene b{font-size:23px}.profession-scene small{font-size:14px}.profession-investigation #stage-overlay{inset:0!important;padding:16px 14px 32px!important}.profession-investigation .event-card{margin:0!important}.profession-investigation .scene-top,.profession-investigation .scene-bottom{display:none}}
.role-lab{margin:22px 0;padding:18px;background:#f4f4e7;border:2px solid #c3cfac;border-radius:18px}.lab-badge{display:inline-block;padding:6px 10px;background:#45694d;color:white;font-size:13px;border-radius:7px}.role-lab h3{font-size:23px;margin:16px 0}.role-lab p{font-size:17px;line-height:1.75}.lab-workbench{display:grid;gap:10px;margin:20px 0}.lab-drop{border:2px dashed #8eab79;background:#e8efda;color:#36523c;border-radius:12px;min-height:83px;padding:12px;text-align:left;width:100%}.lab-drop>span{display:block;font-size:14px;margin-bottom:8px}.lab-drop b{font-size:18px}.lab-drop.filled{border-style:solid;background:#dce9cc}.lab-tokens{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.lab-token{touch-action:none;background:#fff1d3;border:2px solid #c8a464;border-radius:12px;padding:13px;color:#624c27;font-weight:750;font-size:17px}.lab-token small{display:block;font-size:11px;margin-top:7px;font-weight:400}.lab-token.held{outline:4px solid #729651;transform:translateY(-3px)}.lab-transfer{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#e0e5d7;padding:15px;border-radius:14px}.lab-bed,.lab-path{grid-column:1/-1;padding:14px;background:#f9f8ed;border-radius:8px;text-align:center;font-size:18px}.lab-transfer button{background:#fff4d9;border:2px solid #c8b58b;border-radius:12px;min-height:110px;padding:12px;font-size:25px}.lab-transfer b,.lab-transfer small{display:block;font-size:15px;margin-top:8px}.lab-transfer button.done{background:#dce9cc;border-color:#83a276}.lab-family{background:#e5e8dd;padding:18px;border-radius:15px;margin:18px 0}.lab-father{font-size:22px;padding:15px;text-align:center}.lab-call-status{font-size:17px;line-height:1.75;color:#35573f;margin:15px 0}.lab-meal label{display:block;padding:16px;background:#fffdf4;border-radius:12px;margin:12px 0}.lab-meal label>span{display:flex;justify-content:space-between;gap:12px}.lab-meal input{display:block;width:100%;height:44px;accent-color:#688c4c}.lab-meal output{display:block;font-size:23px;font-weight:800;color:#42603a}.role-lab>small{display:block;font-size:14px;line-height:1.7;margin-top:15px}.lab-status{padding:12px;background:#eee3c8;border-radius:9px}
.lab-workbench{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-drop{min-height:112px;padding:10px}.lab-drop b{font-size:15px;line-height:1.5;display:block}.lab-tokens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.lab-token{font-size:15px;line-height:1.5;padding:10px 7px;overflow-wrap:anywhere}.lab-token small{font-size:10px}.lab-token:only-child{grid-column:1/-1}.role-lab .button{margin:14px 0!important}
