*{box-sizing:border-box}html{background:var(--canvas);color:var(--ink);overflow-x:clip}body{min-height:100vh;font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}button,input,select{font:inherit}button{color:inherit}button,summary,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 65%, transparent);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.yen-mark{vertical-align:super;color:var(--muted);margin-right:.12em;font-size:.5em;font-style:normal;display:inline-block}.digit-comma{opacity:.45;padding:0 .02em}.digit-tail{color:var(--muted);font-size:.72em}.unit-sub{font-size:.55em;font-family:var(--body);opacity:.7;margin-left:.2em;font-style:normal}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;font-size:10px;font-weight:500;display:block}.negative{color:var(--expense)!important}.attention{color:var(--attention)!important}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--rule);background:var(--canvas);justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px clamp(16px,3vw,40px);display:flex}.brand-button{background:0 0;border:0;align-items:center;gap:10px;padding:0;display:inline-flex}.brand-mark{background:var(--band);width:32px;height:32px;color:var(--band-fg);font:500 18px/1 var(--display);border-radius:2px;place-items:center;display:grid}.brand-label{font-family:var(--mincho);letter-spacing:.02em;font-size:15px;font-weight:500}.header-actions{align-items:center;gap:8px;display:flex}.quiet-button,.primary-button{border:1px solid var(--rule);min-height:44px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:0 0;border-radius:2px;padding:0 14px;font-size:11px;font-weight:500}.quiet-button:hover{color:var(--ink);border-color:color-mix(in srgb, var(--rule) 60%, var(--ink))}.primary-button{border-color:var(--band);background:var(--band);color:var(--band-fg)}.primary-button:hover{background:color-mix(in srgb, var(--band) 88%, white)}.large{min-height:50px;padding-inline:20px}.shelf-main{max-width:1280px;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(16px,4vw,56px) 88px}.shelf-intro{border-bottom:1px solid var(--rule);grid-template-columns:minmax(320px,1.15fr) minmax(260px,.85fr);align-items:end;column-gap:8vw;padding-bottom:40px;display:grid}.shelf-intro .eyebrow{grid-column:1;margin-bottom:16px}.shelf-intro h1{font-family:var(--mincho);letter-spacing:.01em;text-wrap:balance;grid-column:1;margin:0;font-size:clamp(36px,5.5vw,64px);font-weight:500;line-height:1.15}.shelf-intro p{color:var(--muted);grid-area:2/2;margin:0 0 20px;font-size:14px;line-height:1.85}.shelf-intro>div{flex-wrap:wrap;grid-column:2;gap:8px;display:flex}.model-shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:28px;display:grid}.model-card,.new-model-tile{border:1px solid var(--rule);background:var(--surface);border-radius:2px;min-height:320px;position:relative;overflow:hidden}.model-open{text-align:left;background:0 0;border:0;width:100%;height:100%;padding:28px 22px 48px}.model-open:hover{background:color-mix(in srgb, var(--surface) 92%, var(--income) 8%)}.model-index{color:var(--muted);font:500 12px var(--mono);letter-spacing:.08em}.model-open h2{min-height:52px;font-family:var(--mincho);text-wrap:balance;margin:14px 0 20px;font-size:20px;font-weight:500}.model-open>strong{color:var(--outcome);font:400 clamp(34px, 3.4vw, 46px)/.95 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:block}.model-open>strong.negative{color:var(--expense)!important}.model-open>span:not(.model-index){color:var(--muted);letter-spacing:.04em;font-size:11px}.model-open dl{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:8px;margin:22px 0 14px;padding-top:14px;display:grid}.model-open dl div{flex-direction:column;gap:4px;display:flex}.model-open dt{color:var(--muted);font-size:11px}.model-open dd{font-family:var(--display);font-variant-numeric:tabular-nums;margin:0;font-size:18px}.model-open p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden}.delete-model{z-index:2;min-height:32px;color:var(--muted);text-underline-offset:2px;background:0 0;border:0;font-size:10.5px;text-decoration:underline;position:absolute;bottom:12px;right:16px}.delete-model:hover{color:var(--expense)}.new-model-tile{color:var(--muted);border-style:dashed;align-content:center;place-items:center;gap:14px;display:grid}.new-model-tile:hover{color:var(--ink)}.new-model-tile span{border:1px solid var(--rule);place-items:center;width:44px;height:44px;font-size:22px;display:grid}.editor-layout{grid-template-columns:minmax(300px,340px) minmax(0,1fr);max-width:1580px;margin:0 auto;display:grid}.assumption-rail{background:var(--rail);border-right:1px solid var(--rule);min-width:0;padding:22px 18px 96px}.rail-eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-size:10px}.rail-field{margin-bottom:16px;display:block}.rail-field>span,.mini-field>span,.event-fields label>span{letter-spacing:.04em;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:500;display:block}.model-name-input,.rail-input-mono,.event-fields input,.event-fields select,.mini-field select{border:none;border-bottom:1px solid var(--rule);width:100%;color:var(--ink);font-family:var(--body);background:0 0;border-radius:0;outline:none;min-height:44px;padding:6px 0 7px;font-size:13.5px;display:block}.model-name-input:focus,.rail-input-mono:focus,.event-fields input:focus,.event-fields select:focus,.mini-field select:focus{border-bottom-color:var(--ink)}.rail-input-mono,.event-fields input[type=number],.input-unit input{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.horizon-pickers{grid-template-columns:1fr 1fr;gap:12px 10px;display:grid}.horizon-pickers .rail-field{margin-bottom:0}.horizon-derived{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);margin:8px 0 0;font-size:12px}.horizon-pickers+.horizon-derived+.field-note--warn{margin-top:6px}.input-group{border-top:1px solid var(--rule);margin-top:28px;padding-top:18px}.input-group-title{font-family:var(--mincho);letter-spacing:.02em;color:var(--ink);margin:0 0 14px;font-size:15px;font-weight:500}.event-row-shell{align-items:stretch;gap:6px;margin-bottom:8px;display:flex}.event-row-shell .event-row{flex:1;min-width:0;margin-bottom:0;transition:box-shadow .16s}.event-row-shell.is-dragging{opacity:.65}.event-row-shell.is-dragging .event-row{box-shadow:0 4px 18px #1b18152e,0 16px 44px #1b181524}.drop-indicator{background:var(--ink);border-radius:1px;height:2px;margin:4px 0}.grip-rail{flex-direction:column;flex:none;align-items:center;gap:4px;width:22px;padding-top:10px;display:flex}.event-grip{width:22px;height:22px;color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:2px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.event-grip:active{cursor:grabbing}.event-grip:focus-visible{outline:2px solid color-mix(in srgb, var(--focus) 65%, transparent);outline-offset:2px}.grip-move-buttons{flex-direction:column;gap:4px;display:none}.grip-rail:focus-within .grip-move-buttons{display:flex}.grip-move-buttons button{border:1px solid var(--rule);background:var(--surface);min-width:22px;min-height:44px;color:var(--muted);border-radius:2px;padding:0;font-size:11px}.grip-move-buttons button:hover:not(:disabled),.grip-move-buttons button:focus-visible{color:var(--ink);border-color:color-mix(in srgb, var(--rule) 60%, var(--ink))}.grip-move-buttons button:disabled{opacity:.35;cursor:not-allowed}.event-row{background:var(--surface);border:1px solid var(--rule);border-left-width:2px;border-radius:2px;margin-bottom:8px;padding:12px 14px}.event-row--income{border-left-color:var(--income)}.event-row--expense{border-left-color:var(--expense)}.event-row--investment{border-left-color:var(--investment)}.event-row summary{cursor:pointer;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;min-height:40px;padding:0;list-style:none;display:grid}.event-row summary::-webkit-details-marker{display:none}.event-name{color:var(--ink);font-size:13px;font-weight:500}.event-row summary small{color:var(--muted);font-size:10.5px}.event-sign{font-family:var(--mono);font-size:14px;font-weight:700}.income-sign{color:var(--income)}.expense-sign{color:var(--expense)}.investment-sign{color:var(--investment)}.event-fields{grid-template-columns:1fr 1fr;gap:12px 8px;padding:10px 0 0;display:grid}.wide-field,.range-fields,.field-note,.event-fields .text-button{grid-column:1/-1}.range-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.input-unit{border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.input-unit input{background:0 0;border:0;border-radius:0;min-width:0;min-height:40px;padding:6px 0}.input-unit:focus-within{border-bottom-color:var(--ink)}.input-unit b{color:var(--muted);padding-bottom:10px;font-size:10.5px;font-weight:400}.field-note{color:var(--muted);margin:0;font-size:10.5px;line-height:1.55}.field-note--warn{color:var(--attention)}.text-button{min-height:36px;color:var(--muted);text-underline-offset:2px;background:0 0;border:0;justify-self:end;padding:0;font-size:10.5px;text-decoration:underline}.danger:hover{color:var(--expense)}.add-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.add-grid button{appearance:none;border:1px dashed var(--rule);min-height:40px;color:var(--muted);font-family:var(--body);letter-spacing:.02em;text-align:center;background:0 0;border-radius:2px;padding:8px 10px;font-size:11px;font-weight:500}.add-grid button:hover,.add-grid button:focus-visible{color:var(--ink);border-style:solid}.analysis-canvas{min-width:0}.verdict-band{background:var(--band);color:var(--band-fg);border-radius:0;padding:clamp(28px,3.5vw,40px) clamp(20px,3vw,32px) 26px}.verdict-eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;opacity:.72;margin-bottom:20px;font-size:10.5px}.verdict-row{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.verdict-main{flex:1;min-width:0}.verdict-label{opacity:.72;margin:0 0 6px;font-size:12px}.verdict-figure{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--band-fg);margin:0;font-size:clamp(42px,6vw,68px);font-weight:400;line-height:.95;display:block}.verdict-figure.negative{color:#f0b9a8!important}.verdict-figure .yen-mark{color:color-mix(in srgb, var(--band-fg) 55%, transparent)}.verdict-figure .digit-tail{color:color-mix(in srgb, var(--band-fg) 62%, transparent)}.verdict-note{max-width:52ch;color:color-mix(in srgb, var(--band-fg) 76%, transparent);margin:14px 0 0;font-size:13px;line-height:1.7}.verdict-metrics{flex-direction:column;flex-shrink:0;gap:14px;min-width:132px;margin:0;display:flex}.verdict-metrics dt{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-bottom:3px;font-size:10.5px;display:block}.verdict-metrics dd{font-family:var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:0;font-size:18px}.verdict-metrics small{opacity:.62;margin-top:4px;font-size:10.5px;line-height:1.4;display:block}.analysis-body{padding:28px 28px 32px}.analysis-section{margin-bottom:36px}.section-heading{grid-template-columns:auto 1fr;align-items:flex-start;gap:8px 16px;margin-bottom:18px;display:grid}.section-numeral{font-family:var(--display);color:var(--ink);opacity:.28;letter-spacing:-.03em;grid-row:1/span 2;font-size:42px;line-height:.9}.section-heading h2{font-family:var(--mincho);letter-spacing:.02em;text-wrap:balance;margin:0;font-size:clamp(20px,2.2vw,22px);font-weight:500}.section-summary{color:var(--muted);grid-column:2;margin:0;font-size:13px;line-height:1.65}.chart-frame{background:var(--surface);border:1px solid var(--rule);border-radius:2px;padding:8px 4px 4px;overflow:hidden}.chart{width:100%;height:auto;display:block;overflow:visible}.grid-line{stroke:var(--rule);stroke-width:1px;opacity:.45}.zero-line{stroke:var(--ink);stroke-width:1.5px;opacity:.7}.connector{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3;opacity:.55}.waterfall-bar{transition:y .18s,height .18s}.zero-marker{stroke:color-mix(in srgb, var(--muted) 70%, transparent);stroke-width:2px}.zero-marker-dot{fill:color-mix(in srgb, var(--muted) 80%, transparent)}.chart-value{fill:var(--ink);font-family:var(--display);font-size:12px}.chart-value--neg{fill:var(--expense)}.chart-value--muted{fill:var(--muted);opacity:.7}.chart-value--end{fill:var(--outcome)}.chart-label,.axis-label{fill:var(--muted);font-family:var(--body);font-size:10px}.calibration-tick{stroke:var(--ink);opacity:.45}.projection-line{fill:none;stroke-width:2px;transition:d .18s}.projection-line--above{stroke:var(--income)}.projection-line--below{stroke:var(--expense)}.curve-point--crossing{fill:var(--outcome)}.curve-point-ring{fill:none;stroke:var(--expense);stroke-width:1.2px;opacity:.7}.curve-point--end{fill:var(--outcome)}.knot-text{fill:var(--muted);font-family:var(--display);font-size:11px}.table-alternative{margin-top:14px}.table-alternative summary{width:fit-content;color:var(--muted);text-underline-offset:3px;font-size:11px;text-decoration:underline}.table-scroll{max-width:100%;margin-top:14px;overflow-x:auto}.table-alternative table{border-collapse:collapse;width:100%;min-width:520px;font-size:12px}.table-alternative th,.table-alternative td{border-bottom:1px solid var(--rule);text-align:right;white-space:nowrap;padding:8px 12px}.table-alternative th:first-child{text-align:left}.table-alternative td{font-family:var(--mono);font-variant-numeric:tabular-nums}.baseline-panel{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:12px 24px;margin-top:8px;padding-top:18px;display:grid}.baseline-label{color:var(--muted);letter-spacing:.04em;margin-bottom:2px;font-size:11px}.baseline-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px}.closing-block{border-top:1px solid var(--rule);margin-top:8px;padding-top:22px}.closing-assertion{font-family:var(--display);letter-spacing:.01em;margin:0;font-size:17px;font-style:italic;line-height:1.5}.closing-meta{font-family:var(--mono);color:var(--muted);margin:8px 0 0;font-size:11px}.model-disclaimer{color:var(--muted);margin:12px 0 0;font-size:11px}.mobile-verdict{display:none}.poster-page{background:var(--canvas);min-height:100vh;padding:24px}.poster-toolbar{justify-content:space-between;max-width:1040px;margin:0 auto 16px;display:flex}.poster-toolbar>div{gap:8px;display:flex}.business-poster{background:var(--surface);max-width:1040px;box-shadow:var(--shadow);border-radius:2px;margin:0 auto;padding:clamp(32px,5vw,64px)}.poster-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:start;padding-bottom:28px;display:flex}.poster-header h1{font-family:var(--mincho);text-wrap:balance;margin:8px 0 0;font-size:clamp(28px,4vw,48px);font-weight:500}.poster-mark{background:var(--band);width:52px;height:52px;color:var(--band-fg);font:500 28px/1 var(--display);border-radius:2px;place-items:center;display:grid}.poster-verdict{margin:28px 0}.business-poster .verdict-figure{font-size:clamp(52px,9vw,96px)}.poster-conditions{border-block:1px solid var(--rule);grid-template-columns:repeat(3,1fr);margin-bottom:28px;display:grid}.poster-conditions div{border-right:1px solid var(--rule);align-items:center;gap:14px;min-height:64px;padding:16px;display:flex}.poster-conditions div:last-child{border-right:0}.poster-conditions b{color:var(--muted);font:500 11px var(--mono)}.poster-conditions span{font-size:12px;font-weight:500}.business-poster .analysis-section{padding-top:8px}.poster-footer{margin-top:8px}.poster-footer small{color:var(--muted);margin-top:10px;font-size:11px;display:block}.toast{z-index:50;border-left:4px solid var(--attention);background:var(--band);max-width:min(430px,100vw - 40px);color:var(--band-fg);box-shadow:var(--shadow);border-radius:2px;padding:16px;font-size:12px;position:fixed;bottom:16px;right:16px}.toast button{color:inherit;background:0 0;border:0;margin-left:16px;text-decoration:underline}.modal-backdrop{z-index:100;background:color-mix(in srgb, var(--ink) 55%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.share-dialog{background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow);border:1px solid var(--rule);border-radius:2px;padding:32px}.warning-glyph{border:2px solid var(--attention);width:34px;height:34px;color:var(--attention);border-radius:50%;place-items:center;font-weight:800;display:grid}.share-dialog h2{font-family:var(--mincho);margin:16px 0 8px;font-weight:500}.share-dialog p{color:var(--muted);line-height:1.8}.share-dialog>div{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.loading-screen{min-height:100vh;color:var(--muted);align-content:center;place-items:center;gap:16px;display:grid}.site-footer{flex-wrap:wrap;gap:20px;max-width:1280px;margin:0 auto;padding:20px clamp(16px,4vw,56px) 40px;display:flex}.site-footer a{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);text-underline-offset:3px;font-size:11px;text-decoration:underline}.site-footer a:hover{color:var(--ink)}.doc-page{background:var(--canvas);min-height:100vh;padding:clamp(32px,6vw,72px) clamp(16px,5vw,40px) 80px}.doc-back{font-family:var(--mono);color:var(--muted);text-underline-offset:3px;margin-bottom:40px;font-size:11px;text-decoration:underline;display:inline-block}.doc-back:hover{color:var(--ink)}.doc-content{max-width:65ch;margin:0 auto}.doc-content h1{font-family:var(--mincho);text-wrap:balance;margin:0 0 28px;font-size:clamp(28px,4vw,40px);font-weight:500}.doc-content p{color:var(--ink);margin:0 0 20px;font-size:14px;line-height:1.9}.doc-content ul{flex-direction:column;gap:10px;margin:0 0 24px;padding-left:20px;display:flex}.doc-content li{color:var(--ink);font-size:14px;line-height:1.8}.doc-content strong{font-weight:700}.doc-content a{color:var(--income);text-underline-offset:3px;text-decoration:underline}.doc-content a:hover{color:var(--ink)}@media (max-width:1099px){.model-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-layout{display:block}.assumption-rail{border-right:0;border-bottom:1px solid var(--rule);padding:22px clamp(16px,4vw,40px) 28px}.input-group,.rail-field,.rail-eyebrow{max-width:760px;margin-inline:auto}.rail-field{margin-bottom:16px}.verdict-row{flex-wrap:wrap}}@media (max-width:699px){.app-header{min-height:58px;padding:8px 16px}.brand-mark{width:28px;height:28px;font-size:16px}.header-actions .quiet-button,.header-actions .primary-button{padding-inline:10px;font-size:10px}.shelf-main{padding:40px 16px 80px}.shelf-intro{padding-bottom:28px;display:block}.shelf-intro h1{font-size:34px}.shelf-intro p{margin:20px 0;font-size:13px}.model-shelf{grid-template-columns:1fr}.assumption-rail{padding:20px 16px 28px}.horizon-pickers{grid-template-columns:1fr}.event-fields{padding-left:0}.event-row summary{grid-template-columns:22px minmax(0,1fr)}.event-row summary small{grid-column:2}.analysis-body{padding:22px 16px 110px}.verdict-band{padding:24px 20px}.verdict-row{flex-direction:column;align-items:flex-start;gap:20px}.section-heading{grid-template-columns:auto 1fr}.section-summary{grid-column:1/-1}.baseline-panel{grid-template-columns:1fr}.mobile-verdict{z-index:30;border:1px solid color-mix(in srgb, var(--band-fg) 14%, transparent);background:var(--band);min-height:58px;color:var(--band-fg);box-shadow:var(--shadow);border-radius:2px;justify-content:space-around;gap:16px;padding:8px 16px;display:flex;position:fixed;bottom:8px;left:8px;right:8px}.mobile-verdict span{opacity:.72;flex-direction:column;font-size:10.5px;display:flex}.mobile-verdict b{color:var(--band-fg);font:400 18px/1.1 var(--display);opacity:1}.poster-page{padding:0}.poster-toolbar{background:var(--canvas);margin:0;padding:8px}.business-poster{box-shadow:none;padding:28px 16px}.poster-conditions{grid-template-columns:1fr}.poster-conditions div{border-right:0;border-bottom:1px solid var(--rule)}.poster-conditions div:last-child{border-bottom:0}.share-dialog{padding:24px 16px}.share-dialog>div{flex-direction:column-reverse}.share-dialog button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{:root{--canvas:white}body{background:#fff}.no-print,.table-alternative,.mobile-verdict{display:none!important}.poster-page{padding:0}.business-poster{max-width:none;box-shadow:none;padding:12mm}.business-poster .analysis-section{break-inside:avoid}.chart{min-width:0}}:root,:root[data-theme=p1]{--canvas:#f1ebde;--rail:#f6f1e6;--surface:#f8f3e8;--band:#262320;--band-fg:#e8dcc3;--ink:#1b1815;--muted:#6b6259;--rule:#c7bfb0;--income:#23405e;--expense:#c0442e;--investment:#b4832f;--outcome:#0f3a2e;--attention:#b4832f;--focus:#23405e;--shadow:0 1px 2px #1b18150d, 0 10px 36px #1b181512;--display:Georgia, "Times New Roman", serif;--mincho:"Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;--body:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--mono:"IBM Plex Mono", "SF Mono", Consolas, monospace}:root[data-theme=p1] .verdict-band{border-radius:0}:root[data-theme=p1] .chart-value{font-family:var(--display)}
