@font-face{font-family:LocalSans;src:local("PingFang SC");font-display:swap}
:root{--rtw-nav-top:.4375rem;--rtw-nav-bottom:.625rem;--rtw-nav-content-height:calc(max(44px,3rem) + 1.0625rem + 1px);--paper:#f3f6f7;--surface:#fff;--ink:#0b304a;--text:#183f59;--muted:#587187;--faint:#dfe7ed;--soft:#edf5fa;--warm:#365f7b;--danger:#a13e43;--focus:#296d99;--radius:1.125rem;--sans:LocalSans,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC",sans-serif;--serif:"Songti SC",STSong,"Noto Serif SC",Georgia,serif;--english:Georgia,"Times New Roman",serif;--card-shadow:0 0.3125rem 1.25rem -0.8125rem #214d6a25}
*{box-sizing:border-box}
/* 440×956 is the reference canvas; stable viewport height keeps browser-bar motion out of the type scale. */
html{font-size:clamp(14px,min(calc((100svh - var(--rtw-safe-top,0px) - var(--rtw-safe-bottom,0px))/53.875),calc(100vw/23.5)),21.0854px);background:var(--paper);scroll-behavior:auto;scrollbar-color:#b7c8d4 var(--paper)}
body{margin:0;color:var(--text);background:var(--paper);font-family:var(--sans);font-size:max(14px,.9375rem);-webkit-font-smoothing:antialiased;line-height:1.65}
button,input,textarea,select{font:inherit;color:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.6}
:where(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--focus);outline-offset:0.25rem}
:where(input,textarea,select):focus-visible{outline-offset:2px}
::selection{color:var(--ink);background:#d4e9f6}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:700;line-height:1.4;color:var(--ink)}
button.plain{border:0;background:none}.icon{width:1.375rem;height:1.375rem;flex:none;vertical-align:middle}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#announcer{top:0;left:0}
.skip{position:fixed;top:-5rem;left:1rem;z-index:100;padding:0.75rem 1.125rem;background:#fff;border-radius:0.625rem}.skip:focus{top:0.5rem}
#app{min-height:100svh;background:inherit}
.header{border:0}.header-inner{max-width:67.5rem;height:100%;margin:auto;padding:0 1.5rem;display:flex;align-items:center;gap:1.5rem}
.brand{display:inline-flex;gap:0.6875rem;align-items:center;min-height:max(44px,2.75rem)}.a-brand-mark{width:2.5rem;height:2.5rem;flex:none}
.brand>span{font-family:var(--serif);font-weight:700;font-size:1.75rem;letter-spacing:2px;line-height:1.2;color:var(--ink)}
.brand small{display:block;font-family:var(--sans);font-weight:400;font-size:max(12px,0.6875rem);letter-spacing:1.5px;margin-top:0.375rem;color:var(--muted)}
.desktop-nav{display:none;gap:1.875rem;margin-left:auto}.desktop-nav a{display:flex;align-items:center;min-height:max(44px,2.75rem);font-size:0.9375rem;color:var(--muted)}.desktop-nav a[aria-current]{color:var(--ink);font-weight:600}
.back{display:inline-flex;align-items:center;gap:0.25rem;min-height:max(44px,2.75rem);padding:0;font-size:max(12px,0.875rem)}.back .icon{width:1.375rem;height:1.375rem}
.main{width:100%;max-width:60rem;margin:0 auto;padding:1rem 1.5rem 6.25rem;outline:0}.main.compact{max-width:32.5rem}
.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;justify-content:space-around;gap:1.25rem;background:#fefefe;border-top:1px solid var(--faint);padding:0.4375rem max(1rem,calc((100vw - 27.5rem)/2)) 0.625rem}
.bottom-nav>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.25rem;min-width:4rem;min-height:max(44px,3rem);color:var(--muted);font-size:max(12px,0.8125rem);line-height:1.4}.bottom-nav>a[aria-current]{color:var(--ink);font-weight:600}.bottom-nav .icon{width:1.5625rem;height:1.5625rem;stroke-width:1.7}
.site-foot{display:none}.prototype-link{min-height:max(44px,2.75rem);display:inline-flex;align-items:center;font-size:max(12px,0.8125rem);color:var(--muted)}
.page-heading{margin-bottom:1.5rem}.page-heading h1,.flow-title{font-family:var(--serif);font-size:2.25rem;line-height:1.25;letter-spacing:.01em;font-weight:800}
.page-heading p,.flow-intro{color:var(--muted);font-size:0.9375rem;line-height:1.8;margin-top:0.75rem}.page-subtitle{font:italic 1.3125rem/1.4 var(--english);color:var(--muted);margin-top:0.3125rem}
.eyebrow{display:none}.button{min-width:44px;min-height:max(44px,3rem);border:1px solid transparent;border-radius:0.875rem;display:inline-flex;align-items:center;justify-content:center;gap:0.75rem;padding:0.75rem 1.25rem;font-size:1rem;font-weight:550;line-height:1.5;text-align:center;background:none;transition:background .15s,color .15s,box-shadow .15s}
.button.primary{background:#103c57;color:#fff}.button.primary:hover{background:#1b4e6b}.button.secondary{background:#eaf3f9;color:#214d6b}.button.secondary:hover{background:#dfeef7}.button.text{min-height:max(44px,2.75rem);padding:0.5rem 0;color:var(--muted);border:0;background:none;font-size:max(12px,0.875rem)}.button.text:hover{color:var(--ink)}.button.danger{color:var(--danger)}.button.full{width:100%}
.inline-button{display:inline-flex;align-items:center;min-height:max(44px,2.75rem);background:none;border:0;padding:0.25rem 0;text-decoration:underline;text-underline-offset:0.25rem;color:var(--warm)}
.text-link{display:inline-flex;align-items:center;gap:0.625rem;min-height:max(44px,2.75rem);color:var(--warm);font-size:max(12px,0.875rem)}.text-link:hover{text-decoration:underline;text-underline-offset:0.25rem}
.centered{display:flex;justify-content:center;text-align:center;margin-top:1rem}.stack-actions{display:flex;flex-direction:column;gap:0.75rem;margin:1.5rem 0}
.small-print,.local-boundary,.quiet-end{color:var(--muted);font-size:max(12px,0.75rem);line-height:1.8;margin-top:1.25rem}.local-boundary{text-align:center}.flow-intro{margin-bottom:1.5rem}
form label{display:block;margin:1.25rem 0 0.5rem;font-size:0.9375rem;font-weight:550;color:var(--ink)}
input,textarea,select{border:1px solid #c9d7e2;border-radius:0.875rem;background:#fff;color:var(--ink);width:100%;padding:0.8125rem 1rem;font-size:max(16px,1rem);line-height:1.5;min-height:max(44px,3.25rem);caret-color:var(--focus)}
input::placeholder,textarea::placeholder{color:#60768a;opacity:1}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);background:#fff9f9}textarea{resize:vertical}
.password-wrap{position:relative}.password-wrap input{padding-right:4rem}.password-wrap button{position:absolute;right:0.3125rem;top:0.25rem;bottom:0.25rem;border:0;background:none;color:var(--muted);min-width:max(44px,2.75rem);min-height:max(44px,2.75rem);font-size:max(12px,0.8125rem)}.password-wrap button .icon{width:1.4375rem;height:1.4375rem}
.form-error{font-size:max(12px,0.8125rem);color:var(--danger);line-height:1.75;min-height:0;margin:0.5625rem 0 1rem}.form-error:empty{margin:0 0 1.25rem}.form-links{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;flex-wrap:wrap;margin-top:1rem;font-size:max(12px,0.875rem);color:var(--muted)}.form-links>a{display:inline-flex;align-items:center;min-height:max(44px,2.75rem)}
.demo-helper{margin:1.125rem 0;color:var(--muted);font-size:max(12px,0.75rem);line-height:1.8}.demo-helper p{font-size:max(12px,0.75rem)}.demo-helper .inline-button{font-size:max(12px,0.75rem)}.draft-notice{font-size:max(12px,0.8125rem);color:var(--warm);margin-top:0.5rem}
.target-context{padding:0.875rem 1rem;margin:1.25rem 0;border-radius:0.875rem;background:#eaf2f7}.target-context>span{font-size:max(12px,0.75rem);color:var(--muted)}.target-context strong{display:block;font-size:1rem;line-height:1.6;margin-top:0.25rem;overflow-wrap:anywhere}.target-context small{font-size:max(12px,0.75rem);color:var(--muted)}
.empty-state{padding:2.75rem 1.25rem;text-align:center;max-width:26.875rem;margin:0 auto}.empty-state>.icon{width:2.625rem;height:2.625rem;color:#587c97;margin-bottom:1.25rem}.empty-state h2{font-family:var(--serif);font-size:1.5rem;margin-bottom:0.625rem}.empty-state p{font-size:0.9375rem;color:var(--muted);line-height:1.9}.empty-state .button{margin-top:1.375rem}.empty-state .text-link{display:flex;justify-content:center;margin-top:0.625rem}
.prose h2{font-family:var(--serif);font-size:1.4375rem;margin:1.875rem 0 0.625rem}.prose p{font-size:0.9375rem;color:var(--muted);line-height:1.9;margin-bottom:0.75rem}.prose strong{color:var(--ink)}.prose .button{margin:0.375rem 0}
.toast{position:fixed;bottom:calc(var(--rtw-nav-height,4.125rem) + 1rem);left:50%;transform:translate(-50%,0.75rem);max-width:calc(100% - 2.25rem);width:max-content;background:#173d56;color:#fff;padding:0.75rem 1.125rem;border-radius:0.75rem;box-shadow:0 0.375rem 1.25rem #173d5622;font-size:max(12px,0.875rem);z-index:100;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
dialog{background:#fcfdfd;color:var(--text);border:0;border-radius:1.375rem;box-shadow:0 1.5rem 4rem #152c352e;padding:1.75rem;max-width:32.5rem;width:calc(100% - 2.5rem)}dialog::backdrop{background:#152b3b85}
.dialog-x{position:absolute;right:0.75rem;top:0.75rem;width:max(44px,2.75rem);height:max(44px,2.75rem);border:0;background:none;color:var(--muted)}.dialog-x .icon{width:1.625rem;height:1.625rem}.dialog-actions{display:flex;gap:0.75rem}.dialog-actions .button{flex:1}
.confirm-dialog h2{font-family:var(--serif);font-size:1.6875rem;padding-right:1.25rem}.confirm-dialog p{font-size:0.9375rem;color:var(--muted);line-height:1.85;margin:1.125rem 0 1.5rem}.confirm-dialog .button.danger{background:var(--danger);color:#fff}.confirm-dialog .button.danger:hover{background:#8f343b}
.review-section{padding:1.5rem 0;border-top:1px solid var(--faint)}.review-section h2{font-size:1.4375rem;margin-bottom:0.75rem}.review-section p,.review-section li{font-size:max(12px,0.875rem);color:var(--muted);line-height:1.9}.review-section ol{padding-left:1.25rem}.review-links,.scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;margin:1.25rem 0}.review-links a,.review-links button{display:flex;align-items:center;justify-content:space-between;padding:1rem;border:0;border-radius:0.75rem;background:var(--surface);font-size:max(12px,0.875rem);text-align:left}.review-status{display:flex;gap:1.125rem;flex-wrap:wrap;font-size:max(12px,0.8125rem)}.review-status>div{display:flex;gap:0.5rem}.review-status dd{margin:0}.boundary-list>div{display:grid;grid-template-columns:3.75rem 1fr;gap:1.25rem;font-size:max(12px,0.875rem);margin:1rem 0}.boundary-list dd{margin:0;color:var(--muted)}
@media(min-width:64rem){.desktop-nav{display:flex}.bottom-nav{display:none}.main{padding-bottom:3rem}.toast{bottom:1.5rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

