@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";html,body,#root{margin:0;padding:0}:root{--paper:#fbf7ef;--paper-deep:#f4eddd;--card-bg:#fffdf8;--ink:#26221b;--ink-soft:#5c5647;--amber:#b45309;--amber-bright:#d97706;--amber-wash:#fdf1dd;--line:#e7dfce;--grid-line:#b4530912;--font-body:"IBM Plex Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;--font-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background-color:var(--paper);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);color:var(--ink);font-family:var(--font-body);background-size:28px 28px;line-height:1.8}.page{flex-direction:column;min-height:100vh;display:flex}main{flex:1;width:min(1040px,100% - 3rem);margin-inline:auto}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;width:min(1040px,100% - 3rem);margin-inline:auto;padding-block:.85rem;display:flex}.topbar-right{align-items:center;gap:1.2rem;display:flex}.brand-logo{object-fit:contain;width:auto;height:40px;display:block}.brand-cat{object-fit:contain;border-radius:8px;width:auto;height:48px;display:block}.wordmark{color:var(--ink);align-items:center;gap:.6rem;text-decoration:none;display:flex}.wordmark-en{font-family:var(--font-mono);letter-spacing:.02em;color:var(--amber);font-size:1.05rem;font-weight:500}.wordmark-ja{color:var(--ink-soft);font-size:.8rem}.topnav{gap:1.2rem;display:flex}.topnav a{font-family:var(--font-mono);color:var(--ink-soft);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.82rem;text-decoration:none}.topnav a:hover,.topnav a:focus-visible{color:var(--amber);border-bottom-color:var(--amber)}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:3rem;padding-block:5rem 4rem;display:grid}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;color:var(--amber);margin-bottom:1rem;font-size:.78rem}.hero h1{letter-spacing:.01em;font-size:clamp(2.1rem,4.5vw,3.2rem);font-weight:700;line-height:1.35}.accent{color:var(--amber);background:linear-gradient(transparent 62%, var(--amber-wash) 62%);padding-inline:.06em}.lede{color:var(--ink-soft);max-width:34em;margin-top:1.4rem}.disclaimer{color:var(--amber);background:var(--amber-wash);border:1px solid color-mix(in srgb, var(--amber) 30%, transparent);border-radius:8px;margin-top:1.6rem;padding:.5rem .9rem;font-size:.85rem;display:inline-block}.hero-fig{background:var(--card-bg);border:1px solid var(--line);border-radius:14px;padding:1.2rem;box-shadow:0 8px 28px #26221b0f}.scatter{width:100%;height:auto;display:block}.axis{stroke:var(--line);stroke-width:1.5px}.dot{fill:var(--amber-bright);opacity:0;animation:.45s ease-out forwards dot-in;animation-delay:var(--d,0s)}.dot-hit{fill:var(--amber);stroke:var(--amber-wash);stroke-width:3px}.trend{stroke:var(--amber);stroke-width:2px;stroke-dasharray:7 6;stroke-dashoffset:460px;opacity:.75;animation:1.2s ease-out 1.5s forwards trend-draw}.scatter-note{font-family:var(--font-mono);fill:var(--ink-soft);opacity:0;font-size:11px;animation:.5s ease-out 2.4s forwards dot-in}@keyframes dot-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes trend-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dot,.trend,.scatter-note{opacity:1;stroke-dashoffset:0;animation:none}}h2{flex-direction:column;gap:.35rem;margin-bottom:1.6rem;font-size:1.35rem;font-weight:700;display:flex}.mono-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--amber);font-size:.72rem;font-weight:500}.modules{border-top:1px solid var(--line);padding-block:2.5rem 3.5rem}.module-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.4rem;display:grid}.card{background:var(--card-bg);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:.7rem;padding:1.5rem 1.6rem 1.4rem;transition:border-color .2s,box-shadow .2s;display:flex}.card:hover{border-color:color-mix(in srgb, var(--amber) 45%, var(--line));box-shadow:0 6px 20px #b4530914}.card-tag{font-family:var(--font-mono);letter-spacing:.14em;color:var(--amber);font-size:.7rem}.card h3{font-size:1.1rem;font-weight:700}.card-desc{color:var(--ink-soft);flex:1;font-size:.92rem}.card-foot{margin-top:.4rem}.status-chip{font-family:var(--font-mono);color:var(--amber);background:var(--amber-wash);border-radius:999px;padding:.25rem .85rem;font-size:.78rem;display:inline-block}.card-link{font-family:var(--font-mono);color:var(--amber);border-bottom:1px solid var(--amber);padding-bottom:2px;font-size:.88rem;text-decoration:none}.card-link:hover,.card-link:focus-visible{color:var(--amber-bright);border-bottom-color:var(--amber-bright)}.card-empty{background:0 0;border-style:dashed}.card-empty:hover{box-shadow:none}.principles{border-top:1px solid var(--line);padding-block:2.5rem 4rem}.principle-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.4rem 2rem;display:grid}.principle dt{border-left:3px solid var(--amber);margin-bottom:.4rem;padding-left:.85rem;font-weight:700;line-height:1.5}.principle dd{color:var(--ink-soft);font-size:.92rem}.foot{border-top:1px solid var(--line);background:var(--paper-deep);text-align:center;color:var(--ink-soft);padding:2rem 1.5rem 2.4rem;font-size:.85rem}.foot-links{justify-content:center;gap:.8rem;margin-top:.7rem;display:flex}.foot-links a{color:var(--amber);text-decoration:none}.foot-links a:hover,.foot-links a:focus-visible{text-decoration:underline}.module-page{padding-block:2.5rem 3.5rem}.crumb{font-family:var(--font-mono);margin-bottom:1.4rem;font-size:.82rem}.crumb a{color:var(--ink-soft);text-decoration:none}.crumb a:hover,.crumb a:focus-visible{color:var(--amber)}.module-title{margin:.2rem 0 .8rem;font-size:clamp(1.8rem,3.5vw,2.5rem);font-weight:700;line-height:1.3}.module-lede{color:var(--ink-soft);max-width:44em;margin-top:1rem}.panel{background:var(--card-bg);border:1px solid var(--line);border-radius:14px;margin-top:1.6rem;padding:1.5rem 1.6rem}.panel-quiet{background:var(--paper-deep)}.panel-title{margin-bottom:1.2rem;font-size:1.1rem;font-weight:700}.panel-subtitle{margin-bottom:.3rem;font-size:1rem;font-weight:700}.field-group{border:1px solid var(--line);background:var(--paper);border-radius:12px;margin-bottom:1.2rem;padding:1.1rem 1.2rem 1.3rem}.field-group:last-of-type{margin-bottom:0}.group-legend{align-items:baseline;gap:.6rem;margin-bottom:1rem;display:flex}.group-step{font-family:var(--font-mono);letter-spacing:.1em;color:#fff;background:var(--amber);border-radius:999px;padding:.12rem .6rem;font-size:.72rem;font-weight:500}.group-name{color:var(--ink);font-size:.98rem;font-weight:700}.group-hint{color:var(--ink-soft);font-size:.76rem}.group-optional{font-family:var(--font-mono);color:var(--amber);border:1px solid color-mix(in srgb, var(--amber) 35%, transparent);border-radius:999px;padding:.08rem .5rem;font-size:.7rem}.field-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.1rem 1.4rem;display:grid}.field{flex-direction:column;gap:.35rem;display:flex}.field>span{color:var(--ink);font-size:.86rem;font-weight:500}.field input,.field select{font-family:var(--font-body);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font-size:.92rem}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--amber-bright);outline-offset:1px;border-color:var(--amber)}.field small{color:var(--ink-soft);font-size:.72rem}.form-error{color:#b91c1c;background:#fdecec;border:1px solid #f3c0c0;border-radius:8px;margin-top:1.1rem;padding:.55rem .9rem;font-size:.86rem}.run-btn{font-family:var(--font-mono);color:#fff;background:var(--amber);cursor:pointer;border:none;border-radius:10px;margin-top:1.4rem;padding:.7rem 1.6rem;font-size:.92rem;transition:background .2s}.run-btn:hover:not(:disabled){background:var(--amber-bright)}.run-btn:disabled{opacity:.55;cursor:default}.results{margin-top:.4rem}.banner{border-radius:14px;margin-top:1.6rem;padding:1.4rem 1.6rem}.banner-ok{background:var(--amber-wash);border:1px solid color-mix(in srgb, var(--amber) 35%, transparent)}.banner-label{font-family:var(--font-mono);letter-spacing:.1em;color:var(--amber);font-size:.78rem}.banner-big{color:var(--ink);margin:.2rem 0 .4rem;font-size:2.4rem;font-weight:700;line-height:1.1}.banner-ok p,.banner-warn p{color:var(--ink-soft);font-size:.9rem}.banner-warn{border:1.5px solid var(--amber-bright);background:#fdf1dd}.banner-title{color:var(--amber);margin-bottom:.4rem;font-size:1.1rem;font-weight:700}.banner-warn strong{color:var(--amber)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1.6rem;display:grid}.metric{background:var(--card-bg);border:1px solid var(--line);text-align:center;border-radius:12px;padding:1rem 1.1rem}.metric-label{color:var(--ink-soft);margin-bottom:.35rem;font-size:.72rem}.metric-value{color:var(--ink);font-size:1.5rem;font-weight:700}.post-summary{color:var(--ink-soft);flex-wrap:wrap;gap:.5rem 1.8rem;margin-top:.7rem;font-size:.9rem;list-style:none;display:flex}.post-summary strong{color:var(--ink)}.total-card{background:var(--card-bg);border:1.5px solid color-mix(in srgb, var(--amber) 40%, var(--line));border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.4rem;margin-top:1.6rem;padding:1.3rem 1.6rem;display:flex}.total-label{font-family:var(--font-mono);letter-spacing:.1em;color:var(--amber);font-size:.78rem}.total-big{color:var(--ink);font-size:2rem;font-weight:700;line-height:1.1}.total-breakdown{color:var(--ink-soft);font-size:.9rem}.note-block{background:var(--paper-deep);border:1px solid var(--line);border-left:3px solid var(--ink-soft);border-radius:10px;margin-top:1.6rem;padding:1rem 1.2rem}.note-block .note-head{color:var(--ink);margin-bottom:.4rem;font-size:.86rem;font-weight:700}.note-block p{color:var(--ink-soft);font-size:.85rem}.howto{background:var(--card-bg);border:1px solid var(--line);border-radius:12px;margin-top:1.6rem;padding:.4rem 1.3rem}.howto>summary{color:var(--ink);cursor:pointer;padding:.9rem 0;font-size:.95rem;font-weight:700;list-style:none}.howto>summary::-webkit-details-marker{display:none}.howto>summary:before{content:"▸";color:var(--amber);margin-right:.5rem}.howto[open]>summary:before{content:"▾"}.howto-body{padding-bottom:1rem}.howto-body ul{color:var(--ink-soft);margin:.2rem 0 .9rem 1.1rem;font-size:.88rem}.howto-body li{margin-bottom:.5rem;line-height:1.7}.howto-body li strong{color:var(--ink)}.howto-foot{color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:.8rem;font-size:.82rem}.scenario-editor{flex-direction:column;gap:.9rem;margin:.8rem 0 1.2rem;display:flex}.scenario-levels{flex-direction:column;gap:.3rem;max-width:22rem;display:flex}.scenario-levels>span{font-size:.82rem;font-weight:500}.scenario-levels input{font-family:var(--font-mono);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.45rem .7rem;font-size:.9rem}.scenario-rows{flex-direction:column;gap:.5rem;display:flex}.scenario-row{grid-template-columns:minmax(6rem,1fr) minmax(6rem,1fr) minmax(6rem,1fr);align-items:end;gap:.6rem;display:grid}.scenario-row .mini-field{flex-direction:column;gap:.2rem;display:flex}.scenario-row .mini-field>span{color:var(--ink-soft);font-size:.72rem}.scenario-row input{font-family:var(--font-body);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;width:100%;padding:.4rem .6rem;font-size:.88rem}.scenario-table-wrap{margin-top:1rem;overflow-x:auto}.scenario-table{border-collapse:collapse;width:100%;font-size:.88rem}.scenario-table th,.scenario-table td{border:1px solid var(--line);text-align:center;padding:.6rem .8rem}.scenario-table thead th{background:var(--paper-deep);color:var(--ink);font-weight:700}.scenario-table tbody th{background:var(--paper-deep);font-family:var(--font-mono);white-space:nowrap;font-weight:500}.scenario-table .cell-main{color:var(--ink);font-size:1.05rem;font-weight:700}.scenario-table .cell-sub{color:var(--ink-soft);font-size:.74rem}.scenario-table .cell-note{border-bottom:1px dotted var(--ink-soft);cursor:help}.scenario-table td.cell-capped{background:var(--amber-wash)}.scenario-table td.cell-capped .cell-main{color:var(--amber)}.scenario-caption{color:var(--ink-soft);margin-top:.6rem;font-size:.78rem}.chart{width:100%;height:auto;margin-top:.6rem;display:block}.chart-note{color:var(--ink-soft);margin-bottom:.2rem;font-size:.78rem}.chart-axis{stroke:var(--ink-soft);stroke-width:1.2px}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-bound{stroke:#dc2626;stroke-width:1.5px;stroke-dasharray:5 5}.chart-prior{fill:none;stroke:#b8ac93;stroke-width:1.5px}.chart-post,.chart-line{fill:none;stroke:var(--amber-bright);stroke-width:2.2px}.chart-target{stroke:var(--ink-soft);stroke-width:1.3px;stroke-dasharray:6 4}.chart-rec{stroke:var(--amber);stroke-width:1.5px;stroke-dasharray:4 4}.chart-tick,.chart-legend,.chart-axis-label{font-family:var(--font-mono);fill:var(--ink-soft);font-size:11px}@media (width<=760px){.hero{grid-template-columns:1fr;gap:2.2rem;padding-block:3.2rem 2.8rem}.topbar-inner,main{width:calc(100% - 2.2rem)}.wordmark-ja{display:none}}
