*{box-sizing:border-box}
.mobile-result{display:none}.idle-item{opacity:.7;width:38px;height:38px}.idle-item svg{width:23px;height:23px}
@media(max-width:760px){.mobile-result{display:block;position:absolute;top:35px;right:12px;font-size:12px;background:var(--surface);padding:10px;border-radius:12px;max-width:105px}.mobile-result strong{font-size:27px}}
:root{font:16px Arial,sans-serif;--ink:#14263d;--muted:#475b70;--surface:rgba(255,255,255,.94);--line:#aab9c9;--gold:#986d24;--accent:#153a64;background:#edf3fa;color:var(--ink)}
:root[data-theme=dark]{color-scheme:dark;--ink:#eff5ff;--muted:#b8c9dd;--surface:rgba(12,28,48,.95);--line:#50657d;--gold:#ebc77b;--accent:#c7defd;background:#061425}
body{margin:0;padding-bottom:90px}button,input,select{font:inherit}button{cursor:pointer;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:12px 20px;min-height:44px}button:hover{border-color:var(--gold)}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:inherit}header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.wordmark{letter-spacing:.35em;text-decoration:none;font-size:22px}.tools{display:flex;gap:8px}.tools button{padding:8px 14px}.intro{text-align:center;padding:12px 20px}.intro h1{font-weight:400;letter-spacing:-.045em;font-size:clamp(28px,3vw,43px);margin:6px 0}.intro em{font-style:normal;color:var(--accent)}.intro p{color:var(--muted);margin:10px 0}
.stage{position:relative;max-width:1600px;margin:auto;height:620px;overflow:hidden;isolation:isolate}.art{position:absolute;inset:0;background:url('assets/light.webp') center/auto 100% no-repeat;z-index:-2}.stage:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 45px 16px #edf3fa;pointer-events:none;z-index:-1}[data-theme=dark] .art{background-image:url('assets/dark.webp')}[data-theme=dark] .stage:after{box-shadow:inset 0 0 45px 16px #061425}.entry{position:absolute;left:4%;top:22%;width:27%;max-width:345px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px}.entry h2{font-size:20px;margin:0 0 18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fields .wide{grid-column:1/-1}label{display:grid;gap:7px;font-size:14px;color:var(--muted)}input,select{width:100%;min-width:0;padding:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;min-height:46px}input[type=checkbox]{width:20px;min-height:20px}.check{display:flex;align-items:center;gap:10px;margin:18px 0}.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.entry .primary{width:100%;margin-top:15px}.small{font-size:13px;line-height:1.6;color:var(--muted)}.result{position:absolute;right:4%;top:23%;width:26%;max-width:340px;padding:20px;background:var(--surface);border-radius:24px;border:1px solid var(--line)}.result .number{font-size:clamp(34px,4vw,58px);font-weight:400;display:block;line-height:1.15}.result p{line-height:1.6}.decisions,.more-row{display:flex;flex-wrap:wrap;gap:8px}.decisions button{flex:1;padding:10px 12px}.more-row{margin-top:12px}.more-row button{font-size:14px;padding:10px 14px}.pedestal{position:absolute;top:75%;left:50%;transform:translateX(-50%);color:#102641;text-align:center;letter-spacing:.45em;font-size:23px}.pedestal small{display:block;letter-spacing:.14em;font-size:10px;margin-top:12px;white-space:nowrap}[data-theme=dark] .pedestal{color:#f4e2be}
.item{position:absolute;left:50%;top:29%;width:58px;height:58px;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;background:var(--surface);border:1px solid #dbb86c;box-shadow:0 0 25px #ebbd7466;z-index:2}.item svg{width:30px;height:30px}.item.enter{animation:enter 1s ease both}.item.bought{animation:buy 1.2s ease-in-out forwards}.item.skipped{animation:skip 1.2s ease forwards}.item.deciding{animation:float 5s ease-in-out infinite}.glow{position:absolute;left:50%;top:42%;width:20px;height:90px;background:linear-gradient(#fff3b5,#e5ae3a00);border-radius:50%;filter:blur(4px);transform:translateX(-50%);animation:sand 2s ease-in-out infinite;pointer-events:none}.particles{position:absolute;left:50%;top:35%;pointer-events:none}.particles i{position:absolute;width:4px;height:4px;border-radius:100%;background:#ffdc83;box-shadow:0 0 10px gold;animation:particle 1.4s ease both}.path{position:absolute;left:calc(50% - 90px);top:47%;width:180px;height:142px;overflow:visible;color:#ffdc8a;filter:drop-shadow(0 0 5px #d99832)}.path .track{stroke:#ffffff60}.path .progress{transition:stroke-dashoffset 1.3s ease}.goal-chip{position:absolute;left:50%;top:65%;transform:translateX(-50%);max-width:230px;background:var(--surface);font-size:13px;padding:8px 15px}.allocation{position:absolute;top:48%;left:50%;transform:translateX(-50%);width:225px;text-align:center;background:var(--surface);padding:12px;border:1px solid var(--line);border-radius:18px;z-index:4}.allocation p{font-size:14px;margin:0 0 8px}.allocation button{font-size:13px;min-height:36px;padding:8px;margin:3px}.age{position:absolute;left:calc(50% + 111px);top:39%;font-size:13px;border:1px solid var(--gold);border-radius:30px;padding:5px 9px;background:var(--surface)}
#navigation{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:40px;z-index:10;box-shadow:0 10px 35px #0002}#navigation button{border:0;background:transparent;white-space:nowrap}#navigation button[aria-current=page]{background:var(--ink);color:var(--surface)}.page{max-width:860px;padding:25px;margin:auto}.page h1{font-weight:400;font-size:34px}.page h2{font-size:22px;font-weight:400;margin-top:32px}.row{padding:20px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.row p{margin:7px 0;color:var(--muted)}.row button{font-size:14px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.summary{display:grid;grid-template-columns:1fr 1fr;gap:20px}.summary div{padding:20px 0;border-bottom:1px solid var(--line)}.summary strong{display:block;font-size:28px;font-weight:400;margin-top:10px}.summary span{font-size:14px;color:var(--muted)}.empty{padding:30px 0;color:var(--muted);line-height:1.7}.goal-progress{height:5px;width:200px;background:var(--line);border-radius:5px;overflow:hidden}.goal-progress span{display:block;height:100%;background:var(--gold)}
dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:30px;max-width:570px;width:calc(100% - 30px);max-height:85vh;overflow:auto}dialog::backdrop{background:#00122788;backdrop-filter:blur(5px)}dialog h2{font-weight:400;margin:10px 0 25px}#close{float:right;padding:6px 14px;font-size:25px}#sheet-content{clear:both}dialog .primary{margin-top:20px}dialog .menu{display:grid;gap:10px}#notice{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:12px 20px;border-radius:12px;z-index:30;max-width:90%;text-align:center}#notice:empty{display:none}#print-area{display:none}.error{color:#b22822}[data-theme=dark] .error{color:#ffb3a9}[hidden]{display:none!important}[dir=rtl] .entry{left:auto;right:4%}[dir=rtl] .result{right:auto;left:4%}.paused *{animation-play-state:paused!important}
@keyframes enter{from{transform:translate(-240px,-100px) scale(.6);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}@keyframes buy{40%{transform:translate(-50%,55px) scale(.4)}to{transform:translate(-50%,200px) scale(.6)}}@keyframes skip{35%{transform:translate(-50%,35px);opacity:1}to{transform:translate(-50%,35px) scale(.15);opacity:0}}@keyframes float{50%{transform:translate(-50%,-65%) rotate(4deg)}}@keyframes sand{50%{opacity:.5;transform:translateX(-50%) scaleX(.6)}}@keyframes particle{from{opacity:0;transform:translate(0,0)}20%{opacity:1}to{opacity:0;transform:translate(var(--x),var(--y))}}
@media(max-width:760px){header{height:64px;padding:0 18px}.wordmark{font-size:18px}.tools button{font-size:14px;padding:7px 10px}.intro{padding:8px 15px}.intro h1{font-size:30px}.intro p{font-size:14px}.stage{height:auto;overflow:visible;display:flex;flex-direction:column;padding-top:410px}.art{height:410px;bottom:auto;background-size:auto 410px}.stage:after{height:410px;bottom:auto}.entry,[dir=rtl] .entry{position:relative;left:auto;right:auto;top:auto;width:calc(100% - 32px);max-width:500px;margin:0 auto;padding:18px}.entry h2{display:none}.result,[dir=rtl] .result{position:relative;left:auto;right:auto;top:auto;width:calc(100% - 32px);max-width:500px;margin:12px auto 0;padding:18px}.result .number{font-size:38px}.pedestal{top:309px;font-size:19px}.pedestal small{font-size:8px}.item{top:119px;width:48px;height:48px}.glow{top:172px;height:65px}.particles{top:145px}.path{top:193px;left:calc(50% - 62px);width:124px;height:100px}.goal-chip{top:270px;font-size:12px;max-width:200px}.allocation{top:181px;width:210px;padding:8px}.age{top:170px;left:calc(50% + 80px)}.allocation button{padding:5px 8px;min-height:30px}.page{padding:20px}.row{align-items:flex-start;flex-wrap:wrap}.summary{gap:12px}#navigation{bottom:8px;max-width:calc(100% - 16px)}#navigation button{padding:12px 16px;font-size:14px}.goal-progress{width:160px}@keyframes buy{40%{transform:translate(-50%,35px) scale(.4)}to{transform:translate(-50%,130px) scale(.6)}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}.item.deciding,.glow{animation:none}}
@media print{body>*{display:none!important}body{padding:0;background:white;color:#111}#print-area{display:block!important;font:14px Arial,sans-serif;padding:25px}#print-area h1{letter-spacing:.3em}#print-area table{width:100%;border-collapse:collapse}#print-area td,#print-area th{text-align:start;padding:12px;border-bottom:1px solid #bbb}#print-area tr{break-inside:avoid}}
