.mortgage-page{--bg:#f7f4ef;--bg-soft:#efeae0;--ink:#0d0d0d;--ink-soft:#4a4a4a;--muted:#8a8680;--line:#e8e1d4;--line-strong:#d8d0bf;--accent:#c8956c;--accent-dark:#a87a54;--accent-soft:#e5cba7;--success:#2d9d6e;--card:#fff;background:var(--bg);color:var(--ink);font-family:var(--font-manrope), system-ui, -apple-system, sans-serif;-webkit-font-smoothing:antialiased}.mortgage-page *,.mortgage-page :before,.mortgage-page :after{box-sizing:border-box}.font-brand{font-family:var(--font-nanum), "Playfair Display", Georgia, serif}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}[data-reveal]{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}[data-reveal].revealed{opacity:1;transform:none}.hero-grid{background-image:linear-gradient(#c8956c12 1px,#0000 1px),linear-gradient(90deg,#c8956c12 1px,#0000 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(#000 40%,#0000 80%);mask-image:radial-gradient(#000 40%,#0000 80%)}@keyframes float-slow{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(20px,-30px)rotate(6deg)}}.float-orb{filter:blur(60px);pointer-events:none;border-radius:50%;animation:18s ease-in-out infinite float-slow;position:absolute}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}.live-dot{animation:2s ease-in-out infinite pulse-dot}.m-slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;outline:none;width:100%;height:4px;margin:14px 0 6px}.m-slider::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--val,50%), var(--line-strong) var(--val,50%), var(--line-strong) 100%);border-radius:999px;height:4px}.m-slider::-moz-range-track{background:var(--line-strong);border-radius:999px;height:4px}.m-slider::-moz-range-progress{background:var(--accent);border-radius:999px;height:4px}.m-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:2px solid var(--accent);background:#fff;border-radius:50%;width:22px;height:22px;margin-top:-9px;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 14px #c8956c59,0 1px #0000000a}.m-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.m-slider::-webkit-slider-thumb:active{transform:scale(1.18);box-shadow:0 6px 20px #c8956c8c}.m-slider::-moz-range-thumb{border:2px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:22px;height:22px;box-shadow:0 4px 14px #c8956c59}.m-slider:focus-visible{outline:none}.m-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 6px #c8956c33,0 4px 14px #c8956c66}.program-chip{border:1px solid var(--line-strong);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex}.program-chip:hover{border-color:var(--accent);color:var(--ink);transform:translateY(-1px)}.program-chip[data-active=true]{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 6px 20px #0d0d0d2e}.program-chip[data-active=true] .chip-rate{color:var(--accent-soft)}.chip-rate{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.mk-chip{border:1px solid var(--line-strong);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600}.mk-chip[data-active=true]{background:var(--bg-soft);border-color:var(--accent);color:var(--ink)}.combo-pockets{gap:8px;margin-top:18px;display:grid}.combo-pocket{color:#ffffff8c;background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;font-size:12px;display:flex}.combo-pocket strong{color:#fff;font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.pay-card{color:#fff;background:linear-gradient(145deg,#15140f 0%,#0d0d0d 100%);border-radius:24px;padding:36px 32px;position:relative;overflow:hidden;box-shadow:0 30px 80px -20px #0d0d0d59,inset 0 0 0 1px #ffffff0a}.pay-card:before{content:"";pointer-events:none;background:radial-gradient(600px at 10% 0,#c8956c2e,#0000 50%),radial-gradient(400px at 100% 100%,#c8956c1a,#0000 60%);position:absolute;inset:-2px}.pay-card-inner{z-index:1;position:relative}.pay-number{font-family:var(--font-nanum), serif;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 0%,#e5cba7 70%,#c8956c 100%);-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:400;line-height:1;display:inline-block}.m-input{border:none;border-bottom:1px solid var(--line-strong);width:100%;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;outline:none;padding:10px 0;font-family:inherit;font-size:22px;font-weight:600;transition:border-color .2s}.m-input:focus{border-color:var(--accent)}.m-toggle{background:var(--bg-soft);border:1px solid var(--line);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px;font-size:11px;font-weight:600;display:inline-flex}.m-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px;transition:all .25s}.m-toggle button[data-active=true]{color:var(--ink);background:#fff;box-shadow:0 2px 6px #00000014}.donut-track{stroke:#ffffff14}.donut-principal{stroke:#e5cba7}.donut-interest{stroke:#c8956c}.bank-card{border:1px solid var(--line);background:#fff;border-radius:18px;align-items:center;gap:18px;padding:20px 22px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.bank-card:hover{border-color:var(--accent-soft);transform:translateY(-2px);box-shadow:0 14px 40px -8px #c8956c33}.bank-best-badge{background:var(--ink);color:#fff;letter-spacing:.15em;text-transform:uppercase;border-radius:999px;padding:5px 10px;font-size:9px;font-weight:700;position:absolute;top:0;right:20px;transform:translateY(-50%)}.bank-logo-wrap{background:var(--bg-soft);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden}.api-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:28px 26px;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.api-card:before{content:"";background:linear-gradient(135deg, var(--accent-soft) 0%, transparent 30%);opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.api-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 50px -12px #c8956c40}.api-card:hover:before{opacity:1}.api-card-icon{background:var(--bg-soft);width:48px;height:48px;color:var(--accent-dark);border-radius:12px;justify-content:center;align-items:center;margin-bottom:18px;transition:all .3s;display:flex}.api-card:hover .api-card-icon{background:var(--ink);color:var(--accent-soft)}.btn-primary{background:var(--ink);color:#fff;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:16px 28px;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative;overflow:hidden}.btn-primary:before{content:"";background:linear-gradient(135deg, var(--accent-dark), var(--accent));opacity:0;transition:opacity .3s;position:absolute;inset:0}.btn-primary span{z-index:1;position:relative}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px -8px #0d0d0d59}.btn-primary:hover:before{opacity:1}.btn-ghost{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:10px;padding:14px 22px;font-size:13px;font-weight:600;transition:all .25s;display:inline-flex}.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff}.btn-bank{background:var(--bg-soft);color:var(--ink);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:9px 16px;font-size:11px;font-weight:700;transition:all .2s}.btn-bank:hover{background:var(--ink);color:#fff}.timeline-bar{transition:all .6s cubic-bezier(.16,1,.3,1)}.timeline-bar:hover{filter:brightness(1.08)}.code-block{color:#e8e1d4;white-space:pre;background:#0d0d0d;border:1px solid #ffffff0f;border-radius:14px;padding:24px 22px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;overflow-x:auto}.code-block .tok-key{color:#e5cba7}.code-block .tok-str{color:#c8956c}.code-block .tok-com{color:#5a5752;font-style:italic}.code-block .tok-tag{color:#8fb2d3}.tab-pill{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .2s}.tab-pill[data-active=true]{color:var(--ink);border-color:var(--line-strong);background:#fff;box-shadow:0 3px 8px #0000000a}.afford-meter{background:var(--bg-soft);border-radius:999px;height:8px;position:relative;overflow:hidden}.afford-fill{border-radius:999px;height:100%;transition:width .7s cubic-bezier(.16,1,.3,1),background-color .35s}.sched-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.sched-table th{text-align:left;background:var(--bg-soft);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:14px 16px;font-size:10px;font-weight:700}.sched-table th:not(:first-child){text-align:right}.sched-table td{border-bottom:1px solid var(--line);color:var(--ink-soft);padding:12px 16px}.sched-table td:not(:first-child){text-align:right}.sched-table tr:hover td{background:#c8956c0a}.gold-line{background:linear-gradient(90deg, var(--accent) 0%, transparent 100%);width:40px;height:2px;display:inline-block}.info-dot{background:var(--bg-soft);width:14px;height:14px;color:var(--muted);cursor:help;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;font-size:9px;font-weight:700;display:inline-flex}@keyframes scale-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.popup-scale{animation:.35s cubic-bezier(.16,1,.3,1) scale-in}.popup-fade{animation:.3s fade-in}
