:root{--paper:#fdfdfb;--ink:#22251f;--muted:#6f7469;--line:#e9ebe5;--orange:#a7603c;--green:#557b62}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}a,button,input{outline-offset:5px}a:focus-visible,button:focus-visible{outline:2px solid var(--ink)}a{color:inherit;text-decoration:none}button{transition:background .18s,transform .18s,opacity .18s}button:not(:disabled):active{transform:translateY(2px)}h1,h2,h3,p{margin:0}svg{flex-shrink:0}::selection{background:#e4eadf;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.site-shell{max-width:1240px;min-height:100svh;margin:0 auto;padding:0 36px;display:flex;flex-direction:column}main{flex:1 1;padding:48px 0 36px}.arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px) minmax(0,1fr);justify-content:center;align-items:start;gap:56px}.game-center{min-width:0}.character-panel{text-align:center}.character-name{display:flex;align-items:center;justify-content:center;gap:10px}.character-panel h1{min-width:0;font-size:42px;line-height:1.2;font-weight:600;letter-spacing:-1.6px;overflow-wrap:anywhere}.age-counter{display:flex;justify-content:center;gap:24px;margin-top:14px;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.age-counter>span{display:flex;align-items:baseline;gap:6px}.age-counter strong{color:var(--ink);font-size:30px;font-weight:600;line-height:1.2}.life-progress{width:100%;max-width:360px;margin:48px auto 0}.life-track{position:relative}.life-bar{position:absolute;top:8px;left:calc(100% / 18);width:calc(100% * 8 / 9);height:4px;overflow:hidden;appearance:none;background:var(--line);border:0;border-radius:999px}.life-bar::-webkit-progress-bar{background:var(--line);border-radius:999px}.life-bar::-webkit-progress-value{background:var(--green);border-radius:999px;-webkit-transition:width .3s;transition:width .3s}.life-bar::-moz-progress-bar{background:var(--green);border-radius:999px;-moz-transition:width .3s;transition:width .3s}.life-steps{position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));margin:0;padding:0;list-style:none}.life-step>button{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;min-height:44px;padding:20px 0 0;background:none;border:0}.life-step>button:focus-visible{outline:1px solid var(--muted);outline-offset:1px;border-radius:4px}.life-step>button:active{transform:none}.life-end .character-portrait,.life-step-tooltip-portrait .character-portrait{display:block;width:100%;height:100%;overflow:hidden}.life-end{position:absolute;top:-44px;width:28px;height:34px}.life-step-label{color:var(--muted);font-size:10px;line-height:14px;white-space:nowrap}.life-step.is-current .life-step-label{color:var(--ink);font-weight:600}.life-step>button:after{content:"";position:absolute;top:7px;left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:var(--line)}.life-step.is-current>button:after,.life-step.is-past>button:after{background:var(--green)}.life-step.is-current>button:after{top:6px;left:calc(50% - 4px);width:8px;height:8px}.life-step-tooltip{position:absolute;z-index:2;top:calc(100% + 6px);left:50%;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%)}.life-step-tooltip-portrait{display:block;width:42px;height:44px}.life-step-tooltip-text{padding:6px 8px;color:var(--paper);background:var(--ink);border-radius:4px;font-size:11px;line-height:1.4;white-space:nowrap}.life-step>button:focus .life-step-tooltip,.life-step>button:hover .life-step-tooltip{opacity:1;visibility:visible}.life-step:first-child .life-step-tooltip{left:0;transform:none}.life-step:last-child .life-step-tooltip{right:0;left:auto;transform:none}.character-scene{position:relative;display:flex;justify-content:center;height:340px;margin:8px 0 16px}.day-bubble{position:absolute;top:70px;right:25px;font-size:14px;color:var(--orange);font-weight:500;animation:day-float 2.2s ease-out forwards}.day-bubble.healing{color:var(--green)}.age-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.age-button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 18px;background:#fff;border:1px solid #dcdeda;border-radius:8px;font-size:15px;font-weight:550}.age-button.aging>span{color:var(--orange)}.age-button>span{display:inline-flex;align-items:center;gap:7px}.age-button.healing>span{color:var(--green)}.age-button small{color:var(--muted);font-size:12px;font-weight:400}.age-button.aging:not(:disabled):hover{border-color:#cda995;background:#fcf7f3}.age-button.healing:not(:disabled):hover{border-color:#a3bbaa;background:#f5f8f5}.age-button:disabled{opacity:.4}.story-ended{padding:16px 0;color:var(--muted);font-size:14px}.game-story{margin:18px auto 0;max-width:360px;line-height:1.6}.game-footer,.game-story{color:var(--muted);font-size:12px}.game-footer{padding:12px 0 24px;text-align:center}.game-footer a{display:inline-block;padding:8px;text-decoration:underline;text-underline-offset:3px}.game-footer a:hover{color:var(--ink)}.rename-button{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;max-width:35%;padding:6px;color:var(--muted);background:none;border:none;font-size:12px}.rename-button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rename-button:not(:disabled):hover{color:var(--ink)}.rename-button:disabled{opacity:.45}.leaderboard{--team:var(--orange);min-width:0;margin-top:125px}.leaderboard.healing{--team:var(--green)}.team-heading{padding-bottom:20px;border-bottom:1px solid var(--line)}.team-heading h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:550;letter-spacing:-.3px}.team-heading h2 svg{color:var(--team)}.team-purpose{margin-top:6px;color:var(--muted);font-size:11px}.ranking-scroll{max-height:440px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.ranking-scroll:focus-visible{outline:1px solid var(--muted);outline-offset:4px}.ranking-retry,.ranking-status{padding:12px 0;color:var(--muted);font-size:11px}.ranking-retry{background:none;border:0;text-decoration:underline;text-underline-offset:3px}.ranking{margin:0;padding:0;list-style:none}.ranking li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:flex-start;gap:5px 12px;padding:16px 0;border-bottom:1px solid var(--line)}.rank{grid-column:1;color:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank,.rank-name{grid-row:1;line-height:18px}.rank-name{grid-column:2;min-width:0;font-size:12px;overflow-wrap:anywhere}.rank-name strong{font-weight:500}.rank-message{grid-column:2/-1;grid-row:2;font-size:11px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.rank-link{grid-column:3;grid-row:1;display:inline-flex;align-items:center;gap:3px;min-width:0;max-width:100%;color:var(--ink);font-size:12px;font-weight:500;line-height:1.5;text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px}.rank-link>span{min-width:0;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-link>svg{flex-shrink:0}.rank-days,.rank-link:hover{color:var(--team)}.rank-days{font-size:11px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:18px}.empty-ranking{padding:24px 0;font-size:12px;color:var(--muted)}.page-error{margin-top:24px;color:#b04432;font-size:12px;text-align:center}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:540px;text-align:center}.loading-state h1{font-size:22px;font-weight:500}.loading-state p{max-width:330px;color:var(--muted);font-size:13px;line-height:1.6}.loading-state button{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line);border-radius:6px;background:none}@keyframes day-float{0%{opacity:0;transform:translateY(12px)}15%,65%{opacity:1}to{opacity:0;transform:translateY(-20px)}}@media (max-width:1050px){.arena{grid-template-columns:minmax(0,1fr) minmax(0,360px) minmax(0,1fr);gap:32px}.team-heading h2{font-size:14px}.ranking li{column-gap:8px}}@media (min-width:801px){.site-shell>main{flex:none;padding:32px 0 16px}.character-scene{height:clamp(180px,calc(100svh - 420px),340px)}.ranking-scroll{max-height:min(440px,calc(100svh - 280px))}.game-footer{padding:0 0 12px}}@media (max-width:800px){.ranking-scroll{max-height:360px}.site-shell{max-width:580px;padding:0 20px}main{padding-top:32px;padding-bottom:20px}.arena{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px 28px}.game-center{grid-column:1/-1;grid-row:1;justify-self:center;max-width:360px;width:100%}.character-panel h1{font-size:38px}.age-counter strong{font-size:26px}.character-scene{height:300px;margin-top:-24px;margin-bottom:14px}.leaderboard{margin-top:0}.rank-name{font-size:11px}.rank-link>span{max-width:60px}.ranking li{grid-template-columns:9px minmax(0,1fr) auto;column-gap:7px}.team-heading{padding-bottom:16px}}@media (max-width:400px){.site-shell{padding:0 16px}.arena{column-gap:22px}.team-heading h2{font-size:13px;gap:6px}.age-button{padding-left:16px;padding-right:16px}}.action-dialog{width:min(400px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:28px;overflow-y:auto;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 48px #0000001a}.action-dialog::backdrop{background:#00000040}.dialog-close{position:absolute;top:18px;right:18px;display:grid;place-items:center;padding:6px;color:var(--muted);background:none;border:0;border-radius:6px}.dialog-close:not(:disabled):hover{color:var(--ink);background:var(--line)}.action-dialog h2{padding-right:28px;font-size:22px;line-height:1.3}.action-dialog>p{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.action-dialog form{margin-top:24px}.action-dialog label{display:block;margin:18px 0 8px;font-size:13px;font-weight:500}.action-dialog label:first-child{margin-top:0}.action-dialog label small{color:var(--muted);font-size:11px;font-weight:400}.action-dialog input,.action-dialog textarea{display:block;width:100%;padding:11px 12px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;font:inherit;font-size:14px}.action-dialog textarea{resize:vertical}.action-dialog input:focus,.action-dialog textarea:focus{outline:2px solid var(--ink);outline-offset:2px}.day-picker{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;max-width:180px}.day-picker button{display:grid;place-items:center;height:40px;padding:0;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:20px}.day-picker button:not(:disabled):hover{background:var(--line)}.day-picker input{height:40px;padding:8px 4px;text-align:center;appearance:textfield}.day-picker input::-webkit-inner-spin-button,.day-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.form-extras{margin-top:20px}.form-extras summary{color:var(--muted);font-size:12px;cursor:pointer}.form-extras summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.dialog-submit{width:100%;margin-top:24px;padding:12px;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:6px;font-size:13px;font-weight:500}.dialog-submit:not(:disabled):hover{opacity:.85}.action-dialog :disabled{opacity:.5}.form-hint{margin-top:6px;color:var(--muted)}.form-error,.form-hint{font-size:12px;line-height:1.5}.form-error{margin-top:12px;color:#b33737}@media (max-width:600px){.action-dialog input,.action-dialog textarea{font-size:16px}}