@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');
/* Shared DayJimmer shell — aligned with the current homepage. */
.home-page{--text:var(--ink);--surface:var(--bg);--surface-strong:var(--bg)}
html:has(body:not(.home-page)),body:not(.home-page){--bg:#fff;--surface:var(--bg);--surface-strong:#f7f7f4;--text:#101010;--muted:#62625e;--accent:#756b5d;--accent-strong:color-mix(in srgb,var(--accent) 82%,var(--text));--accent-contrast:#fff;--ink:#f7f7f4;--line:#d8d8d3;--shadow:transparent}
body:not(.home-page){background:var(--bg);color:var(--text);font-family:"DM Mono","Noto Sans TC",monospace;transition:background-color .7s cubic-bezier(.22,1,.36,1),color .7s}
body:not(.home-page) :is(h1,h2,h3,h4,h5,h6){font-family:"Lora",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.025em}body:not(.home-page) :is(button,input,select,textarea){font-family:"DM Mono","Noto Sans TC",monospace}
html[data-theme=dark]:has(body:not(.home-page)),html[data-theme=dark] body:not(.home-page){--bg:#070b0a;--surface:var(--bg);--surface-strong:#0d1411;--text:#f5f7f4;--muted:#b9c5bf;--accent:#756b5d;--accent-strong:color-mix(in srgb,var(--accent) 82%,var(--text));--accent-contrast:#fff;--ink:#0b100d;--line:#26332d;--shadow:transparent}
header.topbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;width:100%;max-width:none;height:76px;margin:0;padding:0 3vw;border:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent);box-shadow:none;backdrop-filter:blur(14px)}
.topbar .brand{color:var(--text);font-weight:700;letter-spacing:-.05em;text-decoration:none}.topbar .site-nav{display:flex;flex-wrap:nowrap;gap:clamp(18px,2.4vw,38px);width:auto;margin:0}.topbar .site-nav a{position:relative;padding:12px 0;border:0;border-radius:0;color:var(--text);font-size:.78rem;font-weight:400;letter-spacing:.1em;line-height:1;text-decoration:none;text-transform:uppercase}.topbar .site-nav a::after{content:"";position:absolute;right:100%;bottom:7px;left:0;height:1px;border-radius:0;background:currentColor;transition:right .25s}.topbar .site-nav a:hover::after,.topbar .site-nav a:focus-visible::after,.topbar .site-nav a.active::after{right:0}.topbar .site-nav a.active{color:var(--text)}
.nav-actions{display:flex;align-items:center;gap:10px;min-width:max-content}.language-toggle{display:flex;align-items:center;gap:5px;padding:0 4px;border:0;background:transparent;color:var(--muted);font:400 .72rem/1 "DM Mono",monospace;letter-spacing:.08em;cursor:pointer}.language-toggle i{font-style:normal;opacity:.45}.language-toggle span{padding:8px 2px}.language-toggle span.is-active{color:var(--text);text-decoration:underline;text-underline-offset:4px}
.theme-toggle,.menu-toggle,.nav-login-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;min-width:46px;height:46px;margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--text);cursor:pointer}.theme-toggle{position:relative;overflow:hidden}.theme-toggle span{position:absolute;inset:0;display:grid;place-items:center;font-size:1.25rem;transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .4s}.theme-toggle .moon{opacity:0;transform:rotate(-70deg) scale(.45)}html[data-theme=dark] .theme-toggle .sun{opacity:0;transform:rotate(70deg) scale(.45)}html[data-theme=dark] .theme-toggle .moon{opacity:1;transform:rotate(0) scale(1)}
.nav-login-icon{width:46px;min-width:46px;padding:0;border-radius:50%}.nav-login-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nav-login-initial{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--text);color:var(--bg);font-size:.72rem;font-weight:700}.menu-toggle{display:none;padding:11px}.menu-toggle span{display:block;width:22px;height:1px;margin:4px 0;background:currentColor;transition:.3s}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.page-titlebar{width:min(1080px,calc(100% - 32px));max-width:1080px;margin:0 auto;padding:34px 0 0}.page-titlebar h1,.page-titlebar h2{color:var(--text);font-family:"Lora",Georgia,serif;font-weight:400}.page-titlebar .eyebrow{color:var(--muted)}body:not(.home-page) main{padding-top:28px}body:not(.home-page) .card{border:1px solid var(--line);border-radius:16px;background:var(--bg);box-shadow:none}body:not(.home-page) .card-header,body:not(.home-page) .card-footer{border-color:var(--line);background:transparent}body:not(.home-page) .hero-copy,body:not(.home-page) .case-row{background:var(--bg);box-shadow:none}body:not(.home-page) a.card-link:hover,body:not(.home-page) a.card-link:focus-visible{border-color:var(--text);box-shadow:none}
body:not(.home-page) .btn-primary{--bs-btn-color:var(--accent-contrast);--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-color:var(--accent-contrast);--bs-btn-hover-bg:var(--accent-strong);--bs-btn-hover-border-color:var(--accent-strong);--bs-btn-active-color:var(--accent-contrast);--bs-btn-active-bg:var(--accent-strong);--bs-btn-active-border-color:var(--accent-strong)}body:not(.home-page) .mode-btn.active,body:not(.home-page) .mode-btn:hover{color:var(--accent-contrast)}
/* Login drawer, also used by the homepage (which does not load legacy styles.css). */
.login-drawer-root{position:fixed;inset:0;z-index:100;pointer-events:none}.login-drawer-root.open{pointer-events:auto}.login-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58);opacity:0;transition:opacity .22s}.login-drawer-root.open .login-backdrop{opacity:1}.login-drawer{position:absolute;top:0;right:0;display:grid;align-content:start;gap:22px;width:min(420px,92vw);height:100%;padding:28px;border-left:1px solid var(--line);background:var(--surface,var(--bg));color:var(--text,var(--ink));box-shadow:-24px 0 70px rgba(0,0,0,.28);transform:translateX(100%);transition:transform .26s;overflow-y:auto}.login-drawer-root.open .login-drawer{transform:translateX(0)}.login-drawer-open{overflow:hidden}.login-close{justify-self:end;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:inherit;font-size:1.45rem;cursor:pointer}.login-form{display:grid;gap:10px}.login-form label{color:var(--muted);font-size:.88rem;font-weight:700}.login-form input,.login-form select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text,var(--ink));font:inherit}.login-message{min-height:1.4em;color:var(--accent-strong,var(--ink));font-weight:700}.login-message.error{color:#e45c4d}.login-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.login-submit,.signup-submit,.signup-confirm,.login-logout{min-height:44px;border:1px solid var(--line);border-radius:999px;font:inherit;font-weight:700;cursor:pointer}.login-submit,.signup-confirm{background:var(--text,var(--ink));color:var(--bg)}.signup-submit,.login-logout{background:transparent;color:inherit}.signup-actions{grid-template-columns:1fr}.login-switch-link{justify-self:start;border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.login-user-panel{display:grid;gap:16px}.login-user-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--text,var(--ink));color:var(--bg)}.login-user-avatar .nav-login-initial{width:100%;height:100%}.hidden{display:none!important}
@media(max-width:960px){header.topbar{height:64px;padding:0 18px;grid-template-columns:1fr auto;gap:12px}.topbar .nav-actions{grid-column:2}.topbar .site-nav{position:absolute;top:64px;right:0;left:0;display:grid;gap:0;width:100%;padding:0 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .4s,opacity .25s,visibility .4s;backdrop-filter:blur(14px)}.topbar .site-nav.is-open{max-height:260px;padding-top:10px;padding-bottom:10px;opacity:1;visibility:visible}.topbar .site-nav a{padding:13px 2px;border-bottom:1px solid var(--line)}.menu-toggle{display:block}.nav-login-icon{width:40px;min-width:40px;height:40px;padding:0}.theme-toggle,.menu-toggle{width:40px;min-width:40px;height:40px}.page-titlebar{padding-top:24px}}
@media(max-width:560px){.language-toggle{display:none}}
