:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f5f1e7;background:#171a28;--gold:#efc563;--muted:#a4a9bf;--line:#383c52;--paper:#f4eddd}*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(#ffffff08 1px,transparent 1px);background-size:12px 12px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #a8b9ff;outline-offset:4px}header{max-width:1280px;margin:auto;padding:24px 32px;display:flex;align-items:center;gap:44px;border-bottom:1px solid var(--line)}.brand{font-weight:900;font-size:27px;letter-spacing:-1.4px;color:#f5f1e7;text-decoration:none;display:flex;align-items:center;gap:3px}.brand span{color:var(--gold)}.brand i{display:inline-grid;place-items:center;width:32px;height:32px;font-style:normal;font-size:24px;color:#232637;background:var(--gold);margin-right:8px;transform:rotate(-9deg);border-radius:7px}nav{display:flex;gap:8px}nav button,footer button{border:0;background:none;color:var(--muted);padding:12px 14px;font-size:13px;font-weight:650;min-height:44px;border-radius:6px}nav button:hover,footer button:hover{color:#fff;background:#ffffff08}nav button.active{color:var(--gold);background:#efc56312}.player-label{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:12px;color:#b8bfd3;min-width:0}.player-label strong{overflow-wrap:anywhere}.player-dot{width:9px;height:9px;background:var(--gold);border-radius:50%;flex:none}main{max-width:1180px;margin:32px auto;padding:0 32px;min-height:65vh}.eyebrow{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold);font-weight:800}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(32px,4.5vw,52px);font-weight:850;line-height:1.08;letter-spacing:-1.6px;margin:14px 0 18px;overflow-wrap:anywhere}h2{font-size:28px;letter-spacing:-.6px}h3{font-size:14px;font-weight:750}.intro{font-size:16px;line-height:1.7;color:#aeb4c9;max-width:620px}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}.profile{background:#232638;border:1px solid #3a3e52;border-radius:14px;padding:22px;min-width:0;box-shadow:0 6px 0 #10131e;position:relative}.profile:before{content:"";position:absolute;top:-1px;left:25px;width:44px;height:4px;background:var(--gold);border-radius:0 0 3px 3px}.character-portrait{width:100%;aspect-ratio:1;background:#e7dfcf;border:3px solid #45485e;border-radius:10px;overflow:hidden;position:relative;margin-bottom:18px}.portrait-art{display:block;width:100%;height:100%;background-image:url('/assets/characters-atlas.png');background-size:300% 200%;background-position:var(--art-x) var(--art-y)}.portrait-label{position:absolute;bottom:8px;left:8px;font-size:9px;letter-spacing:1px;font-weight:800;background:#25283deb;color:var(--gold);padding:6px 9px;border-radius:4px}.profile h2{font-size:23px;margin-bottom:8px;overflow-wrap:anywhere}.muted{color:var(--muted);font-size:13px;line-height:1.7}.profile-meta{font-size:11px;line-height:1.8;color:#aab2c9}.talent-tag{font-size:11px;display:inline-flex;gap:7px;align-items:center;color:var(--gold);background:#efc56312;border:1px solid #efc56333;padding:6px 9px;border-radius:5px;line-height:1.4}.profile-age{display:flex;justify-content:space-between;margin:18px 0 6px;align-items:baseline}.profile-age strong{font-size:25px}.profile-age small{font-size:10px;color:#99a4c0}.stats{margin-top:24px}.stat{margin-bottom:17px}.stat-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:7px;gap:8px}.stat-label>span{display:flex;align-items:center;gap:7px}.stat-label svg,.effect-chip svg{width:15px;height:15px;color:var(--stat-color)}.stat-label strong{color:var(--stat-color)}.bar{height:7px;background:#141827;border-radius:4px;overflow:hidden}.bar span{display:block;background:var(--stat-color);height:100%;border-radius:4px;transition:width .4s}.money{padding-top:17px;border-top:1px solid var(--line);font-size:24px;font-weight:800;color:var(--gold)}.money small{display:block;font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:5px}.money small svg{width:13px;height:13px;vertical-align:middle;margin-right:5px}.primary{background:var(--gold);color:#252839;border:1px solid #ffdfa0;padding:15px 23px;border-radius:8px;font-weight:800;min-height:48px;box-shadow:0 4px 0 #947235;transition:transform .12s,box-shadow .12s}.primary:hover{background:#ffdc8b;transform:translateY(-1px)}.primary:active{transform:translateY(3px);box-shadow:0 1px 0 #947235}.secondary{background:#2c3045;color:#d9def3;border:1px solid #484d66;padding:14px 18px;border-radius:8px;min-height:48px;font-size:13px;font-weight:650}.secondary:hover{background:#373c55}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.setup-panel{padding:8px 10px}.setup-panel h1{max-width:520px}.setup-note{font-size:11px;color:#8e95ad;line-height:1.7}.talents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 24px}.talent{text-align:left;border:2px solid #3b4057;border-radius:10px;background:#24283b;padding:18px 15px;line-height:1.5;min-height:175px;position:relative;color:#e4e6f1;transition:transform .18s,border-color .18s}.talent:hover{transform:translateY(-4px);border-color:#8893bd}.talent strong{display:block;margin:10px 0 7px;font-size:13px}.talent small{color:var(--muted);font-size:12px}.talent.selected{border-color:var(--gold);background:#302e36;box-shadow:0 3px 0 #a47f31}.talent.selected:after{content:"✓";position:absolute;top:10px;right:10px;color:var(--gold);font-size:12px}.talent-icon{display:block;color:var(--gold);width:36px;height:40px}.talent-icon .badge-art{width:100%;height:100%}label{display:block;font-size:13px;margin:18px 0}input[type=text]{display:block;width:100%;max-width:370px;margin-top:8px;background:#1c2031;color:#f2f0eb;border:1px solid #555d7a;border-radius:7px;padding:12px;min-height:46px}.check{display:flex;gap:10px;align-items:center;min-height:44px;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--gold);flex:none}.chapter{display:flex;justify-content:space-between;align-items:center;padding:0 0 16px;font-size:12px;color:#b2bad2;gap:12px}.chapter strong{color:var(--gold);font-size:14px}.stage-track{display:flex;gap:8px;align-items:center}.stage-track span{font-size:10px;color:#8e95ad;padding-bottom:6px;border-bottom:3px solid #3b4057}.stage-track .done{color:var(--gold);border-color:var(--gold)}.chapter-progress{font-size:10px;color:#929ebd;white-space:nowrap}.scene{aspect-ratio:5/2;background-color:#38415b;background-image:url('/assets/endings-atlas.png');background-size:500% 200%;background-position:var(--scene-x) var(--scene-y);border-radius:12px 12px 0 0;position:relative;overflow:hidden;border:1px solid #45495d;border-bottom:0}.scene-caption{position:absolute;bottom:14px;left:16px;background:#202437ed;color:#f6eedc;padding:8px 12px;border-radius:4px;font-size:10px;font-weight:750;letter-spacing:1px;text-transform:uppercase;max-width:calc(100% - 32px)}.story-panel{background:var(--paper);color:#303044;padding:28px;border:1px solid #e0d4bd;border-top:0;border-radius:0 0 12px 12px;box-shadow:0 6px 0 #10131e;position:relative}.story-panel .eyebrow{color:#986b2c}.story-panel h1{font-size:32px;letter-spacing:-.8px;margin:12px 0 16px}.story{font-size:17px;line-height:1.85;max-width:650px;margin-bottom:12px;color:#47465a}.choices{display:grid;gap:12px;margin:24px 0 4px}.choice{background:#fffaf0;border:1px solid #c7bfad;border-bottom:3px solid #beb6a4;padding:15px 16px;border-radius:8px;text-align:left;display:flex;gap:13px;align-items:center;color:#303044;min-height:66px;transition:transform .12s,background .12s}.choice:hover:not(:disabled){border-color:#9b773d;background:#ffe7b4;transform:translateX(4px)}.choice:active:not(:disabled){transform:translateY(2px)}.choice:disabled{color:#696a78;background:#e8e1d4;border-color:#d2c9b9}.choice .number{font-size:12px;font-weight:800;color:#625541;background:#ebe2cf;border-radius:5px;display:grid;place-items:center;flex:0 0 28px;height:28px}.choice strong{display:block;font-size:14px;font-weight:650;line-height:1.55}.choice small{display:block;margin-top:4px;color:#72654c;font-size:11px;line-height:1.5}.feedback{padding:18px 20px;background:#252a40;border:1px solid #424a66;border-left:3px solid var(--gold);border-radius:8px;font-size:13px;line-height:1.8;margin:0 0 18px;animation:arrive .25s ease}.feedback-title{display:block;font-size:10px;font-weight:800;color:var(--gold);letter-spacing:1px;margin-bottom:5px}.effect-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.effect-chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#d9ddeb;background:#171c2d;padding:4px 7px;border-radius:4px;animation:stat-pop .35s ease}.effect-chip.negative{color:#f4aba6}.history{margin-top:28px;border-top:1px solid var(--line);padding-top:12px}.history summary{cursor:pointer;color:#b3bad2;font-size:12px;min-height:44px;display:flex;align-items:center;gap:8px}.history summary:before{content:"↳";font-size:18px;color:var(--gold)}.history ol{padding-left:22px}.history li{font-size:12px;line-height:1.8;margin:16px 0;color:#b4bad0}.history li strong{color:#e5e6ed}.end-scene{aspect-ratio:2/1;border-radius:12px;border:2px solid #efc56377;box-shadow:0 6px 0 #10131e}.ending-copy{margin-top:26px}.ending-copy .end-title{font-size:40px}.ending-copy .intro{font-size:15px}.quote{font-size:17px;font-style:italic;line-height:1.8;border-left:3px solid var(--gold);padding-left:18px;color:#eedcaf}.key-decisions{display:grid;gap:14px;margin:20px 0 28px}.key-decision{display:flex;gap:13px;font-size:12px;line-height:1.8;color:#aeb7d1}.key-decision .age{flex:0 0 42px;color:var(--gold);font-size:11px;font-weight:700}.earned-row{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.earned-badge{width:66px;text-align:center}.earned-badge .badge-art{width:48px;height:53px;filter:drop-shadow(0 3px 0 #10131e)}.earned-badge small{display:block;font-size:9px;line-height:1.5;color:#aab2ca}.badge-art{color:#fce3ac}.badge-frame{fill:#ab782c;stroke:#f8d37c;stroke-width:2}.badge-inner{fill:#373149;stroke:#d5a654;stroke-width:1}.ribbon{fill:#c77364;stroke:#7b4744;stroke-width:1.5}.achievement-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:30px}.achievement{background:#24283b;border:1px solid #454a64;border-radius:10px;text-align:center;padding:24px 18px}.achievement .badge-art{width:76px;height:84px;filter:drop-shadow(0 4px 0 #141827)}.achievement strong{display:block;margin:14px 0 7px;font-size:13px}.achievement small{line-height:1.6;color:#a5adc7;font-size:11px}.achievement.locked .badge-art{filter:grayscale(1);opacity:.45}.achievement.locked{background:#1f2334;border-color:#343950;color:#adb3c9}.unlock-tag{display:block;margin-top:12px;color:var(--gold);font-size:9px;text-transform:uppercase;letter-spacing:1px;font-weight:700}.collection-tabs{display:flex;gap:10px;margin:24px 0}.collection-tabs button{border:1px solid #444b65;border-radius:7px;background:#252a40;color:#b5bdd6;font-size:13px;padding:12px 18px;min-height:44px}.collection-tabs button.active{color:#222637;background:var(--gold);border-color:var(--gold);font-weight:700}.ending-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ending-item{border:1px solid #414863;background:#252a40;border-radius:10px;overflow:hidden}.ending-item .scene{border:0;border-radius:0;aspect-ratio:2/1}.ending-item.locked .scene{filter:grayscale(1);opacity:.35}.ending-item h3{margin:18px 18px 6px}.ending-item p{margin:0 18px 20px;font-size:12px;line-height:1.7;color:#a7b0ca}.unlock-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:24px;z-index:10;max-width:min(350px,calc(100% - 32px));display:flex;align-items:center;gap:13px;background:#2b2e45;border:1px solid var(--gold);border-radius:10px;padding:15px 18px;box-shadow:0 8px 32px #0006;animation:arrive .35s ease;pointer-events:none}.unlock-toast .badge-art{width:45px;height:50px;flex:none}.unlock-toast small{font-size:9px;letter-spacing:1px;color:var(--gold);display:block}.unlock-toast strong{font-size:13px;display:block;margin:5px 0}.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.confetti{position:absolute;width:7px;height:12px;top:30%;left:50%;background:var(--fx-color);animation:confetti .9s ease-out forwards}.reaction-flash{animation:reaction .4s ease}.event-arrival{animation:arrive .28s ease}.save-state{font-size:10px;color:#8993af;margin-top:20px}.save-state:before{content:"●";color:#88b2a3;margin-right:6px}.celebration-label{background:var(--gold);color:#26293b;padding:8px 12px;font-size:10px;font-weight:850;letter-spacing:1px;border-radius:5px;position:absolute;bottom:16px;left:16px}footer{max-width:1280px;margin:40px auto 0;padding:20px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#8791ad;font-size:11px;gap:18px;padding-bottom:max(20px,env(safe-area-inset-bottom))}#notice{max-width:1116px;margin:20px auto;padding:0 32px;color:#f0c27a;font-size:13px;line-height:1.7}#notice:empty{display:none}dialog{background:#252a40;color:#f1efe7;border:1px solid #67718f;border-radius:12px;padding:28px;max-width:min(500px,calc(100% - 32px));max-height:85dvh;overflow:auto;box-shadow:0 20px 70px #0008}dialog::backdrop{background:#101323aa}.close{float:right;background:#363c56;color:#e2e7f4;border:1px solid #4c5572;border-radius:6px;font-size:24px;padding:0 10px;min-width:44px;min-height:44px}dialog h2{padding-right:50px;font-size:24px}dialog p{line-height:1.8;font-size:13px}.collection-header{max-width:640px}.collection-header h1{font-size:38px}body.reduce *,body.reduce *:before,body.reduce *:after{animation:none!important;transition:none!important}@keyframes arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes stat-pop{0%{transform:scale(.9);opacity:.2}70%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}@keyframes reaction{50%{border-color:var(--gold);box-shadow:0 0 0 3px #efc56333}}@keyframes confetti{from{opacity:1;transform:translate(0,0) rotate(0)}to{opacity:0;transform:translate(var(--fx-x),var(--fx-y)) rotate(var(--fx-rotation))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:900px){header{gap:18px;padding:20px 24px}.layout{grid-template-columns:220px minmax(0,1fr);gap:20px}main{padding:0 24px}.profile{padding:18px}.talents{gap:8px}.talent{padding:16px 10px}.story-panel{padding:22px}.stage-track{gap:6px}.stage-track span{font-size:9px}.achievement-list{grid-template-columns:repeat(3,minmax(0,1fr))}.player-label{font-size:11px}}@media(max-width:700px){header{flex-wrap:wrap;gap:14px;padding:16px 20px}.brand{font-size:24px}nav{order:3;width:100%;justify-content:space-between;border-top:1px solid #ffffff0a;padding-top:8px}nav button{flex:1}.player-label{max-width:45%}main{margin:24px auto;padding:0 16px}.layout{grid-template-columns:1fr;gap:22px}.profile{padding:16px;display:grid;grid-template-columns:80px minmax(0,1fr);gap:0 16px;box-shadow:0 4px 0 #10131e}.character-portrait{width:80px;grid-row:1/5;border-radius:8px;margin:0;align-self:start}.portrait-label{display:none}.profile h2{font-size:20px;margin:0 0 5px}.profile-meta{margin:0}.talent-tag{font-size:10px;padding:4px 7px;justify-self:start;margin-top:8px}.profile-age{grid-column:1/-1;margin:15px 0 0}.profile-age strong{font-size:19px}.stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 16px;margin-top:16px}.stat{margin:0}.stat-label{font-size:10px}.stat-label>span{gap:4px}.stat-label svg{width:12px;height:12px}.money{font-size:18px;border:0;padding:0;align-self:center}.money small{font-size:9px}.save-state{display:none}.setup-panel{padding:0 4px}.setup-panel h1{font-size:36px}.setup-panel .intro{font-size:14px}.talents{gap:10px}.talent{min-height:155px}.chapter{padding:0 0 14px;align-items:flex-start}.stage-track{gap:6px;flex-wrap:wrap}.stage-track span{font-size:9px}.scene{aspect-ratio:2.1/1}.story-panel{padding:22px 20px}.story-panel h1{font-size:28px}.story{font-size:16px;line-height:1.8}.choice{padding:14px 13px}.choice strong{font-size:13px}.choice:hover:not(:disabled){transform:none}.feedback{font-size:12px;padding:14px 16px}.ending-copy .end-title{font-size:34px}.achievement-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.achievement{padding:20px 12px}.ending-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collection-header h1{font-size:32px}.unlock-toast{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}footer{padding:20px 16px}.scene-caption{font-size:9px;padding:6px 9px;bottom:10px;left:12px}}@media(max-width:380px){.talents{grid-template-columns:1fr}.talent{min-height:0;padding:14px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:0 12px}.talent-icon{grid-row:1/3}.talent strong{margin:0 16px 4px 0}.talent small{font-size:11px}.stats{gap:12px 10px}.profile{gap:0 12px;grid-template-columns:64px minmax(0,1fr)}.character-portrait{width:64px}.profile h2{font-size:18px}.stat-label>span{gap:3px}.stat-label svg{display:none}.chapter{flex-wrap:wrap;gap:8px}.stage-track{width:100%;justify-content:space-between}.chapter-progress{margin-left:auto}.ending-list{grid-template-columns:1fr}.actions{gap:10px}.actions .primary{width:100%}.actions .secondary{flex:1;padding:12px 10px}footer{flex-direction:column;align-items:flex-start}.story-panel{padding:20px 16px}.choice .number{flex-basis:24px;height:24px}.choice{gap:10px}}

.life-recap{max-width:760px;margin:0 auto;padding:32px 16px}.recap-lines{height:55vh;overflow-y:auto;scrollbar-width:thin;padding:12px 12px 60px}.recap-line{font-size:clamp(17px,2.4vw,22px);line-height:1.8;margin:0 0 28px;animation:recap-reveal 1s ease both}.life-recap .actions{justify-content:flex-end}@keyframes recap-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.recap-line{animation:none}}.reduce .recap-line{animation:none}

.leaderboard{max-width:850px;margin:0 auto;padding:20px 12px}.challenge-intro{padding:0 0 24px;border-bottom:1px solid #44485d}.challenge-intro p{line-height:1.65}.score-rules{margin-top:20px}.score-rules li{margin:12px 0}.board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.my-score{padding:16px 0;font-size:18px}.rank-table{width:100%;border-collapse:collapse;margin:24px 0;table-layout:fixed}.rank-table caption{text-align:left;margin-bottom:14px;font-weight:700}.rank-table th,.rank-table td{padding:14px 8px;border-bottom:1px solid #44485d;text-align:left;overflow-wrap:anywhere}.rank-table th:first-child{width:18%}.rank-table th:last-child{width:20%}.rank-table small{display:block;font-size:12px;color:#aeb7d1;font-weight:400}.your-rank{background:#303447}.board-empty{padding:30px 0}.challenge-result{border-block:1px solid #44485d;padding:16px 0;margin:24px 0}.challenge-result button{margin:8px 12px 8px 0}.danger{margin-top:16px;color:#ef8c85}header nav{flex-wrap:wrap}@media(max-width:600px){header{flex-wrap:wrap}header nav{order:3;flex-basis:100%;justify-content:center}header nav button{padding:10px 9px;font-size:12px}.board-toolbar{align-items:flex-start}.board-toolbar .collection-tabs{gap:4px}.rank-table th,.rank-table td{padding:12px 5px}.board-consent{align-items:flex-start}}

.sound-toggle{font:inherit;font-size:12px;white-space:nowrap;background:transparent;color:inherit;border:1px solid #555b72;border-radius:6px;padding:7px 10px;min-height:36px;cursor:pointer}.sound-settings{border:1px solid #44485d;margin:20px 0;padding:12px}.sound-settings label{margin:10px 0}.sound-settings input[type=range]{width:100%;accent-color:#efc563}dialog select,dialog textarea{box-sizing:border-box;width:100%;font:inherit;color:#f5f1e7;background:#222638;border:1px solid #555b72;border-radius:6px;padding:10px;margin-top:8px}dialog textarea{resize:vertical;line-height:1.6}footer{gap:12px;flex-wrap:wrap}
.social-share{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.social-share a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:44px;padding:10px 16px;box-sizing:border-box}

.gender-choice{border:0;padding:0;margin:18px 0;display:flex;flex-wrap:wrap;gap:8px 24px}.gender-choice legend{font-weight:600;margin-bottom:8px}.gender-choice .check{margin:0;min-height:44px;cursor:pointer}.gender-choice input{accent-color:var(--amber,#efc563)}
