@font-face{font-family:Inter;src:url('/assets/inter-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url('/assets/inter-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#1d2b36;--muted:#5d6b75;--accent:#2f6f4e;--hover:#245a3e;--line:#d7e0e4;--soft:#f3f6f7;--tint:#e9f4ef}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:17px/1.65 Inter,Arial,sans-serif;background:linear-gradient(180deg,#4d4e4e 0%,#716861 30%,#8a7968 55%,#a6865a 85%,#ac854e 100%);background-attachment:fixed}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit;font-size:16px}button,a,input,select,summary{touch-action:manipulation}button,input,select{min-height:48px}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:12px;padding:8px 16px;cursor:pointer;transition:transform 180ms,background 180ms}button:hover{background:var(--soft)}button.primary{background:var(--accent);color:white;border-color:var(--accent);font-weight:700}button.primary:hover{background:var(--hover);transform:translateY(-2px);box-shadow:0 8px 24px #00000024}button:disabled{cursor:default;opacity:.6;transform:none}input,select{display:block;width:100%;padding:8px 12px;background:white;color:var(--ink);border:1px solid #8a9aa4;border-radius:8px}input:focus,select:focus{border-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input[aria-invalid=true]{border:2px solid var(--ink)}label{font-size:16px;line-height:1.35;display:block}.field label{margin-bottom:6px}.field-error{font-size:16px;display:block;line-height:1.4;margin-top:4px}p{max-width:68ch;margin:0 0 16px}h1,h2,h3{line-height:1.2;letter-spacing:-.035em;margin:0 0 16px}h1{font-size:clamp(2.2rem,4.4vw,4.2rem)}h2{font-size:clamp(1.75rem,3vw,2.8rem)}h3{font-size:1.25rem}ul,ol{padding-left:24px}svg{max-width:100%}header{background:white;min-height:64px;position:relative;z-index:2}.wrap{max-width:1180px;margin:auto;padding:0 24px}.head{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:24px}.logo{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:24px;font-weight:700;text-decoration:none;letter-spacing:-1px}.logo svg{width:32px;height:32px;color:var(--accent);flex-shrink:0}nav{display:flex;align-items:center;gap:24px}nav a{color:var(--ink);font-size:16px;display:flex;align-items:center;min-height:44px;text-decoration:none}nav a:hover{text-decoration:underline}.menu{display:none;padding:8px;width:48px}.menu svg{display:block}.skip{position:absolute;left:16px;top:-100px;background:white;padding:8px;z-index:5}.skip:focus{top:8px}main{padding-top:32px!important;padding-bottom:56px!important}.hero{color:white}.hero h1{margin-bottom:12px}.hero p{color:white;margin-bottom:24px}.card{background:white;border-radius:16px;padding:28px;box-shadow:0 4px 20px #00000014}.tool{margin-top:24px;display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:start}.tool h2,.widget h2{font-size:1.25rem;letter-spacing:-.02em}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}.goal-toggle{display:flex;background:var(--soft);border-radius:12px;padding:4px;margin:16px 0}.goal-toggle button{border:0;flex:1;padding:6px;font-size:16px;min-height:44px}.goal-toggle button[aria-pressed=true]{background:var(--accent);color:white}.assumptions{font-size:16px;background:var(--soft);border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:0 12px}.assumptions summary{padding:12px 0;cursor:pointer;min-height:48px;line-height:1.4}.assumptions .fields{padding:4px 0 12px}.hint{font-size:16px;color:var(--muted);line-height:1.5;margin:8px 0 12px}.actions{display:flex;gap:12px;flex-wrap:wrap}.actions .primary{flex:1;min-width:0}.disclaimer{font-size:16px;margin:8px 0 0;color:var(--ink);line-height:1.5}.summary{background:var(--tint);border-radius:12px;padding:20px}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.13em;color:var(--accent);margin:0 0 6px}.summary h2{font-size:1.25rem;margin:0 0 4px}.big{display:block;font-weight:700;font-size:clamp(2.5rem,5vw,4rem);font-variant-numeric:tabular-nums;line-height:1.15;color:var(--accent);letter-spacing:-.04em}.result-status{font-size:16px;line-height:1.4;margin:8px 0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.stats span,.stats strong{display:block;font-size:16px;line-height:1.4;overflow-wrap:anywhere}.stats span{color:var(--muted)}.empty-steps{display:flex;gap:8px;align-items:center;font-size:16px;margin-top:16px;color:var(--muted)}.empty-steps svg{width:24px;height:24px;flex-shrink:0}.result-note{margin:12px 0 0;font-size:16px;line-height:1.5}.result-note a{display:inline-block;min-height:44px;padding-top:8px}.stale{font-weight:700;background:var(--soft);padding:12px;border-radius:8px;margin-bottom:12px}.error-summary{background:var(--soft);border:2px solid var(--ink);border-radius:8px;margin:12px 0;padding:12px;font-size:16px}.error-summary ul{margin:4px 0}.chart{margin-top:24px}.chart svg{display:block;width:100%;height:auto}.chart p{font-size:16px;margin:8px 0}.chart text{font-family:Inter,Arial,sans-serif;font-size:16px;fill:var(--muted)}.chart .line{fill:none;stroke:var(--accent);stroke-width:3}.chart .threshold{fill:none;stroke:var(--ink);stroke-dasharray:7 5;stroke-width:2}details summary{cursor:pointer;min-height:44px;padding:8px 0}table{border-collapse:collapse;width:100%;font-size:16px;line-height:1.5}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--soft);font-weight:700}td{font-variant-numeric:tabular-nums}table caption{text-align:left;font-weight:700;margin-bottom:12px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.section{margin-top:56px}.section>.card+.card{margin-top:24px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.grid .card{padding:24px}.link-card{display:block;color:var(--ink);text-decoration:none;transition:transform 180ms}.link-card:hover{transform:translateY(-3px)}.link-card h3{color:var(--accent)}.link-card p{margin:0}.step{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--tint);color:var(--accent);font-weight:700;border-radius:50%;margin-bottom:16px}.article{max-width:820px;margin:24px auto 0}.article>.card{margin-bottom:24px}.article .card>:last-child{margin-bottom:0}.article h2{max-width:24ch}.article li{margin-bottom:12px}.article code{font-family:Inter,Arial,sans-serif;overflow-wrap:anywhere;background:var(--soft);padding:4px;font-size:16px}.article p:has(>code:only-child){background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:16px}.article details{border-top:1px solid var(--line)}.article details summary{font-weight:700}.article details p{padding:12px 0}.article .table-scroll{margin:16px 0}.widget{max-width:820px;margin:24px auto 0}.widget .summary{margin-top:24px}.widget form{max-width:580px}.widget .actions{margin-top:16px}.tools-links{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.comparison-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.compare-grid>div{padding:16px;background:var(--soft);border-radius:12px}.compare-grid h3{margin-bottom:8px}.comparison-note{font-size:16px}.save-form{display:flex;align-items:end;gap:12px;margin-top:16px}.save-form .field{flex:1}.saved-item{padding:16px 0;border-top:1px solid var(--line)}.saved-item p{margin:8px 0;font-size:16px}.saved-actions{display:flex;gap:12px;flex-wrap:wrap}.saved-list{margin-top:24px}.trust{font-size:16px}.trust h2{font-size:1.25rem}.jump{display:flex;gap:8px;flex-wrap:wrap}.jump a{display:inline-block;padding:8px 12px;background:var(--soft);border-radius:8px;min-height:44px}footer{background:white;padding:32px 0;font-size:16px}footer ul{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0;margin:0 0 12px}footer a{display:inline-block;min-height:44px;padding-top:8px}footer p{max-width:none;margin:8px 0}footer .operator{color:var(--muted);max-width:80ch}button svg{width:24px;height:24px;vertical-align:middle;margin-right:4px}.mobile-only{display:none}[hidden]{display:none!important}
@media(max-width:760px){body{background-attachment:scroll}.wrap{padding:0 16px}.head{gap:16px}nav{display:none;position:absolute;top:64px;left:0;right:0;padding:12px 20px;background:white;box-shadow:0 8px 12px #0002;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:0}nav a{padding:8px 0}.menu{display:block}main{padding-top:20px!important}.hero h1{font-size:2.2rem;margin-bottom:0}.hero p{display:none}.card{padding:20px}.tool{display:flex;flex-direction:column;gap:12px;margin-top:16px}.tool>form,.tool>.output{width:100%}.tool .output{display:contents}.tool .summary{order:-1;padding:12px 16px;width:100%}.tool .summary h2{font-size:16px;margin:0}.tool .summary .big{font-size:2.5rem}.tool .result-status{margin:4px 0;font-size:16px}.tool .stats{margin-top:8px;gap:8px}.tool .empty-steps{display:none}.tool .fields{gap:12px}.tool .field label{min-height:43px;display:flex;align-items:end;margin-bottom:4px}.goal-toggle{margin:12px 0}.assumptions{margin:12px 0}.assumptions summary{padding:10px 0}.tool form>h2{display:none}.tool .actions{gap:8px}.tool .actions button{padding:8px 12px}.tool .result-note{order:2}.tool .chart{order:3;width:100%;margin-top:8px}.tool .error-summary{margin-top:0}.tool .stale{order:-2;width:100%;margin:0}.grid{grid-template-columns:1fr}.section{margin-top:32px}.article,.widget{margin-top:20px}.article h2{font-size:1.75rem}.tools-links,.compare-grid{grid-template-columns:1fr}.save-form{display:block}.save-form button{margin-top:12px;width:100%}.widget .fields{gap:12px}.widget .summary{margin-top:20px}.widget h2{font-size:1.25rem}.big{overflow-wrap:anywhere}.chart text{font-size:16px}.chart .table-scroll{font-size:16px}.chart svg{min-height:200px}footer .wrap{padding:0 20px}.desktop-only{display:none}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:hover,.link-card:hover{transform:none!important}}

@media(max-width:760px){.tool .summary .eyebrow{display:none}.tool .fields>.field:nth-child(-n+2) label{min-height:22px}.tool .summary .stats span{font-size:16px}}

.field{min-width:0}.card{min-width:0;overflow-wrap:break-word}label{overflow-wrap:anywhere}

.saved-actions button{max-width:100%;overflow-wrap:anywhere}

/* Wallet hero video (from budgettemplate.app), homepage only */
.hero.hero-media{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}
.hero-text{min-width:0}
.hero-video{margin:0;justify-self:end;border-radius:16px;overflow:hidden;box-shadow:0 22px 44px rgba(0,0,0,.28);background:#1d2b36;height:360px;aspect-ratio:474/720;line-height:0}
.hero-video video,.hero-video .hv-still{display:block;width:100%;height:100%;object-fit:cover}
.hero-video .hv-still{display:none}
@media(max-width:760px){
  .hero.hero-media{grid-template-columns:1fr;gap:14px}
  .hero-video{justify-self:center;height:220px;width:min(100%,145px)}
  .hero.hero-media .hero-text h1{margin-bottom:0}
  .hero.hero-media .hero-text p{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-video video{display:none!important}
  .hero-video .hv-still{display:block}
}
@media print{.hero-video{display:none!important}}
