 :root{--paper:#f7f1e8;--paper2:#fffaf2;--ink:#293c36;--muted:#73817a;--coral:#ce755b;--coral-dark:#a95544;--green:#647b64;--line:#e7dfd2;--lav:#eeebf6;--shadow:0 18px 48px #564a3812;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 var(--sans);min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:white;padding:10px 16px;z-index:20}.skip-link:focus{left:12px}.topbar{height:72px;padding:0 max(24px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eae2d7;background:#f9f4edcc}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:16px;font-weight:700;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:10px 10px 10px 3px;background:var(--coral);color:#fff;font:600 21px var(--serif)}.brand-light{font-weight:400;color:#75837b}.fiction-pill{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6e7970;background:#eeeadf;border:1px solid #e4ddcf;padding:7px 13px;border-radius:30px}.fiction-pill span{color:var(--coral);margin-right:5px}.quiet-button,.text-button{border:0;background:none;color:#728078;cursor:pointer}.quiet-button{font-size:12px;padding:9px}.quiet-button:hover,.text-button:hover{color:var(--coral-dark)}.app-shell{max-width:1280px;margin:0 auto;padding:0 38px}.start-screen{padding-top:42px;display:grid;grid-template-columns:1fr .95fr;column-gap:64px}.hero-copy{padding:41px 0 0 20px;align-self:start}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:700;color:#9a7464;margin:0 0 9px;text-transform:uppercase}.hero-copy h1,.ending-copy h1{font:500 clamp(49px,6vw,76px)/.99 var(--serif);letter-spacing:-.055em;margin:0;color:#2f443c}.hero-copy h1 em,.ending-copy h1 em{font-weight:500;color:var(--coral);font-style:italic}.hero-deck{max-width:475px;font-size:16px;line-height:1.75;color:#67756e;margin:26px 0}.start-facts{display:flex;gap:29px;margin-top:26px}.start-facts span{font-size:11px;color:#7c877e;display:flex;align-items:center;gap:7px}.start-facts b{font:500 20px var(--serif);color:#3e5649}.fiction-note{color:#96968b;font-size:10px;line-height:1.55;margin-top:26px;max-width:450px}.start-art{height:342px;position:relative;overflow:hidden;margin:0 8px 0 0;background:#f2e5d3;border-radius:48% 48% 8px 8px;isolation:isolate}.sun-disc{position:absolute;width:112px;height:112px;border-radius:100%;background:#edbb72;top:42px;left:31%;box-shadow:0 0 0 15px #edbb721c}.orbit{position:absolute;border:1px solid #d88c6d47;border-radius:100%;transform:rotate(-18deg)}.orbit-one{width:280px;height:116px;left:17%;top:38px}.orbit-two{width:350px;height:180px;left:6%;top:23px}.hill{position:absolute;left:-5%;width:115%;border-radius:50% 50% 0 0}.hill-back{height:160px;bottom:-64px;background:#acb79a;transform:rotate(-5deg)}.hill-front{height:122px;bottom:-69px;background:#788b70;transform:rotate(4deg)}.path-ribbon{position:absolute;bottom:-3px;left:49%;width:70px;height:194px;border-radius:50%;border:14px solid #edd0ad;border-left-color:transparent;border-top-color:transparent;transform:rotate(20deg);opacity:.92}.window-house{position:absolute;left:37%;bottom:63px;width:108px;height:97px;background:#fbf1dd;clip-path:polygon(0 27%,50% 0,100% 27%,100% 100%,0 100%);display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:40px 21px 10px;filter:drop-shadow(0 7px 2px #53664a44)}.window-house i{background:#8ea9a0;border-radius:3px 3px 0 0}.art-note{position:absolute;font:italic 15px var(--serif);color:#6a7462;z-index:2}.note-a{top:90px;left:8%}.note-b{right:7%;bottom:83px;color:#f7efda}.art-star{position:absolute;color:#f7f1db;font-size:23px}.star-a{top:43px;right:22%}.star-b{top:152px;left:16%;color:#d27960}.setup-panel{grid-column:1/-1;background:#fffaf4;border:1px solid #eae1d5;border-radius:7px 7px 28px 7px;padding:29px 34px 28px;margin:32px 0 56px;box-shadow:var(--shadow)}.setup-heading{display:flex;align-items:center;gap:13px}.step-number{font:italic 16px var(--serif);color:var(--coral)}.setup-heading .eyebrow{margin-bottom:1px}.setup-heading h2{font:500 22px var(--serif);margin:0}.option-grid{display:grid;gap:13px}.origin-grid{grid-template-columns:repeat(3,1fr);margin-top:17px}.option-card{position:relative;min-height:161px;text-align:left;background:transparent;border:1px solid var(--line);border-radius:4px 18px 4px 4px;padding:20px;cursor:pointer;transition:transform .18s,border .18s,background .18s}.option-card:hover{transform:translateY(-3px);border-color:#d2a08a}.option-card.selected{border:1.5px solid var(--coral);background:#fcf2e9;box-shadow:inset 0 0 0 1px #ce755b24}.option-index{position:absolute;top:14px;right:16px;color:#b3aa9c;font-size:10px;letter-spacing:.12em}.option-title{display:block;font:500 21px var(--serif);margin-bottom:9px}.option-detail{display:block;font-size:12px;color:#7c857d;line-height:1.55;max-width:275px}.option-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#9a8274;letter-spacing:.04em;margin-top:15px}.option-foot b{font-size:17px;color:var(--coral);font-weight:400}.setup-row{border-top:1px solid var(--line);margin-top:26px;padding-top:23px;display:grid;grid-template-columns:205px 1fr;gap:20px}.goal-heading{align-self:start}.goal-grid{grid-template-columns:repeat(4,1fr)}.goal-card{border:1px solid var(--line);background:transparent;min-height:72px;padding:12px;display:flex;align-items:center;text-align:left;gap:10px;cursor:pointer;border-radius:4px 13px 4px 4px}.goal-card.selected{border-color:#839881;background:#f0f3e9}.goal-glyph{font:22px var(--serif);color:var(--coral);width:23px;text-align:center}.goal-card b{display:block;font-size:11px}.goal-card small{display:block;font-size:9px;line-height:1.35;color:#899087;margin-top:2px}.radio-dot{width:11px;height:11px;border-radius:50%;border:1px solid #beb8a9;margin-left:auto;flex:0 0 auto}.goal-card.selected .radio-dot{border:4px solid var(--green)}.start-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:21px}.resume-prompt{margin:0 auto 0 0;color:#718075;font-size:12px}.primary-button,.secondary-button{border:0;border-radius:3px 15px 3px 3px;padding:13px 21px;cursor:pointer;font-size:12px;font-weight:600;transition:transform .16s,background .16s}.primary-button{background:var(--coral);color:white;box-shadow:0 7px 18px #ce755b25}.primary-button:hover{background:var(--coral-dark);transform:translateY(-2px)}.primary-button span{font-size:16px;margin-left:14px}.secondary-button{background:#eff0e8;color:#49604d;border:1px solid #dce1d5}.secondary-button:hover{background:#e2e8dc}.text-button{font-size:12px;padding:10px 12px}.game-screen{padding-top:21px}.game-topline{height:42px;display:flex;justify-content:space-between;align-items:center}.game-topline .text-button{padding-left:0}.year-label{display:flex;align-items:center;gap:8px;letter-spacing:.13em;font-size:10px;color:#8d8375;font-weight:700}.year-dot{width:7px;height:7px;border-radius:50%;background:var(--coral)}.ledger-button{border:1px solid #e2dacd;border-radius:20px;background:#fffaf4;padding:8px 14px;cursor:pointer;color:#68766c;font-size:11px}.ledger-button:hover{border-color:#c88770;color:var(--coral-dark)}.ledger-count{display:inline-grid;place-items:center;width:19px;height:19px;margin-left:5px;border-radius:100%;background:#f1e8dc;font-size:9px}.progress-track{position:relative;height:3px;background:#e8dfd3;margin:4px 0 25px;border-radius:3px}.progress-fill{position:absolute;left:0;top:0;height:3px;background:var(--coral);border-radius:3px;transition:width .6s cubic-bezier(.2,.8,.2,1)}.progress-marker{position:absolute;top:-3px;width:9px;height:9px;border-radius:50%;background:#f9f3e9;border:2px solid var(--coral);transform:translateX(-50%);transition:left .6s}.game-layout{display:grid;grid-template-columns:190px minmax(360px,1fr) 215px;gap:36px;align-items:start}.character-rail,.year-rail{position:sticky;top:18px}.portrait{position:relative;height:151px;width:151px;border-radius:54% 46% 47% 53%;overflow:hidden;margin:3px auto 12px;background:#f5d7c2;isolation:isolate}.portrait.indigo{background:#d9d4ef}.portrait.forest{background:#d9dfc7}.portrait-sun{position:absolute;width:52px;height:52px;border-radius:50%;background:#efbd77;top:22px;right:25px}.portrait-head{position:absolute;z-index:1;width:52px;height:61px;border-radius:48% 50% 46% 48%;background:#8a5948;top:34px;left:50px;transform:rotate(2deg)}.portrait-body{position:absolute;width:116px;height:95px;border-radius:50% 50% 0 0;background:#d58468;bottom:-26px;left:19px}.portrait.indigo .portrait-body{background:#7770a6}.portrait.forest .portrait-body{background:#718768}.portrait-spark{position:absolute;top:26px;left:29px;z-index:2;color:#fff6d8;font-size:18px}.character-name{text-align:center;font:500 22px var(--serif);margin:0;color:#354b41}.character-role{text-align:center;font-size:10px;color:#8b8c7d;margin:2px 0 19px}.north-star{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;display:flex;align-items:center;gap:9px}.star-icon{color:var(--coral);font-size:18px}.north-star .eyebrow{font-size:8px;margin:0 0 1px}.north-star p:last-child{font:500 13px var(--serif);margin:0}.vitals{padding:13px 0;border-bottom:1px solid var(--line)}.vital-row{display:flex;justify-content:space-between;align-items:center;margin:6px 0;color:#85897f;font-size:10px}.vital-row b{font-size:11px;color:#46594d}.vital-row b.warn{color:#b15a49}.energy-dots{font-size:8px!important;letter-spacing:1px;color:#718a69!important}.energy-dots i{font-style:normal;color:#ded8cb}.skill-card{padding-top:15px}.skill-card .eyebrow{font-size:8px;margin-bottom:9px}.skill-line{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#777f76;margin:7px 0}.skill-pips{display:flex;gap:3px}.skill-pips i{width:6px;height:6px;border-radius:50%;background:#e4dfd4}.skill-pips i.filled{background:#87977d}.chapter-column{min-width:0;padding:8px 0 60px}.scene-heading{text-align:center;max-width:570px;margin:0 auto 17px}.scene-heading .eyebrow{margin-bottom:6px}.scene-heading h2{font:500 clamp(31px,4vw,44px)/1.07 var(--serif);letter-spacing:-.035em;margin:0 0 12px}.scene-text{font-size:13px;color:#778078;line-height:1.75;max-width:540px;margin:0 auto}.scene-art{height:204px;max-width:490px;margin:0 auto 25px;border-radius:50% 50% 4px 4px/20% 20% 4px 4px;background:linear-gradient(180deg,#f1e4d4,#e7e0d0);overflow:hidden;display:grid;place-items:center}.scene-art svg{width:100%;height:100%;animation:sceneIn .48s ease-out both}.choice-heading{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:10px}.choice-heading .eyebrow{margin-bottom:1px;font-size:9px}.choice-heading h3{font:500 20px var(--serif);margin:0}.choice-hint{font-size:9px;color:#9a9c91}.choices{display:grid;gap:8px}.choice-card{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:1px solid #e9e1d6;border-radius:3px 13px 3px 3px;padding:13px 15px;background:#fffaf4;cursor:pointer;transition:transform .16s,border .16s,background .16s;animation:choiceIn .32s both}.choice-card:nth-child(2){animation-delay:.04s}.choice-card:nth-child(3){animation-delay:.08s}.choice-card:hover:not(:disabled){border-color:#d08b72;transform:translateX(3px);background:#fffdf8}.choice-card:disabled{cursor:default;opacity:.66}.choice-card.chosen{border-color:#82947b;background:#f0f3e9;opacity:1;box-shadow:inset 3px 0 #82947b}.choice-number{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#f3ece2;color:#a27660;font:italic 13px var(--serif);flex:0 0 auto}.choice-copy{flex:1}.choice-copy b{display:block;font-size:12px;font-weight:600}.choice-copy small{display:block;color:#81887f;font-size:10px;line-height:1.45;margin-top:3px}.choice-copy .locked-note{color:#aa6b54;font-size:9px}.choice-arrow{color:#b07864;font-size:15px}.choice-card.chosen .choice-arrow{visibility:hidden}.impact-preview{margin:12px 0 0;padding:13px 15px;background:#f1f3eb;border-left:2px solid #819477;animation:fadeIn .3s}.impact-preview[hidden]{display:none}.impact-label{font-size:8px;letter-spacing:.14em;color:#818b79;font-weight:700}.impact-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.impact{font-size:9px;border-radius:12px;padding:3px 8px;background:#e3eadf;color:#52674e}.impact.down{background:#f4e3da;color:#a65d49}.impact.neutral{background:#ebe9e2;color:#7d8078}.impact-preview p{font:italic 13px/1.5 var(--serif);color:#647067;margin:9px 0 0}.continue-wrap{text-align:right;margin-top:12px}.continue-wrap.turning{opacity:0;transform:translateY(4px);transition:all .2s}.year-rail{border-left:1px solid var(--line);padding-left:18px}.rail-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:5px 0 12px}.rail-heading .eyebrow{font-size:8px;margin:0}.rail-heading h3{font:500 18px var(--serif);margin:1px 0 0}.journey-flower{font-size:19px;color:#c68166}.journey-list{padding-top:10px}.journey-item{position:relative;display:flex;gap:9px;padding:0 0 12px}.journey-item:not(:last-child):after{content:'';position:absolute;left:7px;top:18px;bottom:0;width:1px;background:#ded8cc}.journey-dot{font-size:12px;color:#c47b61;z-index:1;background:var(--paper);height:16px}.journey-item small{display:block;color:#a09889;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.journey-item p{font-size:10px;line-height:1.4;color:#647168;margin:1px 0 0}.journey-empty{font-size:10px;color:#96978c;line-height:1.5}.soft-reminder{border-radius:3px 12px 3px 3px;background:#f0ece1;padding:12px;margin-top:15px;display:flex;gap:9px;align-items:flex-start}.soft-reminder span{color:#c47a5f;font-size:15px}.soft-reminder p{font:italic 12px/1.4 var(--serif);color:#68756b;margin:0}.ending-screen{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;padding:65px 40px 80px;min-height:calc(100vh - 74px)}.ending-art{height:460px;position:relative;overflow:hidden;border-radius:50% 50% 6px 6px;background:#f0e1d1}.ending-sun{position:absolute;left:30%;top:55px;width:150px;height:150px;background:#edbb72;border-radius:50%;box-shadow:0 0 0 22px #edbb721c}.ending-hill{position:absolute;bottom:-60px;left:-10%;width:120%;height:280px;background:#83927a;border-radius:50% 50% 0 0;transform:rotate(-5deg)}.ending-hill:after{content:'';position:absolute;top:82px;left:3%;width:110%;height:230px;background:#b5b89a;border-radius:50% 50% 0 0}.ending-spark{position:absolute;top:42px;right:17%;font-size:30px;color:#fff7dd}.ending-house{position:absolute;bottom:79px;left:42%;font-size:125px;color:#fff0d8;line-height:1;z-index:2}.ending-copy{max-width:550px}.ending-copy h1{font-size:clamp(47px,5.5vw,67px)}.ending-lead{color:#778078;line-height:1.7;font-size:13px;margin:21px 0}.ending-goal{display:flex;gap:13px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ending-goal>span{color:var(--coral);font-size:20px}.ending-goal small,.ending-stats small{font-size:8px;letter-spacing:.12em;font-weight:700;color:#998f81}.ending-goal p{font:italic 14px/1.55 var(--serif);color:#627268;margin:4px 0 0}.ending-outlook{font:500 17px/1.5 var(--serif);color:#43594c;margin:17px 0}.ending-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid var(--line);padding:16px 0}.ending-stats div{display:flex;flex-direction:column;gap:4px}.ending-stats b{font:500 18px var(--serif);color:#42584d}.ending-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.ending-copy .fiction-note{margin:17px 0}.modal-backdrop{position:fixed;inset:0;background:#25332fb0;z-index:10;display:grid;place-items:center;padding:20px;backdrop-filter:blur(4px)}.modal-backdrop[hidden]{display:none}.ledger-modal{width:min(720px,100%);max-height:min(88vh,900px);overflow:auto;background:#fffaf4;border-radius:5px 24px 5px 5px;padding:24px 28px;box-shadow:0 22px 70px #18201b55;animation:modalIn .22s ease-out}.modal-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:14px}.modal-head h2{font:500 30px var(--serif);margin:0}.close-button{border:0;border-radius:50%;background:#f0e9de;width:34px;height:34px;font-size:22px;cursor:pointer;color:#65746a}.ledger-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}.ledger-summary div{display:grid;gap:3px}.ledger-summary small{font-size:8px;letter-spacing:.13em;color:#998f81}.ledger-summary b{font:500 20px var(--serif)}.ledger-explain{font-size:10px;line-height:1.65;color:#79837a;background:#f1f0e9;padding:12px;border-radius:3px 10px 3px 3px}.ledger-section{margin:20px 0}.ledger-section h3{font:500 18px var(--serif);margin:0 0 8px}.ledger-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #eee8de;font-size:10px;color:#717c73}.ledger-row b{color:#4f6254;font-size:10px;white-space:nowrap}.ledger-row b.negative{color:#ae604c}.interest-row{font-size:9px;color:#989187}.ledger-table-wrap{overflow:auto}.ledger-table-wrap table{border-collapse:collapse;width:100%;font-size:9px;white-space:nowrap}.ledger-table-wrap th{text-align:right;color:#9a9081;font-size:8px;letter-spacing:.07em;font-weight:600;padding:8px 5px;border-bottom:1px solid var(--line)}.ledger-table-wrap td{text-align:right;padding:7px 5px;border-bottom:1px solid #eee8de;color:#68756c}.ledger-table-wrap th:first-child,.ledger-table-wrap td:first-child{text-align:left}.ledger-footnote{font-size:9px;color:#98958a;margin-top:14px}.modal-actions{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.danger-text{color:#a65d49}.toast{position:fixed;bottom:22px;left:50%;z-index:30;transform:translate(-50%,15px);opacity:0;background:#344b40;color:white;border-radius:4px 14px 4px 4px;padding:11px 17px;font-size:11px;transition:.2s;pointer-events:none;box-shadow:0 8px 24px #293b3230}.toast.visible{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}button:focus-visible,a:focus-visible{outline:3px solid #d58b70;outline-offset:3px}@keyframes sceneIn{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}@keyframes choiceIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes modalIn{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:1050px){.app-shell{padding:0 25px}.game-layout{grid-template-columns:160px minmax(320px,1fr);gap:28px}.year-rail{grid-column:2;position:static;border-left:0;border-top:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.rail-heading{grid-column:1/-1}.journey-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.journey-item:not(:last-child):after{display:none}.soft-reminder{margin-top:0}.character-rail{position:static}.portrait{width:130px;height:130px}.setup-row{grid-template-columns:1fr}.goal-heading{margin-bottom:0}.ending-screen{gap:34px;padding-left:20px;padding-right:20px}}
@media(max-width:720px){.topbar{height:61px;padding:0 16px}.fiction-pill{font-size:8px;padding:6px 9px;letter-spacing:.05em}.quiet-button{font-size:10px}.app-shell{padding:0 16px}.start-screen{padding-top:22px;grid-template-columns:1fr;column-gap:0}.hero-copy{padding:20px 4px 0}.hero-copy h1{font-size:58px}.hero-deck{font-size:14px;margin:19px 0}.start-facts{gap:18px}.start-facts span{font-size:9px}.start-art{height:245px;margin:26px 6px 0;border-radius:46% 46% 6px 6px}.setup-panel{padding:22px 16px;margin:21px 0 34px}.setup-heading h2{font-size:20px}.origin-grid{grid-template-columns:1fr}.option-card{min-height:119px;padding:16px}.option-title{font-size:19px}.option-detail{max-width:unset}.option-foot{margin-top:8px}.setup-row{margin-top:19px;padding-top:18px;gap:11px}.goal-grid{grid-template-columns:1fr 1fr}.goal-card{min-height:69px;padding:9px}.goal-card small{font-size:8px}.start-actions{justify-content:space-between;gap:8px;flex-wrap:wrap}.start-actions .primary-button{margin-left:auto}.game-screen{padding-top:9px}.game-topline{height:46px}.game-topline .text-button{font-size:10px}.year-label{font-size:8px;letter-spacing:.08em}.ledger-button{font-size:10px;padding:7px 9px}.progress-track{margin:4px 0 18px}.game-layout{grid-template-columns:1fr;gap:0}.character-rail{display:grid;grid-template-columns:73px 1fr;column-gap:13px;align-items:center;margin-bottom:17px;padding-bottom:12px;border-bottom:1px solid var(--line)}.portrait{grid-row:1/4;width:70px;height:70px;margin:0}.portrait-sun{width:27px;height:27px;top:9px;right:11px}.portrait-head{width:27px;height:32px;top:16px;left:24px}.portrait-body{width:57px;height:48px;bottom:-13px;left:7px}.portrait-spark{top:10px;left:13px;font-size:10px}.character-name{text-align:left;font-size:18px;align-self:end}.character-role{text-align:left;margin:0;font-size:9px;align-self:start}.north-star{grid-column:2;grid-row:1/3;border:0;padding:0;align-self:center;justify-self:end}.north-star .eyebrow{font-size:7px}.north-star p:last-child{font-size:11px}.star-icon{font-size:14px}.vitals{grid-column:1/-1;display:flex;gap:14px;padding:8px 0 0;border:0}.vital-row{flex:1;margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;font-size:8px}.vital-row b{font-size:10px}.skill-card{display:none}.chapter-column{padding:0 0 32px}.scene-heading{margin-bottom:13px}.scene-heading h2{font-size:35px}.scene-text{font-size:12px;line-height:1.65}.scene-art{height:170px;margin-bottom:18px}.choice-heading h3{font-size:18px}.choice-hint{font-size:8px}.choice-card{padding:11px 10px;gap:9px}.choice-copy b{font-size:11px}.choice-copy small{font-size:9px}.choice-number{width:24px;height:24px}.year-rail{grid-column:1;display:block;padding:14px 0 27px}.journey-list{display:grid;grid-template-columns:1fr 1fr}.soft-reminder{margin-top:8px}.ending-screen{grid-template-columns:1fr;gap:25px;padding:26px 5px 42px;min-height:unset}.ending-art{height:240px}.ending-sun{width:95px;height:95px;top:23px}.ending-house{font-size:83px;bottom:39px}.ending-hill{height:160px;bottom:-56px}.ending-copy h1{font-size:51px}.ending-stats{grid-template-columns:1fr 1fr;row-gap:14px}.ledger-modal{padding:19px 15px}.modal-head h2{font-size:26px}.modal-actions{align-items:flex-start}.modal-actions .secondary-button{font-size:10px;padding:10px 12px}.modal-actions .text-button{font-size:10px;padding:9px 4px}}
@media(max-width:360px){.hero-copy h1{font-size:51px}.start-facts{gap:9px}.start-facts span{gap:4px}.fiction-pill{max-width:145px;text-align:center;line-height:1.3}.goal-grid{grid-template-columns:1fr}.game-topline{gap:4px}.year-label{font-size:7px}.ending-copy h1{font-size:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Story-first phone layout: keep chapter context and the next action within reach. */
@media(max-width:720px){
  .game-screen{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .game-topline{position:sticky;top:0;z-index:6;height:49px;margin:0 -16px;padding:0 16px;background:#f7f1e8f2;border-bottom:1px solid #e7dfd2;backdrop-filter:blur(12px)}
  .game-topline .text-button{min-height:42px}
  .year-label{white-space:nowrap;font-size:8px}
  .ledger-button{min-height:38px;white-space:nowrap}
  .character-rail{grid-template-columns:60px minmax(0,1fr) minmax(105px,.85fr);column-gap:11px;row-gap:0;margin-bottom:18px;padding:12px 10px 10px;border:1px solid #e8dfd2;border-radius:7px 18px 7px 7px;background:#fffaf4}
  .portrait{width:58px;height:58px;grid-row:1/3;margin:0}
  .portrait-sun{width:23px;height:23px;top:7px;right:8px}
  .portrait-head{width:23px;height:28px;top:13px;left:20px}
  .portrait-body{width:49px;height:40px;bottom:-10px;left:5px}
  .portrait-spark{top:7px;left:10px;font-size:9px}
  .character-name{font-size:18px;align-self:end}
  .character-role{font-size:10px;margin:0;align-self:start}
  .north-star{grid-column:3;grid-row:1/3;justify-self:stretch;align-self:center;gap:7px;padding:0 0 0 9px;border-left:1px solid var(--line)}
  .north-star .eyebrow{font-size:7px;line-height:1.25}
  .north-star p:last-child{font-size:11px;line-height:1.25}
  .star-icon{font-size:14px}
  .vitals{grid-column:1/-1;gap:0;margin-top:9px;padding:9px 0 0;border-top:1px solid var(--line)}
  .vital-row{min-width:0;align-items:flex-start;padding:0 7px;border-right:1px solid var(--line);font-size:9px;line-height:1.3}
  .vital-row:first-child{padding-left:0}
  .vital-row:last-child{padding-right:0;border:0}
  .vital-row b{font-size:12px;line-height:1.35}
  .energy-dots{font-size:9px!important;letter-spacing:1px}
  .skill-card{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px;row-gap:2px;margin-top:8px;padding:8px 0 0;border-top:1px solid var(--line)}
  .skill-card .eyebrow{grid-column:1/-1;font-size:8px;margin:0 0 2px}
  .skill-line{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0;font-size:9px;line-height:1.2}
  .skill-pips{gap:4px}
  .skill-pips i{width:7px;height:7px}
  .chapter-column{padding-top:2px}
  .scene-heading{padding:0 4px;margin-bottom:12px}
  .scene-heading .eyebrow{font-size:9px;margin-bottom:5px}
  .scene-heading h2{font-size:clamp(34px,9vw,42px);line-height:1.02;margin-bottom:10px}
  .scene-text{max-width:40rem;font-size:13px;line-height:1.68;color:#596a60}
  .scene-art{height:clamp(170px,48vw,210px);margin:0 -4px 18px;border-radius:30px 5px 30px 5px;background:linear-gradient(155deg,#f0e0cc,#e4dfce)}
  .scene-art svg{animation:sceneIn .42s cubic-bezier(.2,.75,.2,1) both}
  .choice-heading{align-items:center;padding-bottom:10px;margin-bottom:9px}
  .choice-heading h3{font-size:21px}
  .choice-hint{max-width:110px;text-align:right;line-height:1.35}
  .choices{gap:9px}
  .choice-card{min-height:76px;gap:11px;padding:13px 12px;border-radius:8px 18px 8px 8px;box-shadow:0 4px 12px #564a3808}
  .choice-number{width:31px;height:31px;font-size:15px}
  .choice-copy b{font-size:13px;line-height:1.35}
  .choice-copy small{font-size:11px;line-height:1.45;margin-top:4px}
  .choice-copy .locked-note{font-size:10px}
  .choice-arrow{font-size:18px}
  .choice-card.chosen{box-shadow:inset 3px 0 #82947b,0 5px 14px #647b6418}
  .impact-preview{margin-top:11px;padding:13px 14px;border-radius:3px 14px 3px 3px}
  .impact-label{font-size:9px}
  .impact{font-size:10px;padding:4px 9px}
  .impact-preview p{font-size:15px;line-height:1.48}
  .continue-wrap{position:fixed;z-index:7;left:0;right:0;bottom:0;display:flex;justify-content:center;margin:0;padding:22px 16px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#f7f1e800 0%,#f7f1e8ef 25%,#f7f1e8 72%)}
  #continueButton{width:min(100%,440px);min-height:54px;border-radius:7px 18px 7px 7px;box-shadow:0 8px 24px #70473828;font-size:13px}
  .continue-wrap.turning{opacity:0;transform:translateY(8px);transition:all .18s}
  .year-rail{padding:15px 0 0}
  .journey-item p{font-size:11px}
  .ending-screen{padding-bottom:calc(34px + env(safe-area-inset-bottom,0px))}
  .ending-actions{position:sticky;bottom:0;z-index:4;padding:12px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#f7f1e800,#f7f1e8 25%)}
  .ending-actions .secondary-button,.ending-actions .primary-button{min-height:48px}
  #resumeButton:not([hidden]){position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:7;min-height:52px;border-radius:7px 18px 7px 7px;background:#526b58;color:#fff;box-shadow:0 10px 28px #263c3040;font-size:13px}
  .ledger-modal{max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:18px 15px calc(16px + env(safe-area-inset-bottom,0px));border-radius:8px 22px 8px 8px}
}

/* Authored raster hero treatment; the fallback keeps the panel useful before the asset lands. */
.scene-art{isolation:isolate;background:linear-gradient(135deg,#f3d9bf,#dfe5d5)}
@media(max-width:380px){
  .game-topline{padding:0;margin:0}
  .game-topline .text-button{font-size:9px}
  .year-label{font-size:7px;letter-spacing:.06em}
  .ledger-button{font-size:9px;padding:6px 7px}
  .character-rail{grid-template-columns:52px minmax(0,1fr) minmax(94px,.82fr);column-gap:8px;padding:10px 8px}
  .portrait{width:50px;height:50px}
  .portrait-head{left:17px}
  .portrait-body{width:43px;left:4px}
  .character-name{font-size:16px}
  .character-role{font-size:9px}
  .north-star .eyebrow{font-size:6px;letter-spacing:.1em}
  .north-star p:last-child{font-size:10px}
  .vital-row{padding:0 5px;font-size:8px}
  .vital-row b{font-size:11px}
  .choice-card{min-height:72px;padding:11px 10px}
  .choice-copy b{font-size:12px}
  .choice-copy small{font-size:10px}
  .impact-preview p{font-size:14px}
}
@media(max-width:340px){
  .fiction-pill{display:none}
  .topbar{justify-content:space-between}
  .scene-heading h2{font-size:33px}
  .choice-hint{max-width:88px;font-size:7px}
  .vital-row{font-size:7px}
  .vital-row b{font-size:10px}
}
@media(max-width:380px){.game-topline{margin:0;padding:0}}
@media(max-width:380px){.game-topline{margin:0;padding:0}}
@media(max-width:720px){
  .skill-card #skillsList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center}
  .skill-card #skillsList .skill-line{min-width:0;gap:4px}
  .skill-card #skillsList .skill-line>span:first-child{font-size:10px}
  .skill-card #skillsList .skill-pips{gap:3px}
  .skill-card #skillsList .skill-pips i{width:7px;height:7px}
}
@media(max-width:380px){
  .skill-card #skillsList{gap:5px}
  .skill-card #skillsList .skill-line>span:first-child{font-size:9px}
  .skill-card #skillsList .skill-pips{gap:2px}
  .skill-card #skillsList .skill-pips i{width:6px;height:6px}
}

/* Kubear Paths V3 · compact phone-game layout */
:root{--paper:#f4f6f5;--paper2:#fff;--ink:#172b2a;--muted:#687a77;--coral:#f27652;--coral-dark:#d75e3e;--green:#16705e;--line:#e3eae7;--serif:Georgia,'Times New Roman',serif;--sans:Inter,'Segoe UI',Arial,sans-serif}
html,body{min-width:320px;background:#f4f6f5;color:var(--ink);font-family:var(--sans)}
.topbar{height:58px;position:sticky;top:0;z-index:8;padding:0 max(14px,calc((100vw - 690px)/2));background:#f8faf9;border-bottom:1px solid #e4ebe8;backdrop-filter:blur(14px)}
.brand{gap:8px;font-size:15px;letter-spacing:-.03em}.brand-mark-img{width:34px;height:34px;object-fit:contain;display:block}.brand-name{display:flex;align-items:baseline;gap:6px}.brand-name small{font-size:11px;font-weight:650;color:#788784;letter-spacing:.01em}
.fiction-pill{font-size:9px;padding:5px 9px;letter-spacing:.04em}.quiet-button{min-width:44px;min-height:44px;padding:8px;border-radius:14px;font-size:10px}
.app-shell{max-width:690px;padding:14px 16px calc(94px + env(safe-area-inset-bottom,0px))}
.start-screen{display:block;padding:0}.home-card{padding:20px 20px 17px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fff 0%,#f7fbf9 74%,#edf5f1 100%);box-shadow:0 8px 30px #17352b0a}
.home-brandline{display:flex;align-items:center;gap:8px;color:#607671;font-size:9px;font-weight:750;letter-spacing:.13em;margin-bottom:22px}.home-brandline .fiction-pill{margin-left:auto}.home-glyph{width:23px;height:23px;display:grid;place-items:center;border-radius:9px 9px 9px 3px;background:#f27652;color:#fff;font-size:13px}
.home-card>.eyebrow,.setup-panel .eyebrow{color:#71837e}.home-card h1{font:750 clamp(34px,9vw,48px)/1.03 var(--sans);letter-spacing:-.06em;margin:0;color:#163e37}.home-card h1 em{font-style:normal;color:var(--green)}
.hero-deck{max-width:32ch;font-size:14px;line-height:1.48;color:#5d716b;margin:12px 0 14px}.home-facts{display:flex;flex-wrap:wrap;gap:7px}.home-facts span{padding:6px 9px;border-radius:999px;background:#eaf2ee;color:#44635a;font-size:10px;font-weight:650}
.start-art{display:none}.setup-panel{margin:12px 0 0;padding:17px 15px 16px;border:1px solid var(--line);border-radius:20px;background:var(--paper2);box-shadow:0 8px 30px #17352b08}
.setup-heading{gap:9px}.step-number{width:27px;height:27px;border-radius:9px;background:#fff1ea;display:grid;place-items:center;font:700 11px var(--sans);color:#d75e3e}.setup-heading .eyebrow{font-size:8px;margin:0 0 2px}.setup-heading h2{font:700 17px/1.2 var(--sans);letter-spacing:-.03em;color:#1b3732}
.origin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.option-card{min-height:96px;padding:10px 9px;border-radius:13px;text-align:left;border-color:#e1e9e5;background:#fbfcfb}.option-card.selected{border:1.5px solid var(--green);background:#edf6f1;box-shadow:inset 0 0 0 1px #16705e18}.option-index{top:8px;right:8px;font-size:8px}.option-title{font:700 12px/1.2 var(--sans);letter-spacing:-.02em;margin:0 10px 5px 0}.option-detail{font-size:9px;line-height:1.25;color:#687b75}.option-foot{font-size:8px;line-height:1.3;letter-spacing:0;margin-top:7px;color:#587168}.option-foot b{font-size:13px;color:var(--green)}
.setup-row{display:block;border:0;padding:15px 0 0;margin-top:15px}.goal-heading{margin-bottom:10px}.goal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.goal-card{min-height:52px;padding:8px 9px;gap:8px;border-radius:12px;border-color:#e2eae6}.goal-card.selected{border-color:var(--green);background:#eff7f2}.goal-glyph{font-size:17px;width:18px;color:var(--green)}.goal-card b{font-size:10px;line-height:1.2}.goal-card small{font-size:8px;line-height:1.2;margin-top:3px;color:#6d7e78}.radio-dot{width:10px;height:10px}.fiction-note{margin:12px 0 0;font-size:9px;line-height:1.45;color:#788681}.start-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.start-actions .primary-button{flex:1 1 145px;min-height:48px}.start-actions .text-button{min-height:46px;padding:10px 14px;border:1px solid #dce7e2;border-radius:14px;color:#27584d;font-weight:650}.resume-prompt{width:100%;font-size:10px;margin:0;color:#3f6b5d}
.game-screen{padding-top:5px}.game-topline{height:48px;position:sticky;top:58px;z-index:6;margin:0 -16px;padding:0 14px;background:#f4f6f5ed;backdrop-filter:blur(14px);border-bottom:1px solid #e3eae7}.game-topline .text-button{min-width:48px;min-height:44px;padding:8px 5px;font-size:10px}.year-label{font-size:9px;letter-spacing:.08em;color:#506a63}.year-dot{background:#f27652}.ledger-button{min-height:44px;padding:8px 11px;border-radius:14px;border-color:#dce7e2;background:#fff;color:#286052;font-weight:700;font-size:10px}.ledger-count{width:17px;height:17px;background:#edf5f0}
.progress-track{height:4px;margin:7px 1px 9px;background:#e3ebe7}.progress-fill{height:4px;background:#f27652;transition:width .35s ease}.progress-marker{width:9px;height:9px;border:2px solid #f4f6f5;background:#f27652;top:-2.5px}
.status-chips{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:7px;margin:0 0 7px}.status-chip{min-width:0;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #e1e9e5;border-radius:12px;background:#fff}.status-chip small{font-size:7px;letter-spacing:.12em;color:#768781;font-weight:750}.status-chip b{font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1c483d}.debt-chip b{color:#795444}.goal-chip b{font-size:10px}.mission-strip{display:flex;justify-content:center;gap:7px;align-items:center;min-height:28px;margin:0 0 12px;color:#778680;font-size:8px;letter-spacing:.08em;font-weight:700}.mission-strip b{color:#3d6255;font-size:9px;letter-spacing:.02em}.mission-strip i{font-style:normal;color:#b5c1bb}
.game-layout{display:block}.character-rail,.year-rail{display:none!important}.chapter-column{padding:15px 14px 22px;border:1px solid #e1e9e5;border-radius:20px;background:#fff;box-shadow:0 7px 24px #14392d08}.scene-heading{padding:0;margin:0 0 13px}.scene-heading .eyebrow{margin-bottom:7px;color:#6f817a;font-size:8px}.scene-heading h2{font:750 clamp(22px,6vw,29px)/1.12 var(--sans);letter-spacing:-.045em;margin:0 0 8px;color:#173d35}.scene-text{font-size:13px;line-height:1.45;color:#536b63;margin:0;max-width:42ch}.scene-art{display:none!important}.choice-heading{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:16px 0 9px;padding:0}.choice-heading h3{font:700 15px/1.2 var(--sans);margin:0;color:#233f38}.choice-heading .eyebrow{font-size:8px;margin-bottom:4px}.choice-hint{max-width:140px;text-align:right;font-size:8px;line-height:1.25;color:#74847e}
.choices{display:grid;gap:7px}.choice-card{min-height:68px;display:grid;grid-template-columns:28px minmax(0,1fr) 14px;gap:9px;align-items:start;padding:10px 10px;border:1px solid #e0e9e4;border-radius:14px;background:#fcfdfc;box-shadow:none;text-align:left;transition:transform .16s,border-color .16s,background .16s}.choice-card:active{transform:scale(.99)}.choice-card:hover{transform:translateY(-1px);border-color:#b6d0c4}.choice-card:focus-visible,.goal-card:focus-visible,.option-card:focus-visible,.bottom-nav button:focus-visible,.primary-button:focus-visible,.ledger-button:focus-visible{outline:3px solid #267966;outline-offset:2px}.choice-number{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:#eff5f1;color:#356558;font-size:12px;font-weight:750}.choice-copy{min-width:0;display:block}.choice-copy b{display:block;font:700 12px/1.3 var(--sans);letter-spacing:-.01em;color:#243f38}.choice-copy small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:3px;color:#687a74;font-size:9px;line-height:1.35}.choice-copy .locked-note{color:#915d45}.choice-impact-label{font-size:7px;margin-top:6px;color:#668078}.choice-impact-chips{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px;max-height:34px;overflow:hidden}.impact{padding:2px 5px;font-size:8px;line-height:1.2;border-radius:999px}.choice-arrow{font-size:15px;color:#5d7c70}
.impact-preview{margin:10px 0 0;padding:12px 13px;border:1px solid #cde1d7;border-radius:14px;background:#f0f8f3;animation:outcomeIn .24s ease both}.impact-label{font-size:8px;color:#3d6c5b}.impact-preview .impact-list{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.impact-preview p{font-size:13px;line-height:1.4;margin:7px 0 0;color:#35574b}.choice-card.chosen{border-color:#4b8972;background:#eef7f1;box-shadow:inset 3px 0 #3f8a6f}
.continue-wrap{position:fixed;left:0;right:0;bottom:0;z-index:12;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));display:flex;justify-content:center;background:#f4f6f5ed;backdrop-filter:blur(14px);border-top:1px solid #e0e8e4}.continue-wrap[hidden]{display:none!important}#continueButton{width:min(100%,520px);min-height:52px;border-radius:15px;background:#176f5c;box-shadow:0 7px 20px #176f5c24;font-size:13px}.continue-wrap.turning{opacity:0;transform:translateY(6px);transition:all .18s}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:7;width:min(100%,690px);min-height:64px;padding:5px 12px calc(5px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(3,1fr);gap:5px;border-top:1px solid #dfe8e3;background:#ffffffed;backdrop-filter:blur(16px)}.bottom-nav[hidden]{display:none!important}.bottom-nav button{min-width:44px;min-height:50px;border:0;border-radius:14px;background:transparent;color:#6b7c75;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.bottom-nav button span{font-size:16px;line-height:1}.bottom-nav button b{font-size:9px;font-weight:700}.bottom-nav button:active{background:#edf5f0;color:#176f5c}
.modal-backdrop{z-index:20;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));align-items:end;background:#142b2790;backdrop-filter:blur(4px)}.ledger-modal{width:min(100%,610px);max-height:min(86dvh,740px);padding:17px 15px calc(14px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 10px 10px;background:#fff}.modal-head{align-items:center;margin-bottom:12px}.modal-head h2{font:750 21px/1.15 var(--sans);letter-spacing:-.04em;color:#173d35}.modal-head .eyebrow{font-size:8px}.close-button{width:46px;height:46px;min-width:46px;min-height:46px;border-radius:14px;background:#eff5f1;color:#275e50;font-size:25px}.ledger-content{max-height:58dvh;overflow:auto}.modal-actions{position:sticky;bottom:calc(-14px - env(safe-area-inset-bottom,0px));padding:8px 0 calc(5px + env(safe-area-inset-bottom,0px));background:#fff}.modal-actions button{min-height:44px}.journey-modal{padding-bottom:calc(17px + env(safe-area-inset-bottom,0px))}.journey-sheet-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:0 0 16px}.journey-sheet-summary>div{min-width:0;padding:9px;border:1px solid #e1e9e5;border-radius:12px;background:#f8fbf9}.journey-sheet-summary small{display:block;color:#70817a;font-size:7px;letter-spacing:.09em}.journey-sheet-summary b{display:block;margin-top:4px;color:#255c4e;font-size:10px;line-height:1.25}.journey-sheet-content{max-height:56dvh;overflow:auto}.journey-sheet-content h3{margin:16px 0 7px;font-size:12px}.sheet-skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sheet-skills .skill-line{padding:8px;border:1px solid #e4ece7;border-radius:10px;background:#fbfdfc}.sheet-skills .skill-line>span:first-child{font-size:9px}.journey-list{display:grid;gap:5px}.journey-item{padding:8px 9px;border-radius:11px;background:#f8faf9}.journey-item p{font-size:10px;line-height:1.3}.journey-item small{font-size:7px}.journey-item.earned{border-color:#c9e0d3;background:#eff8f2}.journey-item.just-earned{animation:badgePop .45s cubic-bezier(.2,.8,.2,1) both}
.game-screen.is-entering .chapter-column{animation:cardIn .26s ease both}.skill-line.skill-up .skill-pips i.filled{animation:skillPulse .55s ease both}.ending-screen{max-width:610px;margin:10px auto 0;padding:24px 18px 36px;border:1px solid var(--line);border-radius:23px;background:#fff;box-shadow:0 10px 35px #14392d0b}.ending-art{height:130px;border-radius:16px;background:radial-gradient(circle at 50% 28%,#ffd391 0 18px,transparent 19px),linear-gradient(160deg,#e6f1eb,#e8eee5 55%,#d7e6dc);overflow:hidden}.ending-copy h1{font:750 30px/1.1 var(--sans);letter-spacing:-.05em}.ending-copy h1 em{font-style:normal;color:#176f5c}.ending-celebration{display:flex;align-items:center;gap:8px;margin:12px 0;padding:10px 12px;border-radius:12px;background:#fff3df;color:#805424;font-size:10px;font-weight:750;animation:badgePop .48s ease both}.ending-celebration b{color:#b06038}.ending-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.ending-actions button{min-height:48px}.toast{z-index:30;background:#173d35;border-radius:14px;padding:11px 15px;font-size:11px}
@keyframes cardIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes outcomeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes badgePop{0%{opacity:0;transform:scale(.94)}70%{transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}@keyframes skillPulse{0%,100%{transform:scale(1)}45%{transform:scale(1.45);background:#f27652}}
@media(max-width:380px){.app-shell{padding-left:12px;padding-right:12px}.topbar{padding:0 11px}.home-card{padding:17px 15px}.home-brandline{margin-bottom:18px}.setup-panel{padding:14px 11px}.option-card{min-height:91px;padding:9px 7px}.option-title{font-size:11px}.option-foot{font-size:7px}.chapter-column{padding:13px 10px 18px}.status-chips{gap:5px}.status-chip{padding:7px 7px}.status-chip b{font-size:11px}.choice-card{grid-template-columns:25px minmax(0,1fr) 12px;gap:7px;padding:9px 8px}.choice-copy b{font-size:11px}.choice-hint{max-width:107px;font-size:7px}.mission-strip{font-size:7px}}
@media(prefers-reduced-motion:reduce){.game-screen.is-entering .chapter-column,.impact-preview,.journey-item.just-earned,.ending-celebration,.skill-line.skill-up .skill-pips i.filled{animation:none!important}.progress-fill{transition:none}}

/* Keep choices calm, with exact consequences available before choosing. */
@media(max-width:720px){
  .choice-option{display:grid;gap:4px}
  .choice-effects{margin:0 7px 2px 38px;color:#356558;font-size:9px}
  .choice-effects summary{display:inline-flex;min-height:30px;align-items:center;cursor:pointer;font-weight:750;letter-spacing:.01em}
  .choice-effects summary::marker{color:#f0a51a}
  .choice-effects[open]{padding:4px 7px 7px;border:1px solid #cde1d7;border-radius:10px;background:#f0f8f3}
  .choice-effects .choice-impact-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
  .choice-card{min-height:64px}
}
@media(max-width:720px){
  .eyebrow{color:#805c4d}
  .fiction-note,.choice-hint,.character-role,.vital-row,.skill-line,.journey-item small,.journey-empty{color:#626e65}
  .choice-copy small{color:#66736a}
  .vital-row b{color:#304b3d}
  .north-star .eyebrow{color:#805c4d}
}
.choice-impact-label{display:block;margin-top:7px;font-size:8px;line-height:1.2;letter-spacing:.11em;font-weight:700;color:#6c786d}
.choice-impact-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.choice-impact-chips .impact{font-size:8px;line-height:1.3;padding:3px 7px}
.choice-impact-chips .impact.neutral{color:#59665d;background:#e9e8df}
@media(max-width:720px){
  .choice-impact-label{margin-top:6px;font-size:8px}
  .choice-impact-chips{gap:4px;margin-top:4px}
  .choice-impact-chips .impact{font-size:9px;padding:3px 7px}
}
@media(max-width:380px){
  .choice-impact-label{font-size:7px}
  .choice-impact-chips .impact{font-size:8px;padding:2px 6px}
}

/* Story-first phone layout: keep chapter context and the next action within reach. */
@media(max-width:720px){
  .game-screen{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .game-topline{position:sticky;top:0;z-index:6;height:49px;margin:0 -16px;padding:0 16px;background:#f7f1e8f2;border-bottom:1px solid #e7dfd2;backdrop-filter:blur(12px)}
  .game-topline .text-button{min-height:42px}
  .year-label{white-space:nowrap;font-size:8px}
  .ledger-button{min-height:38px;white-space:nowrap}
  .character-rail{grid-template-columns:60px minmax(0,1fr) minmax(105px,.85fr);column-gap:11px;row-gap:0;margin-bottom:18px;padding:12px 10px 10px;border:1px solid #e8dfd2;border-radius:7px 18px 7px 7px;background:#fffaf4}
  .portrait{width:58px;height:58px;grid-row:1/3;margin:0}
  .portrait-sun{width:23px;height:23px;top:7px;right:8px}
  .portrait-head{width:23px;height:28px;top:13px;left:20px}
  .portrait-body{width:49px;height:40px;bottom:-10px;left:5px}
  .portrait-spark{top:7px;left:10px;font-size:9px}
  .character-name{font-size:18px;align-self:end}
  .character-role{font-size:10px;margin:0;align-self:start}
  .north-star{grid-column:3;grid-row:1/3;justify-self:stretch;align-self:center;gap:7px;padding:0 0 0 9px;border-left:1px solid var(--line)}
  .north-star .eyebrow{font-size:7px;line-height:1.25}
  .north-star p:last-child{font-size:11px;line-height:1.25}
  .star-icon{font-size:14px}
  .vitals{grid-column:1/-1;gap:0;margin-top:9px;padding:9px 0 0;border-top:1px solid var(--line)}
  .vital-row{min-width:0;align-items:flex-start;padding:0 7px;border-right:1px solid var(--line);font-size:9px;line-height:1.3}
  .vital-row:first-child{padding-left:0}
  .vital-row:last-child{padding-right:0;border:0}
  .vital-row b{font-size:12px;line-height:1.35}
  .energy-dots{font-size:9px!important;letter-spacing:1px}
  .skill-card{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px;row-gap:2px;margin-top:8px;padding:8px 0 0;border-top:1px solid var(--line)}
  .skill-card .eyebrow{grid-column:1/-1;font-size:8px;margin:0 0 2px}
  .skill-line{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0;font-size:9px;line-height:1.2}
  .skill-pips{gap:4px}
  .skill-pips i{width:7px;height:7px}
  .chapter-column{padding-top:2px}
  .scene-heading{padding:0 4px;margin-bottom:12px}
  .scene-heading .eyebrow{font-size:9px;margin-bottom:5px}
  .scene-heading h2{font-size:clamp(34px,9vw,42px);line-height:1.02;margin-bottom:10px}
  .scene-text{max-width:40rem;font-size:13px;line-height:1.68;color:#596a60}
  .scene-art{height:clamp(170px,48vw,210px);margin:0 -4px 18px;border-radius:30px 5px 30px 5px;background:linear-gradient(155deg,#f0e0cc,#e4dfce)}
  .scene-art svg{animation:sceneIn .42s cubic-bezier(.2,.75,.2,1) both}
  .choice-heading{align-items:center;padding-bottom:10px;margin-bottom:9px}
  .choice-heading h3{font-size:21px}
  .choice-hint{max-width:110px;text-align:right;line-height:1.35}
  .choices{gap:9px}
  .choice-card{min-height:76px;gap:11px;padding:13px 12px;border-radius:8px 18px 8px 8px;box-shadow:0 4px 12px #564a3808}
  .choice-number{width:31px;height:31px;font-size:15px}
  .choice-copy b{font-size:13px;line-height:1.35}
  .choice-copy small{font-size:11px;line-height:1.45;margin-top:4px}
  .choice-copy .locked-note{font-size:10px}
  .choice-arrow{font-size:18px}
  .choice-card.chosen{box-shadow:inset 3px 0 #82947b,0 5px 14px #647b6418}
  .impact-preview{margin-top:11px;padding:13px 14px;border-radius:3px 14px 3px 3px}
  .impact-label{font-size:9px}
  .impact{font-size:10px;padding:4px 9px}
  .impact-preview p{font-size:15px;line-height:1.48}
  .continue-wrap{position:fixed;z-index:7;left:0;right:0;bottom:0;display:flex;justify-content:center;margin:0;padding:22px 16px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#f7f1e800 0%,#f7f1e8ef 25%,#f7f1e8 72%)}
  #continueButton{width:min(100%,440px);min-height:54px;border-radius:7px 18px 7px 7px;box-shadow:0 8px 24px #70473828;font-size:13px}
  .continue-wrap.turning{opacity:0;transform:translateY(8px);transition:all .18s}
  .year-rail{padding:15px 0 0}
  .journey-item p{font-size:11px}
  .ending-screen{padding-bottom:calc(34px + env(safe-area-inset-bottom,0px))}
  .ending-actions{position:sticky;bottom:0;z-index:4;padding:12px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#f7f1e800,#f7f1e8 25%)}
  .ending-actions .secondary-button,.ending-actions .primary-button{min-height:48px}
  #resumeButton:not([hidden]){position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:7;min-height:52px;border-radius:7px 18px 7px 7px;background:#526b58;color:#fff;box-shadow:0 10px 28px #263c3040;font-size:13px}
  .ledger-modal{max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:18px 15px calc(16px + env(safe-area-inset-bottom,0px));border-radius:8px 22px 8px 8px}
}
@media(max-width:380px){
  .game-topline{padding:0 11px;margin:0 -16px}
  .game-topline .text-button{font-size:9px}
  .year-label{font-size:7px;letter-spacing:.06em}
  .ledger-button{font-size:9px;padding:6px 7px}
  .character-rail{grid-template-columns:52px minmax(0,1fr) minmax(94px,.82fr);column-gap:8px;padding:10px 8px}
  .portrait{width:50px;height:50px}
  .portrait-head{left:17px}
  .portrait-body{width:43px;left:4px}
  .character-name{font-size:16px}
  .character-role{font-size:9px}
  .north-star .eyebrow{font-size:6px;letter-spacing:.1em}
  .north-star p:last-child{font-size:10px}
  .vital-row{padding:0 5px;font-size:8px}
  .vital-row b{font-size:11px}
  .choice-card{min-height:72px;padding:11px 10px}
  .choice-copy b{font-size:12px}
  .choice-copy small{font-size:10px}
  .impact-preview p{font-size:14px}
}
@media(max-width:340px){
  .fiction-pill{display:none}
  .topbar{justify-content:space-between}
  .scene-heading h2{font-size:33px}
  .choice-hint{max-width:88px;font-size:7px}
  .vital-row{font-size:7px}
  .vital-row b{font-size:10px}
}

@media(max-width:380px){.game-topline{margin:0;padding:0}}

.choice-effects summary{min-height:44px;font-size:11px;gap:9px}
.choice-effects summary::after{content:"+";font-size:16px}
.choice-effects[open] summary::after{content:"−"}
.choice-effects summary:focus-visible{outline:3px solid var(--kb-indigo);outline-offset:2px;border-radius:7px}
.buffer-run-link{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 0;padding:13px 16px;background:#eef2fa;border:1px solid #d9ddec;border-radius:5px 16px 5px 5px;text-decoration:none;color:#243b51}.buffer-run-link>span{display:grid;gap:2px}.buffer-run-link small{font:700 8px var(--kb-mono,var(--sans));letter-spacing:.11em;color:#7b729d}.buffer-run-link b{font:600 18px var(--kb-display,var(--serif))}.buffer-run-link span span{font-size:11px;color:#667886}.buffer-run-link>strong{font-size:20px;color:#8b7bb8}.buffer-run-link:hover{background:#e7eaf6;border-color:#bcb4d9}.month-guide{margin:-3px 0 12px;color:#667b83;font-size:11px}.progress-track[role=progressbar]{position:relative}
@media(min-width:900px){.buffer-run-link{max-width:460px}}
@media(max-width:560px){.buffer-run-link{padding:11px 13px}.month-guide{font-size:10px}}
