:root{--c-primary: #1e40af;--c-primary-deep: #17328c;--c-primary-soft: #3e6be0;--c-primary-tint: #7c9bea;--c-primary-pale: #a9c0f2;--c-accent: #16a34a;--c-accent-bright: #22c55e;--c-accent-ink: #15803d;--c-down: #dc2626;--c-down-soft: #f87171;--c-bg: #f4f7fe;--c-card: #ffffff;--c-hover: #eef3ff;--c-ink: #182449;--c-muted: #5b6b8a;--c-border: #c9d6f2;--c-band-up: #8cf2b4;--c-band-down: #ffb3b3;--font-head: "Exo", "Roboto Mono", system-ui, sans-serif;--font-body: "Roboto Mono", ui-monospace, SFMono-Regular, monospace;--font-num: "Roboto Mono", ui-monospace, monospace;--t-xs: 12px;--t-sm: 14px;--t-md: 16px;--t-lg: 20px;--t-xl: 32px;--t-hero: clamp(38px, 5.4vw, 64px);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--ease-out: cubic-bezier(.22, .61, .36, 1);--t-micro: .18s;--t-enter: .6s}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--c-bg);color:var(--c-ink);font-family:var(--font-body);font-size:var(--t-md);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--c-primary);color:#fff}::-webkit-scrollbar{width:10px;height:8px}::-webkit-scrollbar-thumb{background:var(--c-border)}::-webkit-scrollbar-thumb:hover{background:var(--c-primary-tint)}::-webkit-scrollbar-track{background:var(--c-bg)}h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;letter-spacing:-.01em;line-height:1.15;margin:0}p{margin:0}a{color:var(--c-primary);text-decoration:none;transition:color var(--t-micro) var(--ease-out)}a:hover{text-decoration:underline}button{font-family:inherit}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:500}.up{color:var(--c-accent-ink)}.dn{color:var(--c-down)}.muted{color:var(--c-muted)}.label{font-family:var(--font-body);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);font-weight:500}.shell{min-height:100vh;display:flex}.rail{position:sticky;top:0;height:100vh;width:232px;flex-shrink:0;display:flex;flex-direction:column;background:var(--c-card);border-right:1px solid var(--c-border);padding:20px 16px;gap:24px;z-index:60}.rail-brand{display:flex;align-items:center;gap:10px;padding:0 6px}.rail-brand img{display:block}.rail-brand .word{font-family:var(--font-head);font-weight:700;font-size:21px;letter-spacing:.06em;color:var(--c-ink)}.rail-brand .word b{color:var(--c-primary);font-weight:700}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-link{display:flex;align-items:center;gap:12px;padding:9px 10px;font-size:var(--t-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);border-left:2px solid transparent;transition:color var(--t-micro) var(--ease-out),background var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out)}.rail-link:hover{color:var(--c-primary);background:var(--c-hover);text-decoration:none}.rail-link.active{color:var(--c-primary);border-left-color:var(--c-primary);background:var(--c-hover);font-weight:700}.rail-link svg{flex-shrink:0}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:12px}.rail-net{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--c-border);font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted)}.rail-net .dot{width:7px;height:7px;background:var(--c-accent-bright);animation:dot-pulse 2.2s var(--ease-out) infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.main{flex:1;min-width:0;display:flex;flex-direction:column}.content{width:100%;max-width:1240px;margin:0 auto;padding:0 28px}.topbar{display:none;position:sticky;top:0;z-index:60;background:#f4f7fef5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--c-border);padding:12px 16px;align-items:center;justify-content:space-between;gap:12px}.tabbar{display:none;position:sticky;bottom:0;z-index:60;background:var(--c-card);border-top:1px solid var(--c-border)}.tabbar-in{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch}.tabbar a{flex:1 0 auto;min-width:56px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 10px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);white-space:nowrap}.tabbar a.active{color:var(--c-primary)}@media (max-width: 960px){.rail{display:none}.topbar{display:flex}.tabbar{display:block}}.panel{background:var(--c-card);border:1px solid var(--c-border)}a.panel{display:block;transition:border-color var(--t-micro) var(--ease-out),background var(--t-micro) var(--ease-out)}a.panel:hover{border-color:var(--c-primary);background:#fbfcff}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:12px 18px;border-bottom:1px solid var(--c-border)}.panel-head .label{color:var(--c-muted)}.panel-body{padding:18px}.tbl{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.tbl th{text-align:left;font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--c-border);white-space:nowrap}.tbl td{padding:13px 16px;border-bottom:1px solid var(--c-border);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .15s var(--ease-out)}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.clickable:hover{background:var(--c-hover)}.tbl .r{text-align:right}.sym{display:inline-block;font-size:var(--t-xs);font-weight:500;letter-spacing:.06em;padding:2px 8px;border:1px solid var(--c-primary-pale);color:var(--c-primary);background:var(--c-hover);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:var(--t-sm);font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:11px 20px;border:1px solid var(--c-primary);cursor:pointer;background:var(--c-primary);color:#fff;transition:background var(--t-micro) var(--ease-out),color var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out),transform var(--t-micro) var(--ease-out)}.btn:hover:not(:disabled){background:var(--c-primary-deep);border-color:var(--c-primary-deep)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--c-primary)}.btn.ghost:hover:not(:disabled){background:var(--c-hover)}.btn.green{background:var(--c-accent);border-color:var(--c-accent)}.btn.green:hover:not(:disabled){background:var(--c-accent-ink);border-color:var(--c-accent-ink)}.btn.danger{background:transparent;border-color:var(--c-down);color:var(--c-down)}.btn.danger:hover:not(:disabled){background:#dc262614}.btn.wide{width:100%}.arr{display:inline-block;transition:transform .22s var(--ease-out)}.btn:hover .arr,a:hover .arr{transform:translate(4px)}.field{display:flex;flex-direction:column;gap:6px}.field>.label{font-size:var(--t-xs)}.input{background:var(--c-card);border:1px solid var(--c-border);color:var(--c-ink);font-family:var(--font-num);font-size:var(--t-md);padding:11px 12px;width:100%;outline:none;font-variant-numeric:tabular-nums;transition:border-color var(--t-micro) var(--ease-out),background var(--t-micro) var(--ease-out)}.input:focus{border-color:var(--c-primary)}.input::placeholder{color:var(--c-muted)}select.input{font-family:var(--font-body);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--c-muted) 50%),linear-gradient(135deg,var(--c-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}select.input:focus{background-color:var(--c-hover)}.seg{display:inline-flex;border:1px solid var(--c-border);background:var(--c-card);padding:3px;gap:2px;flex-wrap:wrap}.seg button{font-family:var(--font-body);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--c-muted);background:none;border:none;padding:7px 14px;cursor:pointer;transition:background var(--t-micro) var(--ease-out),color var(--t-micro) var(--ease-out)}.seg button:hover{color:var(--c-primary)}.seg button.active{background:var(--c-primary);color:#fff}.chips{display:flex;gap:6px}.chip{font-family:var(--font-num);font-size:var(--t-xs);font-weight:500;padding:4px 10px;border:1px solid var(--c-border);background:var(--c-card);color:var(--c-muted);cursor:pointer;font-variant-numeric:tabular-nums;transition:all var(--t-micro) var(--ease-out)}.chip:hover{border-color:var(--c-primary-tint);color:var(--c-primary)}.chip.on{border-color:var(--c-accent);color:var(--c-accent-ink);background:#22c55e14}.delta{font-family:var(--font-num);font-size:var(--t-sm);font-weight:500;padding:3px 8px;border:1px solid currentColor;font-variant-numeric:tabular-nums}.notice{border:1px solid var(--c-border);border-left:3px solid var(--c-primary);background:var(--c-card);padding:12px 16px;font-size:var(--t-sm);color:var(--c-muted);line-height:1.6}.notice.warn{border-left-color:var(--c-down)}.divider{border:none;border-top:1px solid var(--c-border);margin:var(--sp-3) 0}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.kv .label{font-size:var(--t-xs)}.kv .num{font-size:var(--t-sm)}.page{padding:36px 0 72px}.page-head{margin-bottom:var(--sp-6)}.page-head h1{font-size:var(--t-xl);margin-bottom:6px}.page-head .sub{color:var(--c-muted);max-width:68ch}.section{padding:64px 0 0}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.sec-head h2{font-size:var(--t-xl)}.sec-head .label{font-size:var(--t-xs)}.reveal{opacity:0;transform:translateY(18px);transition:opacity var(--t-enter) var(--ease-out),transform var(--t-enter) var(--ease-out)}.reveal.in{opacity:1;transform:none}.stagger>*{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease-out),transform .55s var(--ease-out)}.stagger.in>*{opacity:1;transform:none}.stagger.in>*:nth-child(1){transition-delay:.05s}.stagger.in>*:nth-child(2){transition-delay:.15s}.stagger.in>*:nth-child(3){transition-delay:.25s}.stagger.in>*:nth-child(4){transition-delay:.35s}.stagger.in>*:nth-child(5){transition-delay:.45s}.stagger.in>*:nth-child(6){transition-delay:.55s}.flash{animation:flash .5s var(--ease-out)}@keyframes flash{0%{background:var(--c-accent-bright);color:#fff}to{background:transparent}}.draw{stroke-dasharray:2600;stroke-dashoffset:2600;animation:draw 1.4s .35s var(--ease-out) both}@keyframes draw{to{stroke-dashoffset:0}}.spark{display:block}.wbar{display:flex;height:10px;width:190px;border:1px solid var(--c-border);background:var(--c-hover)}.wbar i{display:block;height:100%;width:0;transition:width .9s cubic-bezier(.2,.7,.2,1)}.meter{height:8px;background:var(--c-hover);border:1px solid var(--c-border);overflow:hidden}.meter i{display:block;height:100%;background:var(--c-accent);transition:width .6s var(--ease-out)}.meter.bad i{background:var(--c-down)}.hline{opacity:0;transform:translateY(16px);animation:hline-up .6s var(--ease-out) both}.hline.d1{animation-delay:.55s}.hline.d2{animation-delay:.7s}.hline.d3{animation-delay:.85s}.hline.d4{animation-delay:1s}@keyframes hline-up{to{opacity:1;transform:none}}.hero-panel{opacity:0;animation:panel-in .5s var(--ease-out) .15s both}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.hero-title{font-size:var(--t-hero);line-height:1.08}.hero-title .hl{color:var(--c-primary)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal,.stagger>*,.hline{opacity:1!important;transform:none!important}.draw{stroke-dashoffset:0}.wbar i{transition:none}}@media (max-width: 900px){.content{padding:0 16px}.grid-2,.grid-3{grid-template-columns:1fr!important}.page{padding-top:24px}.panel-head{flex-wrap:wrap}.tbl{font-size:13px}.tbl th,.tbl td{padding:10px}.wbar{width:120px}}
