@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Cormorant+Garamond:wght@600;700&display=swap";:root,[data-theme=light]{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .75vw, 1.5rem);--text-xl:clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--color-bg:#f7f2e8;--color-surface:#fffdf8;--color-surface-2:#fffaf1;--color-surface-offset:#efe4d1;--color-divider:#ddcfb5;--color-border:#cdbb98;--color-text:#17130c;--color-text-muted:#675d4c;--color-text-faint:#a99d89;--color-text-inverse:#fffaf1;--color-primary:#17231f;--color-primary-hover:#0d1714;--color-primary-highlight:#efe5cf;--color-gold:#c8a24a;--color-gold-soft:#f1e4bf;--color-gold-deep:#8e6f22;--color-warning:#965d1c;--color-warning-highlight:#f3dfb8;--color-error:#8d2e42;--color-error-highlight:#edd3d8;--color-success:#3d6429;--color-success-highlight:#dce8cf;--color-blue:#315f7c;--color-blue-highlight:#d9e5ea;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px oklch(20% .01 80/.06);--font-body:"Barlow Condensed", "Inter", sans-serif;--font-display:"Cormorant Garamond", Georgia, serif;color:var(--color-text);background:var(--color-bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth}body{background:radial-gradient(circle at top left, color-mix(in oklab, var(--color-gold-soft), transparent 8%), transparent 34rem), linear-gradient(180deg, #13201d 0, #13201d 24rem, var(--color-bg) 24rem);min-width:320px;min-height:100dvh;color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);margin:0;line-height:1.6}button,input{font:inherit}button{cursor:pointer;border:none}a,button,input{transition:color .18s cubic-bezier(.16,1,.3,1),background .18s cubic-bezier(.16,1,.3,1),border-color .18s cubic-bezier(.16,1,.3,1),box-shadow .18s cubic-bezier(.16,1,.3,1)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{left:var(--space-4);top:var(--space-4);z-index:10;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-2) var(--space-4);text-decoration:none;position:fixed;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-shell{width:min(1240px, calc(100% - var(--space-8)));padding:var(--space-8) 0 var(--space-10);margin:0 auto}.hero{padding:var(--space-8) 0 var(--space-10)}.hero-grid{gap:var(--space-6);grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:end;display:grid}.eyebrow,.step,.result-card span,.explain-card span,.final-answer span{color:var(--color-gold-deep);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:800}.hero .eyebrow{color:var(--color-gold)}.hero h1{max-width:760px;margin:var(--space-3) 0 var(--space-4);color:var(--color-text-inverse);font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(2.35rem,5vw,4.5rem);font-weight:700;line-height:.95}.hero p{border-left:3px solid var(--color-gold);max-width:720px;color:var(--color-text-inverse);font-size:var(--text-lg);letter-spacing:.01em;padding:var(--space-3) var(--space-4);background:oklab(23.0288% -.0191036 .000492692/.82);margin:0;line-height:1.35}.status-card,.result-card,.input-panel,.result-panel,.explain-card,.plain-note{border:1px solid color-mix(in oklab, var(--color-border), transparent 15%);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-sm)}.status-card{padding:var(--space-5)}.status-card strong{margin:var(--space-2) 0;color:var(--color-text);font-size:var(--text-lg);line-height:1.2;display:block}.status-card p{color:var(--color-text-muted);font-size:var(--text-sm)}.status-card.good{background:color-mix(in oklab, var(--color-success-highlight), var(--color-surface) 72%)}.status-card.warn{background:color-mix(in oklab, var(--color-warning-highlight), var(--color-surface) 60%)}.status-card.bad{background:color-mix(in oklab, var(--color-error-highlight), var(--color-surface) 60%)}.top-results{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.top-results.in-panel{grid-template-columns:1fr}.result-card{padding:var(--space-5)}.result-card strong{margin:var(--space-3) 0 var(--space-2);color:var(--color-text);font-size:var(--text-xl);letter-spacing:-.04em;font-weight:800;line-height:1;display:block}.result-card p{color:var(--color-text-muted);font-size:var(--text-sm)}.result-card.primary{background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface) 60%)}.result-card.success{background:color-mix(in oklab, var(--color-success-highlight), var(--color-surface) 58%)}.calculator-grid{gap:var(--space-6);grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);align-items:start;display:grid}.input-panel,.result-panel{padding:var(--space-6)}.input-panel{top:var(--space-4);position:sticky}.panel-heading{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:auto 1fr;align-items:start;display:grid}.panel-heading.with-space{margin-top:var(--space-8)}.loan-costs-section{margin:var(--space-8) 0 var(--space-4);border:1px solid color-mix(in oklab, var(--color-border), transparent 10%);border-radius:var(--radius-xl);background:color-mix(in oklab, var(--color-surface-offset), var(--color-surface) 35%);padding:var(--space-5)}.panel-heading h2{margin:0 0 var(--space-1);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;line-height:1.15}.panel-heading p{color:var(--color-text-muted);font-size:var(--text-sm)}.step{border-radius:var(--radius-full);background:var(--color-gold-soft);padding:var(--space-2) var(--space-3)}.field{margin-bottom:var(--space-4);display:block}.choice-group{margin:0 0 var(--space-4);border:none;padding:0}.choice-group legend{margin-bottom:var(--space-2);color:var(--color-text);font-size:var(--text-sm);font-weight:750}.choice-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.choice-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-card{border:1px solid color-mix(in oklab, var(--color-border), transparent 10%);border-radius:var(--radius-lg);background:var(--color-surface-2);min-height:118px;padding:var(--space-4);text-align:left}.choice-card:hover,.choice-card:focus-visible{border-color:var(--color-primary);background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface-2) 70%)}.choice-card.selected{border-color:var(--color-gold-deep);background:color-mix(in oklab, var(--color-gold-soft), var(--color-surface-2) 42%);box-shadow:inset 0 0 0 1px var(--color-gold-deep)}.choice-card span{margin-bottom:var(--space-2);color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800;display:block}.choice-card strong{color:var(--color-text);font-size:var(--text-sm);line-height:1.25;display:block}.choice-card small{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.35;display:block}.choice-card.compact{min-height:108px}.choice-card.count-card,.choice-card.term-card{text-align:center;min-height:78px}.choice-card.count-card strong{font-size:var(--text-lg)}.choice-card.term-card strong{font-size:var(--text-sm)}.security-property-stack{gap:var(--space-4);margin-bottom:var(--space-4);display:grid}.security-property-card{--property-accent:var(--color-gold-deep);--property-soft:var(--color-gold-soft);border:1px solid color-mix(in oklab, var(--property-accent), transparent 45%);border-radius:var(--radius-xl);background:linear-gradient(90deg, color-mix(in oklab, var(--property-accent), transparent 8%) 0, color-mix(in oklab, var(--property-accent), transparent 8%) .45rem, transparent .45rem), color-mix(in oklab, var(--property-soft), var(--color-surface-2) 74%);padding:var(--space-4)}.security-property-card.property-1{--property-accent:#c8a24a;--property-soft:#f3e7c6}.security-property-card.property-2{--property-accent:#315f7c;--property-soft:#d9e5ea}.security-property-card.property-3{--property-accent:#6a5932;--property-soft:#e7dec9}.security-property-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-divider);padding-bottom:var(--space-3);display:flex}.security-property-heading span{color:var(--property-accent);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.security-property-heading strong{color:var(--color-text);font-size:var(--text-sm);font-weight:800}.field-label,.field-help{display:block}.field-label{color:var(--color-text);font-size:var(--text-sm);font-weight:750}.field-help{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs)}.input-shell{align-items:center;gap:var(--space-2);border:1px solid color-mix(in oklab, var(--color-blue), transparent 50%);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--color-blue-highlight), var(--color-surface-2) 72%);min-height:48px;padding:0 var(--space-4);display:flex}.input-shell span{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:700}.input-shell input{width:100%;color:var(--color-text);font-size:var(--text-base);background:0 0;border:none;outline:none;font-weight:750}.rule-output{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid color-mix(in oklab, var(--color-primary), transparent 45%);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface-2) 58%);min-height:48px;padding:var(--space-3) var(--space-4);display:flex}.rule-output strong{color:var(--color-text);font-size:var(--text-base);font-weight:800}.rule-output span{color:var(--color-text-muted);font-size:var(--text-xs);text-align:right;font-weight:700}.rate-rules{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rate-rules span{border-radius:var(--radius-md);background:var(--color-surface-offset);color:var(--color-text-muted);font-size:var(--text-xs);padding:var(--space-2);text-align:center;font-weight:700;line-height:1.3}.plain-formula,.plain-note,.placeholder-panel,.need-card{padding:var(--space-4)}.plain-formula,.placeholder-panel{gap:var(--space-1);border-radius:var(--radius-lg);background:var(--color-surface-offset);color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.plain-formula strong,.plain-note strong,.placeholder-panel strong{color:var(--color-text)}.lvr-formula{margin-top:var(--space-3);border:1px solid color-mix(in oklab, var(--color-primary), transparent 62%);background:var(--color-surface-2)}.lvr-formula span{color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.03em;font-weight:800}.lvr-formula small{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.45}.lvr-limit-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-2) 0;border-radius:var(--radius-md);background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface-2) 58%);padding:var(--space-3);display:flex}.lvr-limit-row small{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700}.lvr-limit-row b{color:var(--color-text);font-size:var(--text-sm);text-align:right;font-weight:850}.need-card{margin-bottom:var(--space-4);border:1px solid color-mix(in oklab, var(--color-border), transparent 15%);border-radius:var(--radius-xl)}.need-card.good{background:color-mix(in oklab, var(--color-success-highlight), var(--color-surface) 58%)}.need-card.warn{background:color-mix(in oklab, var(--color-warning-highlight), var(--color-surface) 58%)}.need-card span{color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.gross-loan-output{gap:var(--space-2);margin:0 0 var(--space-4);border:1px solid color-mix(in oklab, var(--color-primary), transparent 45%);border-radius:var(--radius-xl);background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface-2) 54%);padding:var(--space-5);display:grid}.gross-loan-output.blocked{border-color:color-mix(in oklab, var(--color-error), transparent 24%);background:color-mix(in oklab, var(--color-error-highlight), var(--color-surface-2) 44%)}.gross-loan-output span{color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.gross-loan-output.blocked>span{color:var(--color-error)}.gross-loan-output strong{color:var(--color-text);letter-spacing:-.055em;font-size:clamp(2rem,4vw,3rem);font-weight:850}.gross-loan-output p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.55}.gross-loan-output.blocked p{color:color-mix(in oklab, var(--color-error), var(--color-text) 28%);font-weight:700}.gross-loan-mini-breakdown{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gross-loan-mini-breakdown div{border-radius:var(--radius-md);background:color-mix(in oklab, var(--color-surface-2), white 22%);padding:var(--space-3)}.gross-loan-mini-breakdown span{margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:0;text-transform:none;display:block}.gross-loan-mini-breakdown strong{color:var(--color-text);font-size:var(--text-base);letter-spacing:-.03em}.automated-cost-note{margin-bottom:var(--space-4);border:1px solid color-mix(in oklab, var(--color-border), transparent 12%);border-radius:var(--radius-lg);background:var(--color-surface-offset);padding:var(--space-4)}.automated-cost-note strong{color:var(--color-text);font-size:var(--text-sm);margin-bottom:var(--space-1);display:block}.automated-cost-note p{color:var(--color-text-muted);font-size:var(--text-xs);margin:0;line-height:1.45}.private-lender-note{margin-bottom:var(--space-4);border:1px solid color-mix(in oklab, var(--color-warning), transparent 32%);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--color-warning-highlight), var(--color-surface) 58%);padding:var(--space-4)}.private-lender-note strong{margin-bottom:var(--space-1);color:var(--color-text);font-size:var(--text-sm);display:block}.private-lender-note p{color:color-mix(in oklab, var(--color-warning), var(--color-text) 35%);font-size:var(--text-sm);margin:0;line-height:1.5}.monthly-interest-note{margin-bottom:var(--space-4);border:1px solid color-mix(in oklab, var(--color-blue), transparent 40%);border-radius:var(--radius-xl);background:color-mix(in oklab, var(--color-blue-highlight), var(--color-surface) 58%);padding:var(--space-5)}.monthly-interest-note span{color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800;display:block}.monthly-interest-note strong{margin:var(--space-2) 0;color:var(--color-text);font-size:var(--text-xl);letter-spacing:-.04em;line-height:1;display:block}.monthly-interest-note p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.need-card strong{margin:var(--space-2) 0;color:var(--color-text);font-size:var(--text-lg);line-height:1.1;display:block}.need-card p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.reset-button{border-radius:var(--radius-lg);background:var(--color-primary);width:100%;min-height:48px;color:var(--color-text-inverse);font-weight:800}.reset-button:hover{background:var(--color-primary-hover)}.explain-card{padding:var(--space-5);margin-bottom:var(--space-4);background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface) 65%)}.explain-card strong,.final-answer strong{margin:var(--space-2) 0;color:var(--color-text);font-size:var(--text-xl);letter-spacing:-.04em;line-height:1;display:block}.explain-card p,.final-answer p,.plain-note p{color:var(--color-text-muted);font-size:var(--text-sm)}.breakdown,.deduction-list{border-radius:var(--radius-xl);background:var(--color-surface-2);border:1px solid var(--color-border);margin-bottom:var(--space-4);overflow:hidden}.breakdown div,.deduction-list div{gap:var(--space-3);border-bottom:1px solid var(--color-divider);padding:var(--space-4);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.breakdown div:last-child,.deduction-list div:last-child{border-bottom:none}.breakdown span,.deduction-list span{color:var(--color-text-muted);font-size:var(--text-sm)}.breakdown strong,.deduction-list strong{color:var(--color-text);font-size:var(--text-sm);text-align:right}.highlight-line,.gross-line{background:color-mix(in oklab, var(--color-primary-highlight), var(--color-surface-2) 55%)}.gross-line strong{font-weight:850}.deduction-list h3{border-bottom:1px solid var(--color-divider);padding:var(--space-4);color:var(--color-text);font-size:var(--text-base);margin:0}.deduction-list small{color:var(--color-text-muted);font-size:var(--text-xs);grid-column:1/-1}.total-line{background:color-mix(in oklab, var(--color-warning-highlight), var(--color-surface-2) 62%)}.final-answer{border-radius:var(--radius-xl);background:color-mix(in oklab, var(--color-success-highlight), var(--color-surface) 55%);padding:var(--space-5);margin-bottom:var(--space-4)}footer{margin-top:var(--space-8);color:var(--color-text-muted);font-size:var(--text-xs)}@media (width<=980px){.app-shell{width:min(100% - var(--space-4), 760px)}.hero-grid,.calculator-grid,.top-results{grid-template-columns:1fr}.input-panel{position:static}}@media (width<=560px){.app-shell,.hero{padding-top:var(--space-4)}.status-card,.result-card,.input-panel,.result-panel{border-radius:var(--radius-lg);padding:var(--space-4)}.panel-heading,.choice-grid,.choice-grid.three,.choice-grid.four,.rate-rules{grid-template-columns:1fr}}
