:root{
  --font-body:"Nunito",system-ui,sans-serif;--font-display:"Nunito",system-ui,sans-serif;
  --text-xs:clamp(.75rem,.72rem + .08vw,.8125rem);
  --text-sm:clamp(.875rem,.84rem + .1vw,.9375rem);
  --text-base:clamp(1rem,.96rem + .1vw,1.0625rem);
  --text-lg:clamp(1.125rem,1.08rem + .2vw,1.375rem);
  --text-xl:clamp(1.5rem,1.4rem + .35vw,2rem);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;
  --paper:oklch(.978 .014 85);--surface:#fffdf6;--ink:oklch(.32 .04 245);
  --muted:#596b70;--line:#d7ddd0;--accent:#3c5574;--accent-hover:#2c405c;--green:#4d735c;
  --danger:#9d3c36;--gold:#af7a2c;--shadow:0 8px 32px #273e4424;
  --radius:18px;--ease:cubic-bezier(.2,.8,.2,1)
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums lining-nums}
button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;min-height:44px;border:0}
button:disabled{cursor:default;opacity:.5}button,input,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d29c3a;outline-offset:3px}
button:active:not(:disabled){filter:brightness(.94)}svg{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
a{color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:var(--text-xl);line-height:1.15;letter-spacing:-.035em}h2{font-size:var(--text-lg);line-height:1.25;letter-spacing:-.02em}h3{font-size:var(--text-base);line-height:1.3}p{line-height:1.5}
input{min-width:0;min-height:44px;width:100%;border:1px solid var(--line);border-radius:10px;background:#fffef9;padding:var(--space-2) var(--space-3);outline:none}
input:focus{border-color:var(--accent)}label{display:grid;gap:var(--space-1);font-size:var(--text-sm);font-weight:700}
.muted{color:var(--muted)}.small{font-size:var(--text-xs)}.body-sm{font-size:var(--text-sm)}.money{font-weight:900;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:12px;background:#f0f0e6;border:1px solid transparent;font-size:var(--text-sm);font-weight:800;line-height:1.2}
.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}
.btn.outline{border-color:var(--line);background:var(--surface)}.btn.danger{color:var(--danger);background:#f8e9e2}
.btn.ghost{background:transparent}.btn.wide{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:12px;background:var(--surface);border:1px solid #d9dfd0}
.row{display:flex;align-items:center;gap:var(--space-2)}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:var(--space-3)}.gap4{gap:var(--space-1)}
.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:8px;background:#ebeede;font-size:var(--text-xs);font-weight:800;line-height:1.3}
.pill.gold{background:#f4e7c9;color:#75571f}.pill.green{background:#e3eedc;color:#3f6343}
.divider{height:1px;background:var(--line);margin-block:var(--space-2)}.stack{display:grid;gap:var(--space-3)}
.data-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2);font-size:var(--text-sm)}.data-row>span:first-child{color:var(--muted)}
.notice{padding:var(--space-3);border-radius:10px;background:#f1eddf;color:#556366;font-size:var(--text-xs);line-height:1.4}
.eyebrow{font-size:var(--text-xs);font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.token{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:13px;color:#fff;background:#cc8b39;flex-shrink:0}.token svg{width:23px;height:23px}
.empty{text-align:center;padding:var(--space-8);color:var(--muted)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
