@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--ink:#18221b;--ink-soft:#2e3a30;--paper:#f1eee5;--paper-bright:#fbfaf5;--paper-deep:#e6e1d4;--line:rgba(24,34,27,0.14);--muted:#798075;--acid:#d7e85d;--acid-dark:#aab83d;--coral:#c45d43;--coral-soft:#f0ded6;--green:#3d7457;--shadow:0 24px 80px rgba(18,24,18,0.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,sans-serif}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;overflow:hidden;position:relative;background:var(--paper)}.grain{pointer-events:none;position:fixed;inset:0;opacity:.045;z-index:4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;margin:0 auto;max-width:1380px;padding:24px 42px 22px;position:relative;z-index:5}.app-footer,.brand-lockup,.brand-symbol,.download-button,.edit-button,.entry-actions,.intro-copy a,.month-state,.private-chip,.topbar,.topbar-actions{align-items:center;display:flex}.brand-symbol{background:var(--ink);color:var(--acid);font-family:Fraunces,Georgia,serif;font-size:25px;height:44px;justify-content:center;margin-right:13px;transform:rotate(-4deg);width:44px}.brand-name{font-size:11px;letter-spacing:.13em;margin:0 0 3px}.brand-name,.brand-subtitle{font-family:DM Mono,monospace}.brand-subtitle{color:var(--muted);font-size:10px;letter-spacing:.02em;margin:0}.topbar-actions{gap:15px}.private-chip{border:1px solid var(--line);color:var(--ink-soft);font-family:DM Mono,monospace;font-size:10px;gap:7px;letter-spacing:.06em;padding:9px 11px;text-transform:uppercase}.status-dot{background:var(--green);border-radius:50%;display:inline-block;height:6px;width:6px}.icon-button{align-items:center;background:transparent;border:0;color:var(--muted);display:flex;justify-content:center;padding:8px;transition:color .2s,transform .2s}.icon-button:hover{color:var(--ink);transform:translateX(2px)}.content-wrap{margin:0 auto;max-width:1380px;padding:72px 42px 35px;position:relative;z-index:1}.eyebrow{color:var(--coral);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.13em;margin:0 0 13px;text-transform:uppercase}.intro-row{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:52px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.045em}h1{font-size:clamp(50px,6vw,82px);line-height:.91;margin-bottom:0}h1 em,h2 em{color:var(--coral);font-style:normal}.intro-copy{max-width:280px;padding-bottom:3px}.intro-copy p{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:22px}.intro-copy a{border-bottom:1px solid var(--ink);font-family:DM Mono,monospace;font-size:10px;gap:12px;letter-spacing:.02em;padding-bottom:7px;width:-moz-fit-content;width:fit-content}.intro-copy a svg{transition:transform .2s}.intro-copy a:hover svg{transform:translateX(5px)}.alert{background:var(--coral-soft);border-left:3px solid var(--coral);color:#703b30;font-family:DM Mono,monospace;font-size:11px;margin:-25px 0 30px;padding:13px 16px}.stats-grid{display:grid;grid-gap:1px;gap:1px;grid-template-columns:1.35fr repeat(3,1fr);margin-bottom:45px}.stat-card{background:var(--paper-bright);min-height:170px;padding:21px 23px;position:relative}.stat-card:first-child{background:var(--ink);color:var(--paper-bright)}.stat-card:first-child .stat-caption,.stat-card:first-child .stat-label{color:rgba(241,238,229,.62)}.stat-label{color:var(--muted);font-family:DM Mono,monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.stat-index{color:var(--coral);margin-right:9px}.stat-value{font-family:Fraunces,Georgia,serif;font-size:clamp(30px,3vw,48px);letter-spacing:-.055em;line-height:1;margin:28px 0 11px}.stat-value.small{font-size:clamp(23px,2.2vw,34px);margin-top:35px}.stat-trend{font-family:DM Mono,monospace;font-size:10px;margin:0}.stat-trend.positive{color:var(--acid)}.stat-trend.negative{color:#f49d7f}.stat-caption{color:var(--muted);font-family:DM Mono,monospace;font-size:10px;margin:0}.stat-rule{background:var(--acid);bottom:0;height:4px;left:0;position:absolute;right:0}.stat-asset{background:#e5ecd2}.workspace-grid{align-items:start;display:grid;grid-gap:22px;gap:22px;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr)}.entry-panel,.mini-panel{background:var(--paper-bright);border:1px solid rgba(24,34,27,.09);box-shadow:0 9px 28px rgba(24,34,27,.04)}.entry-panel{padding:30px 31px 25px}.archive-heading,.mini-heading,.panel-heading{align-items:flex-start;display:flex;justify-content:space-between}.panel-heading{border-bottom:1px solid var(--line);margin-bottom:26px;padding-bottom:21px}h2{font-size:37px}h2,h3{line-height:1;margin-bottom:0}h3{font-size:24px}.panel-number{color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.month-control{align-items:flex-end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 180px;margin-bottom:22px;position:relative}.field-label,.month-control label,.notes-field .field-label{display:block;font-size:11px;font-weight:700;letter-spacing:-.01em}.month-control input{background:var(--paper);border:1px solid var(--line);border-radius:0;color:var(--ink);min-height:41px;padding:0 11px}.month-control input:focus,input:focus,textarea:focus{border-color:var(--acid-dark);box-shadow:0 0 0 3px rgba(215,232,93,.25);outline:none}.month-state{bottom:12px;color:var(--muted);font-family:DM Mono,monospace;font-size:9px;gap:6px;position:absolute;right:190px;text-transform:uppercase}.month-state svg{color:var(--green);height:13px;width:13px}.field-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,1fr)}.amount-field{background:var(--paper);border-top:2px solid var(--ink);display:block;min-height:107px;padding:14px 13px 11px}.amount-field.income{border-top-color:var(--green)}.amount-field.asset{border-top-color:var(--acid-dark)}.amount-field.outflow{border-top-color:var(--coral)}.field-label{color:var(--ink)}.field-hint{color:var(--muted);display:block;font-family:DM Mono,monospace;font-size:9px;line-height:1.3;margin-top:4px;min-height:24px}.amount-input{align-items:center;display:flex;margin-top:7px}.amount-input>span{color:var(--muted);font-family:DM Mono,monospace;font-size:13px;margin-right:4px}.amount-input input{background:transparent;border:0;color:var(--ink);font-family:DM Mono,monospace;font-size:17px;min-width:0;padding:0;width:100%}.amount-input input:focus{box-shadow:none}input::placeholder,textarea::placeholder{color:#afb2a9;opacity:1}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.notes-field{display:block;margin-top:17px}.notes-field small{color:var(--muted);font-family:DM Mono,monospace;font-size:9px;font-weight:400;letter-spacing:.03em;margin-left:6px;text-transform:uppercase}.notes-field textarea{background:var(--paper);border:1px solid var(--line);border-radius:0;color:var(--ink);display:block;font-size:12px;line-height:1.5;margin-top:8px;padding:11px 12px;resize:vertical;width:100%}.entry-footer{align-items:center;border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:23px;padding-top:17px}.save-state{color:var(--green);font-family:DM Mono,monospace;font-size:9px;min-height:17px}.save-state .status-dot{margin-right:5px}.entry-actions{gap:14px}.primary-button{align-items:center;background:var(--ink);border:0;color:var(--paper-bright);display:inline-flex;font-family:DM Mono,monospace;font-size:10px;gap:18px;justify-content:center;letter-spacing:.05em;min-height:43px;padding:0 16px;transition:background .2s,transform .2s}.primary-button:hover:not(:disabled){background:var(--coral);transform:translateY(-2px)}.primary-button:disabled{cursor:wait;opacity:.55}.quiet-button{align-items:center;background:transparent;border:0;color:var(--muted);display:inline-flex;font-family:DM Mono,monospace;font-size:10px;gap:6px;padding:8px 0}.quiet-button:hover{color:var(--coral)}.side-stack{display:grid;grid-gap:22px;gap:22px}.mini-panel{padding:25px 25px 23px}.mini-heading{margin-bottom:25px}.chart-panel{background:var(--ink);color:var(--paper-bright);min-height:286px}.chart-panel .eyebrow,.chart-panel .panel-number{color:rgba(241,238,229,.55)}.chart{align-items:flex-end;display:flex;gap:12px;height:128px;justify-content:space-between;margin:4px 0 12px}.chart-column{align-items:center;flex:1 1;flex-direction:column;justify-content:flex-end}.bar-pair,.chart-column{display:flex;height:100%}.bar-pair{align-items:flex-end;gap:3px;justify-content:center;width:100%}.bar{display:block;min-height:8px;transition:height .5s ease;width:8px}.income-bar{background:var(--acid)}.expense-bar{background:var(--coral)}.chart-label{color:rgba(241,238,229,.5);margin-top:9px}.chart-label,.chart-legend{font-family:DM Mono,monospace;font-size:9px}.chart-legend{border-top:1px solid rgba(241,238,229,.16);color:rgba(241,238,229,.55);display:flex;gap:17px;padding-top:14px;text-transform:uppercase}.chart-legend span{align-items:center;display:flex;gap:6px}.chart-legend i{display:inline-block;height:7px;width:7px}.legend-income{background:var(--acid)}.legend-expense{background:var(--coral)}.empty-chart{align-items:center;color:rgba(241,238,229,.6);display:flex;height:145px;justify-content:center;text-align:center}.empty-chart span{color:var(--acid);font-family:Fraunces,Georgia,serif;font-size:52px;margin-right:14px}.empty-chart p{font-family:DM Mono,monospace;font-size:10px;line-height:1.5;margin:0}.totals-panel{background:var(--paper-deep);min-height:245px}.running-row{align-items:baseline;border-bottom:1px solid rgba(24,34,27,.1);display:flex;font-family:DM Mono,monospace;font-size:10px;justify-content:space-between;padding:11px 0}.running-row:first-of-type{border-top:1px solid rgba(24,34,27,.1)}.running-row span{color:var(--muted)}.running-row strong{font-size:12px;font-weight:500}.totals-note{color:var(--muted);font-family:DM Mono,monospace;font-size:9px;margin-top:18px}.archive-section{margin-top:74px}.archive-heading{align-items:flex-end;margin-bottom:16px;padding-bottom:18px}.archive-heading,.download-button{border-bottom:1px solid var(--ink)}.download-button{background:transparent;font-family:DM Mono,monospace;font-size:10px;gap:9px;padding-bottom:7px}.download-button:hover{color:var(--coral);border-color:var(--coral)}.archive-table-wrap{overflow-x:auto}.archive-table{border-collapse:collapse;min-width:730px;width:100%}.archive-table th{color:var(--muted);font-family:DM Mono,monospace;font-size:9px;font-weight:400;letter-spacing:.1em;padding:0 14px 11px;text-align:left;text-transform:uppercase}.archive-table td:first-child,.archive-table th:first-child{padding-left:0}.archive-table td{border-top:1px solid var(--line);font-family:DM Mono,monospace;font-size:12px;padding:17px 14px;white-space:nowrap}.archive-table tbody tr{transition:background .2s}.archive-table tbody tr.active-row,.archive-table tbody tr:hover{background:rgba(215,232,93,.14)}.archive-table .positive{color:var(--green)}.archive-table .negative{color:var(--coral)}.month-link{background:transparent;border:0;color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:18px;padding:0;text-align:left}.month-link small{color:var(--muted);display:block;font-family:DM Mono,monospace;font-size:9px;margin-top:3px}.month-link:hover{color:var(--coral)}.edit-button{background:transparent;border:0;color:var(--muted);font-family:DM Mono,monospace;font-size:10px;gap:5px;padding:5px 0}.edit-button:hover{color:var(--ink)}.empty-archive{border:1px dashed rgba(24,34,27,.2);flex-direction:column;min-height:180px;text-align:center}.empty-archive,.empty-mark{align-items:center;display:flex;justify-content:center}.empty-mark{background:var(--acid);font-size:26px;height:42px;margin-bottom:14px;transform:rotate(-4deg);width:42px}.empty-archive p,.empty-mark{font-family:Fraunces,Georgia,serif}.empty-archive p{font-size:22px;margin-bottom:5px}.empty-archive span{font-size:10px}.app-footer,.empty-archive span{color:var(--muted);font-family:DM Mono,monospace}.app-footer{border-top:1px solid var(--line);font-size:9px;justify-content:space-between;letter-spacing:.04em;margin-top:70px;padding-top:17px;text-transform:uppercase}.loading-page{align-items:center;background:var(--ink);color:var(--acid);display:flex;font-family:DM Mono,monospace;height:100vh;justify-content:center}.loading-stamp{font-size:11px;letter-spacing:.1em;text-transform:uppercase}.loading-stamp span{animation:blink 1.2s infinite;margin-left:4px;opacity:.4}.loading-stamp span:nth-child(2){animation-delay:.2s}.loading-stamp span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.15}50%{opacity:1}}.login-page{align-items:center;background:var(--ink);color:var(--paper);display:flex;height:100vh;justify-content:center;overflow:hidden;position:relative}.login-card{animation:rise .7s ease both;background:var(--paper-bright);box-shadow:var(--shadow);color:var(--ink);max-width:530px;padding:55px 59px 35px;position:relative;width:calc(100% - 40px);z-index:1}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-mark{align-items:center;background:var(--acid);display:flex;font-family:Fraunces,Georgia,serif;font-size:26px;height:49px;justify-content:center;margin-bottom:43px;transform:rotate(-5deg);width:49px}.login-card .eyebrow{margin-bottom:18px}.login-card h1{font-size:clamp(54px,7vw,82px);margin-bottom:24px}.login-intro{color:var(--muted);font-size:13px;line-height:1.75;max-width:355px}.login-form{border-top:1px solid var(--line);margin-top:33px;padding-top:25px}.login-form label{display:block;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;margin-bottom:9px;text-transform:uppercase}.password-wrap{align-items:center;background:var(--paper);border:1px solid var(--line);display:flex;gap:9px;padding:0 12px}.password-wrap svg{color:var(--muted);flex:0 0 auto}.password-wrap input{background:transparent;border:0;color:var(--ink);height:47px;outline:0;width:100%}.form-error{color:var(--coral);font-family:DM Mono,monospace;font-size:10px;margin:10px 0 0}.login-button{margin-top:15px;width:100%}.login-footer{align-items:center;color:var(--muted);display:flex;gap:7px;margin:28px 0 0}.login-footer,.login-side-note{font-family:DM Mono,monospace;font-size:9px}.login-side-note{bottom:40px;color:rgba(241,238,229,.25);letter-spacing:.16em;line-height:1.7;position:absolute;right:42px;text-align:right}.login-side-note span{color:var(--acid)}.orbit-one,.orbit-two{border:1px solid rgba(215,232,93,.18);border-radius:50%;height:630px;position:absolute;right:-240px;top:-200px;width:630px}.orbit-two{border-color:rgba(196,93,67,.25);height:380px;left:-180px;right:auto;top:auto;bottom:-130px;width:380px}.sr-only{clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:900px){.content-wrap{padding-top:53px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-main{min-height:145px}.workspace-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.topbar{padding:17px 19px}.brand-symbol{font-size:20px;height:36px;margin-right:10px;width:36px}.brand-name{font-size:9px}.brand-subtitle{font-size:8px}.private-chip{font-size:8px;padding:7px 8px}.content-wrap{padding:43px 19px 25px}.intro-row{align-items:flex-start;display:block;margin-bottom:37px}h1{font-size:56px}.intro-copy{margin-top:26px;max-width:320px}.stats-grid{gap:1px;grid-template-columns:repeat(2,1fr);margin-bottom:28px}.stat-card{min-height:140px;padding:16px 15px}.stat-value,.stat-value.small{font-size:24px;margin-top:26px}.stat-caption{font-size:8px}.workspace-grid{gap:16px}.entry-panel{padding:22px 17px 18px}h2{font-size:32px}.month-control{align-items:stretch;display:block}.month-control input{display:block;margin-top:8px;width:100%}.month-state{bottom:11px;right:11px}.field-grid{grid-template-columns:repeat(2,1fr)}.amount-field{min-height:111px;padding:12px 10px 10px}.field-hint{font-size:8px}.entry-footer{align-items:flex-end;display:block}.entry-actions{justify-content:flex-end;margin-top:12px}.side-stack{grid-template-columns:1fr}.mini-panel{padding:22px 18px 20px}.archive-section{margin-top:51px}.archive-heading{align-items:flex-start;display:block}.download-button{margin-top:18px}.app-footer{align-items:flex-start;line-height:1.7}.app-footer,.app-footer span{display:block}.app-footer span+span{margin-top:5px}.login-card{padding:37px 27px 28px}.login-mark{margin-bottom:35px}.login-card h1{font-size:59px}.login-side-note{bottom:17px;font-size:8px;right:18px}}