:root,[data-theme=dark]{color-scheme:dark;--color-bg: #0d1220;--color-surface: #161c30;--color-surface-muted: #1f2540;--color-border: rgba(232, 226, 212, .08);--color-border-strong: rgba(232, 226, 212, .18);--color-ink: #e8e2d4;--color-ink-muted: #9a9486;--color-ink-faint: #6e6a5e;--color-accent: #a83333;--color-accent-deep: #7a2424;--color-secondary: #6b8e7f;--color-on-accent: #f8f3e9;--color-accent-fg: #ee6464;--color-sev-none: #1f2540;--color-sev-caution: #5c4a2a;--color-sev-avoid: #7a3a32;--color-sev-blocked: #9a3030;--color-stripe-overlay: rgba(232, 226, 212, .42);--color-on-sev-blocked: var(--color-on-accent);--color-score-avoid: #c45a5a;--color-score-caution: #d4a36e;--color-score-moderate: #c8b88a;--color-score-favorable: #7fb59a;--color-score-excellent: #5fa380;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--font-cjk: "Noto Serif TC", "Noto Serif SC", "Source Han Serif TC", "Songti TC", "STSong", serif;--font-latin: "Cormorant Garamond", "EB Garamond", "Source Han Serif K", Georgia, serif;--font-body: var(--font-cjk), var(--font-latin);--font-display: var(--font-cjk), var(--font-latin);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 24px;--text-2xl: 32px;--text-3xl: 44px;--text-display: 56px;--leading-tight: 1.2;--leading-normal: 1.6;--leading-loose: 1.8;--max-width-content: 720px;--max-width-wide: 960px;--max-width-narrow: 420px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-soft: 0 0 0 1px rgba(232, 226, 212, .04), 0 1px 2px rgba(0, 0, 0, .4);--shadow-card: 0 0 0 1px rgba(232, 226, 212, .06), 0 4px 16px rgba(0, 0, 0, .5);--shadow-accent-glow: 0 0 0 2px rgba(168, 51, 51, .25);--color-error: #e07070;--grain-image: url(/grain.svg)}[data-theme=light]{color-scheme:light;--color-bg: #f5ede0;--color-surface: #fdfaf2;--color-surface-muted: #ede4d2;--color-border: rgba(28, 26, 23, .08);--color-border-strong: rgba(28, 26, 23, .18);--color-ink: #1c1a17;--color-ink-muted: #5a5348;--color-ink-faint: #8a8275;--color-sev-none: #ede4d2;--color-sev-caution: #fbe8c8;--color-sev-avoid: #f4c2a6;--color-sev-blocked: #e0a0a0;--color-stripe-overlay: rgba(28, 26, 23, .32);--color-on-sev-blocked: var(--color-ink);--color-score-avoid: #c89090;--color-score-caution: #d4a878;--color-score-moderate: #d8c89e;--color-score-favorable: #9ab895;--color-score-excellent: #6b8e7f;--shadow-soft: 0 1px 2px rgba(28, 26, 23, .04), 0 2px 8px rgba(28, 26, 23, .04);--shadow-card: 0 2px 4px rgba(28, 26, 23, .06), 0 4px 16px rgba(28, 26, 23, .06);--color-error: #b83838;--color-accent-fg: #7a2424;--grain-image: url(/grain-light.svg)}.site-header__sentinel{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none;opacity:0}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:56px;display:flex;align-items:center;background:transparent;transition:background-color .2s cubic-bezier(.2,.8,.3,1),backdrop-filter .2s cubic-bezier(.2,.8,.3,1),-webkit-backdrop-filter .2s cubic-bezier(.2,.8,.3,1);animation:site-header-mount-fade .2s ease-out both}@keyframes site-header-mount-fade{0%{opacity:0}to{opacity:1}}.site-header[data-scrolled=true]{background-color:color-mix(in srgb,var(--color-surface) 70%,transparent);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}.site-header__inner{width:100%;max-width:var(--max-width-wide);margin:0 auto;padding:0 var(--space-4);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-4);height:100%}.site-header__logo{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;color:var(--color-ink);min-height:auto;text-decoration:none;transition:transform .2s cubic-bezier(.2,.8,.3,1)}.site-header__logo-text{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1;letter-spacing:.04em;color:var(--color-ink)}.site-header__logo:after{content:"";display:block;width:14px;height:1.5px;background:var(--color-accent);transform-origin:left;transition:width .2s cubic-bezier(.2,.8,.3,1),background .2s ease;animation:site-header-rule-grow .5s cubic-bezier(.2,.8,.3,1) 1.45s both}@keyframes site-header-rule-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.site-header__logo:hover{transform:scale(1.03);text-decoration:none}.site-header__logo:hover:after{width:20px}.site-header__logo:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:2px}.site-header__nav{display:flex;justify-content:center;align-items:center;gap:var(--space-6)}.site-header__nav-link{position:relative;font-family:var(--font-display);font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--color-ink-muted);text-decoration:none;padding:var(--space-2) 2px;min-height:auto;transition:color .15s ease}.site-header__nav-link:hover{color:var(--color-ink);text-decoration:none}.site-header__nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:2px;color:var(--color-ink)}.site-header__nav-link:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1.5px;background:var(--color-accent);transform:scaleX(0);transform-origin:center;transition:transform .25s cubic-bezier(.2,.8,.3,1)}.site-header__nav-link:hover:after,.site-header__nav-link:focus-visible:after,.site-header__nav-link[data-active=true]:after{transform:scaleX(1)}.site-header__controls{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-end}.site-header__menu{position:relative;display:inline-flex;align-items:center}.site-header__menu-trigger{width:28px;height:28px;border-radius:50%;border:1px solid var(--color-border-strong);background:transparent;color:var(--color-ink-muted);font-family:var(--font-display);font-size:13px;font-weight:500;line-height:1;letter-spacing:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;min-height:auto;transition:border-color .15s ease,color .15s ease,background .15s ease}.site-header__menu-trigger:hover,.site-header__menu-trigger:focus-visible,.site-header__menu[data-open=true] .site-header__menu-trigger,.site-header__menu-trigger[aria-expanded=true]{border-color:var(--color-accent);color:var(--color-accent-fg);background:transparent;outline:none}.site-header__menu-panel{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:color-mix(in srgb,var(--color-surface) 92%,transparent);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-2);display:flex;flex-direction:column;gap:2px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .12s ease,transform .12s cubic-bezier(.2,.8,.3,1);z-index:60}.site-header__menu-panel:before{content:"";position:absolute;top:-4px;left:0;right:0;height:4px;pointer-events:auto}.site-header__menu-panel[data-open=true]{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity .18s ease,transform .18s cubic-bezier(.2,.8,.3,1)}.site-header__menu-row{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;color:var(--color-ink-muted);text-decoration:none;min-height:36px;transition:background .15s ease,color .15s ease}.site-header__menu-row:hover,.site-header__menu-row:focus-visible{background:var(--color-surface-muted);color:var(--color-ink);text-decoration:none;outline:none}.site-header__menu-row[data-current=true]{color:var(--color-ink)}.site-header__menu-dot{width:6px;height:6px;border-radius:50%;border:1px solid var(--color-accent);background:transparent;flex-shrink:0;transition:background .15s ease}.site-header__menu-row[data-current=true] .site-header__menu-dot{background:var(--color-accent)}.site-header__menu-row-label{flex:1}@media(max-width:640px){.site-header{height:52px}.site-header__inner{padding:0 var(--space-3);gap:var(--space-2)}.site-header__nav{display:none}}@media(prefers-reduced-motion:reduce){.site-header,.site-header__logo,.site-header__logo:after,.site-header__nav-link,.site-header__nav-link:after,.site-header__menu-trigger,.site-header__menu-panel,.site-header__menu-row,.site-header__menu-dot{animation:none!important;transition:none!important}.site-header__logo:after{transform:scaleX(1)}.site-header__nav-link[data-active=true]:after{transform:scaleX(1)}}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background-color:var(--color-bg);background-image:var(--grain-image);background-repeat:repeat;background-size:200px 200px;background-blend-mode:overlay;color:var(--color-ink);min-height:100vh}h1,h2,h3,h4{line-height:var(--leading-tight);font-weight:500;margin:0 0 var(--space-3);color:var(--color-ink)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-fg);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit}button,a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}input{font-family:inherit;font-size:inherit}.container{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--space-4)}.container--wide{max-width:var(--max-width-wide)}.container--narrow{max-width:var(--max-width-narrow)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.passcode-form{display:flex;flex-direction:column;gap:var(--space-3)}.passcode-form__input{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-latin);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);text-align:center;letter-spacing:.2em;min-height:44px}.passcode-form__input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-accent-glow)}.passcode-form__submit{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-body);background:var(--color-accent);color:var(--color-on-accent);border:none;border-radius:var(--radius-sm);letter-spacing:.1em;transition:background .2s ease,transform .15s ease}.passcode-form__submit:hover:not(:disabled){background:var(--color-accent-deep);transform:translateY(-1px)}.passcode-form__submit:disabled{background:var(--color-surface-muted);color:var(--color-ink-faint);cursor:not-allowed;opacity:.5}.theme-toggle{width:28px;height:28px;border-radius:50%;border:1px solid var(--color-border-strong);background:transparent;color:var(--color-ink-muted);font-family:var(--font-latin);font-size:13px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;min-height:auto;transition:border-color .15s ease,color .15s ease,background .15s ease}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--color-accent);color:var(--color-accent-fg);background:transparent;outline:none}.theme-toggle:active{background:var(--color-accent);color:var(--color-on-accent)}@keyframes theme-glyph-spin{0%{opacity:0;transform:rotate(-180deg) scale(.6)}to{opacity:1;transform:rotate(0) scale(1)}}.theme-toggle__glyph{display:inline-flex;animation:theme-glyph-spin .2s cubic-bezier(.34,1.2,.64,1) both}@media(prefers-reduced-motion:reduce){.theme-toggle__glyph{animation:none}}.alpha-feedback-link{position:fixed;bottom:16px;right:16px;z-index:50;font-family:var(--font-body);font-size:12px;letter-spacing:.05em;color:var(--color-ink-muted);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:999px;padding:6px 14px;text-decoration:none;box-shadow:0 2px 8px #00000014;transition:color .15s ease,border-color .15s ease,background .15s ease}.alpha-feedback-link:hover{color:var(--color-accent-fg);border-color:var(--color-accent);background:var(--color-surface)}.alpha-feedback-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(max-width:640px){.alpha-feedback-link{bottom:12px;right:12px;font-size:11px;padding:5px 12px}}
