:root{
  --cover:#1A2420;
  --cover-2:#0E140F;
  --paper:#F2ECD9;
  --paper-line: rgba(36,41,30,0.12);
  --ink:#24291E;
  --ink-soft:#5B6152;
  --gold:#B8924A;
  --money-green:#1F5C42;
  --cost-red:#8C3B2E;
  --navy:#2B3E52;
  --teal:#2E6E6E;
  --sage:#5E7A4C;
  --ember:#C1652B;
  --plum:#5B3A5C;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--cover);color:var(--paper);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;}

/* ---------- top site nav ---------- */
.site-nav{display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap;padding:22px 16px 0;background:radial-gradient(ellipse at top, var(--cover) 0%, var(--cover-2) 100%);}
.site-nav .brand{font-family:'Fraunces',serif;font-weight:600;font-size:1.15rem;color:var(--paper);text-decoration:none;margin-right:28px;letter-spacing:0.2px;}
.site-nav .brand span{color:var(--gold);}
.site-nav-links{display:flex;gap:6px;flex-wrap:wrap;}
.site-nav-links a{text-decoration:none;font-size:0.88rem;font-weight:500;color:rgba(242,236,217,0.72);padding:8px 14px;border-radius:20px;transition:background .2s ease, color .2s ease;}
.site-nav-links a:hover{color:var(--paper);background:rgba(242,236,217,0.08);}
.site-nav-links a.current{color:var(--ink);background:var(--gold);}

/* ---------- cover / page header ---------- */
.cover{padding:40px 24px 0;text-align:center;background:radial-gradient(ellipse at top, var(--cover) 0%, var(--cover-2) 100%);}
.cover-title{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2.2rem,5.4vw,3.6rem);margin:14px 0 0;color:var(--paper);}
.cover-sub{font-family:'IBM Plex Mono',monospace;font-size:0.92rem;color:var(--gold);margin:10px 0 36px;}

/* ---------- home page category grid ---------- */
.home-wrap{padding:0 16px 70px;display:flex;justify-content:center;background:var(--cover-2);}
.cat-grid{max-width:1040px;width:100%;margin-top:-8px;display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
@media (max-width:680px){.cat-grid{grid-template-columns:1fr;}}
.cat-card{display:block;text-decoration:none;background:var(--paper);border-radius:10px;padding:30px 28px;box-shadow:0 20px 40px rgba(0,0,0,0.32);position:relative;overflow:hidden;transition:transform .2s ease;}
.cat-card:hover{transform:translateY(-4px);}
.cat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--accent, var(--gold));}
.cat-card h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;margin:0 0 8px;color:var(--ink);}
.cat-card p{font-size:0.92rem;color:var(--ink-soft);line-height:1.55;margin:0 0 18px;max-width:40ch;}
.cat-card .cat-count{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;color:var(--accent, var(--gold));text-transform:none;}
.cat-card .cat-list{list-style:none;padding:0;margin:14px 0 0;font-size:0.82rem;color:var(--ink-soft);line-height:1.9;columns:2;column-gap:18px;}

.home-note{max-width:1040px;width:100%;margin:34px auto 0;text-align:center;color:rgba(242,236,217,0.55);font-family:'IBM Plex Mono',monospace;font-size:0.8rem;}

/* ---------- calculator chip switcher ---------- */
.toolbox-wrap{padding:0 16px;display:flex;justify-content:center;background:radial-gradient(ellipse at top, var(--cover) 0%, var(--cover-2) 60%);}
.toolbox{max-width:920px;width:100%;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:8px 0 30px;}
.chip{font-family:'Inter',sans-serif;font-size:0.85rem;font-weight:500;color:rgba(242,236,217,0.8);background:rgba(242,236,217,0.06);border:1px solid rgba(242,236,217,0.16);padding:9px 16px;border-radius:20px;cursor:pointer;transition:all .18s ease;}
.chip:hover{background:rgba(242,236,217,0.13);color:var(--paper);}
.chip.active{background:var(--accent, var(--gold));border-color:var(--accent, var(--gold));color:var(--ink);}

/* ---------- book / page (calculator body) ---------- */
.desk{padding:0 16px 70px;display:flex;justify-content:center;}
.book{max-width:920px;width:100%;background:var(--paper);border-radius:8px;box-shadow:0 30px 60px rgba(0,0,0,0.35);position:relative;overflow:hidden;}
.panel{display:none;grid-template-columns:1fr 2px 1fr;}
.panel.active{display:grid;}
.page{padding:38px 36px;background-image:repeating-linear-gradient(to bottom, transparent, transparent 27px, var(--paper-line) 28px);color:var(--ink);}
.book-spine{background:linear-gradient(to right, rgba(0,0,0,0.18), rgba(0,0,0,0.04) 40%, rgba(0,0,0,0.04) 60%, rgba(0,0,0,0.18));}
@media (max-width:720px){
  .panel.active{display:flex;flex-direction:column;}
  .book-spine{display:none;}
  .page{padding:30px 22px;}
}

.page-heading{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;margin:0 0 6px;}
.page-desc{font-size:0.88rem;color:var(--ink-soft);margin:0 0 26px;line-height:1.5;max-width:36ch;}

.field{margin-bottom:24px;}
.field label{display:flex;justify-content:space-between;align-items:baseline;font-size:0.85rem;color:var(--ink-soft);margin-bottom:8px;gap:10px;}
.field-value{font-family:'IBM Plex Mono',monospace;color:var(--ink);font-weight:500;white-space:nowrap;}

.input-money{display:flex;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:4px;}
.input-money span{font-family:'IBM Plex Mono',monospace;font-size:1.05rem;margin-right:6px;color:var(--ink-soft);}
.input-money input{border:none;background:transparent;font-family:'IBM Plex Mono',monospace;font-size:1.25rem;color:var(--ink);width:100%;outline:none;}

input[type=number].plain, input[type=text].plain, input[type=date].plain, input[type=time].plain, select.plain{border:none;border-bottom:2px solid var(--ink);background:transparent;font-family:'IBM Plex Mono',monospace;font-size:1.25rem;color:var(--ink);width:100%;padding-bottom:4px;outline:none;-webkit-appearance:none;appearance:none;border-radius:0;}
select.plain{cursor:pointer;}
input[type=number]{-moz-appearance:textfield;}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:var(--ink);outline:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent, var(--gold));border:2px solid var(--ink);cursor:pointer;margin-top:-7px;}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent, var(--gold));border:2px solid var(--ink);cursor:pointer;}

.result-hero{margin-bottom:22px;}
.result-label{display:block;font-size:0.85rem;color:var(--ink-soft);margin-bottom:6px;}
.result-figure{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.8rem,4.6vw,2.6rem);color:var(--ink);word-break:break-word;}
.result-figure.grow{color:var(--money-green);}
.result-figure.cost{color:var(--cost-red);}
.result-figure.warn{color:var(--cost-red);}
.result-note{font-size:0.82rem;color:var(--ink-soft);margin:6px 0 0;}

.ledger-lines{list-style:none;padding:0;margin:0 0 24px;}
.ledger-lines li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-family:'IBM Plex Mono',monospace;font-size:0.9rem;border-bottom:1px dashed rgba(36,41,30,0.25);}
.ledger-lines li span:first-child{color:var(--ink-soft);font-family:'Inter',sans-serif;}
.ledger-lines li span:last-child{text-align:right;}

.chart-wrap svg{width:100%;height:auto;display:block;}
.chart-caption{font-size:0.78rem;color:var(--ink-soft);margin-top:8px;}

.pagefoot{text-align:center;padding:0 16px 50px;color:rgba(242,236,217,0.55);font-size:0.8rem;font-family:'IBM Plex Mono',monospace;}
.pagefoot a{color:var(--gold);text-decoration:none;}

:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;}
}


/* ---------- polished v2 additions ---------- */
body{min-height:100vh;}
.site-nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:rgba(14,20,15,.94);border-bottom:1px solid rgba(242,236,217,.08);}
.site-nav .brand{font-size:1.25rem;}
.site-nav-links a{white-space:nowrap;}
.cover{padding:58px 20px 24px;}
.cover-title{letter-spacing:-.025em;}
.cover-sub{max-width:680px;margin-left:auto;margin-right:auto;line-height:1.6;}
.page-intro{max-width:760px;margin:0 auto 22px;text-align:center;color:rgba(242,236,217,.68);font-size:.92rem;line-height:1.7;}
.breadcrumbs{max-width:1040px;margin:0 auto 16px;padding:0 16px;color:rgba(242,236,217,.48);font-size:.78rem;}
.breadcrumbs a{color:var(--gold);text-decoration:none;}
.home-wrap{padding-top:12px;}
.home-hero{max-width:1040px;margin:0 auto 30px;text-align:center;}
.home-hero h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 10px;color:var(--paper);}
.home-hero p{max-width:650px;margin:0 auto;color:rgba(242,236,217,.62);line-height:1.7;}
.home-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px;}
.home-action{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:22px;text-decoration:none;font-size:.84rem;font-weight:600;border:1px solid rgba(242,236,217,.16);background:rgba(242,236,217,.06);}
.home-action.primary{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.popular-grid{max-width:1040px;margin:32px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.popular-card{background:rgba(242,236,217,.055);border:1px solid rgba(242,236,217,.11);border-radius:10px;padding:17px;text-decoration:none;transition:transform .18s,background .18s;}
.popular-card:hover{transform:translateY(-2px);background:rgba(242,236,217,.09);}
.popular-card strong{display:block;font-family:'Fraunces',serif;color:var(--paper);font-size:1rem;margin-bottom:5px;}
.popular-card span{font-size:.76rem;color:rgba(242,236,217,.55);}
@media(max-width:800px){.popular-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.popular-grid{grid-template-columns:1fr;}}
.toolbox-wrap{padding-bottom:8px;}
.toolbox-search{width:min(420px,100%);margin:0 auto 14px;display:block;border:1px solid rgba(242,236,217,.18);border-radius:22px;background:rgba(242,236,217,.06);color:var(--paper);padding:11px 16px;outline:none;font:inherit;}
.toolbox-search::placeholder{color:rgba(242,236,217,.42);}
.toolbox-search:focus{border-color:var(--gold);}
.chip[hidden]{display:none;}
.content-wrap{max-width:920px;margin:30px auto 0;padding:0 16px 60px;}
.info-card{background:rgba(242,236,217,.045);border:1px solid rgba(242,236,217,.1);border-radius:12px;padding:24px;color:rgba(242,236,217,.72);line-height:1.75;font-size:.9rem;}
.info-card h2,.info-card h3{font-family:'Fraunces',serif;color:var(--paper);margin-top:0;}
.info-card + .info-card{margin-top:14px;}
.site-footer{background:#0a0f0b;border-top:1px solid rgba(242,236,217,.09);padding:38px 20px 26px;color:rgba(242,236,217,.55);}
.footer-grid{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;}
.footer-brand{font-family:'Fraunces',serif;color:var(--paper);font-size:1.25rem;margin-bottom:8px;}
.footer-brand span{color:var(--gold);}
.footer-copy{font-size:.82rem;line-height:1.65;max-width:36ch;}
.footer-col h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);margin:0 0 10px;}
.footer-col a{display:block;text-decoration:none;font-size:.82rem;padding:4px 0;color:rgba(242,236,217,.62);}
.footer-col a:hover{color:var(--paper);}
.footer-bottom{max-width:1040px;margin:28px auto 0;padding-top:18px;border-top:1px solid rgba(242,236,217,.08);font-size:.75rem;}
@media(max-width:720px){.footer-grid{grid-template-columns:1fr 1fr;}.footer-grid>div:first-child{grid-column:1/-1;}}
@media(max-width:430px){.footer-grid{grid-template-columns:1fr;}}
.result-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.copy-result,.reset-calc{border:1px solid rgba(36,41,30,.18);background:rgba(36,41,30,.06);color:var(--ink);padding:8px 12px;border-radius:7px;font:500 .78rem Inter,sans-serif;cursor:pointer;}
.copy-result:hover,.reset-calc:hover{background:rgba(36,41,30,.11);}
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--gold);color:var(--ink);padding:8px 12px;border-radius:6px;z-index:100;}
.skip-link:focus{left:8px;}
