:root{--paper:#FAFAFA;--ink:#3E3E3E;--green:#8C6A4E;--gold:#8C6A4E;--line:#D5DCD2;--muted:#646A61;--primary:#8C6A4E;--secondary:#A7B6A2;--accent:#D9A066}
body{background:var(--paper);line-height:1.8}
button,a,input,textarea{ -webkit-tap-highlight-color:transparent }
button{min-height:44px}
.knowledge-skip{position:fixed;left:20px;top:-100px;z-index:100;background:#fff;padding:12px 20px;border-radius:8px}
.knowledge-skip:focus{top:15px}

.site-public{background:var(--paper)!important;color:var(--ink)!important}
.site-public .site-header{padding-top:23px;padding-bottom:23px}
.site-public .site-header nav a{padding:7px 0;text-underline-offset:.35em}
.site-public .site-main{max-width:1380px}
.site-public .site-hero{grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);gap:64px;margin:56px 0 80px}
.site-public .site-hero-image{width:100%;max-width:335px;margin:auto;padding:20px 20px 24px;border:1px solid var(--line);border-radius:160px 160px 18px 18px;background:#EDF0EB}
.site-public .site-hero-image>img{height:auto;aspect-ratio:2/3;object-fit:contain;border-radius:140px 140px 8px 8px}
.site-public .site-portrait-caption{padding:16px 6px 0;gap:3px}
.site-public .site-hero-copy{background:none;padding:0;margin:0;min-width:0}
.site-public .site-hero h1{font-size:clamp(34px,3.4vw,49px);line-height:1.55;margin:18px 0 24px;letter-spacing:.02em}
.site-public .site-hero-copy>p{line-height:1.95}
.site-home-search{margin-top:28px}
.site-home-search label{display:block;font-size:1rem;font-weight:600;margin-bottom:10px}
.site-home-search form>div{display:flex;gap:8px;padding:7px;background:#fff;border:1px solid #D5DCD2;border-radius:12px;box-shadow:0 7px 24px #8C6A4E08}
.site-home-search input{min-width:0;flex:1;width:100%;border:0;background:transparent;padding:12px 14px;font-size:1rem;color:var(--ink)}
.site-home-search button{border:0;background:var(--green);color:#fff;white-space:nowrap;padding:12px 20px;border-radius:8px;font-size:1rem}
.site-search-examples{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:.9rem;margin:14px 0;color:var(--muted)}
.site-public .site-search-examples a{color:var(--green);text-decoration:underline;text-decoration-color:#D5DCD2;text-underline-offset:.3em}
.site-public .site-actions{margin:23px 0;gap:22px}
.site-public .site-hero-note{font-size:.9rem;line-height:1.85;margin-bottom:0}
.site-public .site-section{margin:76px 0}
.site-public .site-section>h2{font-size:1.75rem;font-weight:500;letter-spacing:.03em;margin-bottom:28px}
.site-public .site-topic-grid{gap:18px}
.site-public .site-topic{background:#FAFAFA;border-color:var(--line);padding:28px 24px;gap:17px;box-shadow:0 3px 10px #8C6A4E03}
.site-public .site-topic h3{font-size:1.18rem;line-height:1.55;margin-bottom:10px}
.site-public .site-topic p{font-size:.95rem;line-height:1.9}
.site-public .site-topic>span{border-radius:6px;background:#EDF0EB;color:var(--green)}
.site-public .site-path{background:#EDF0EB;border:1px solid var(--line);padding:34px}
.site-public .site-path h3{font-size:1.45rem;line-height:1.7}
.site-public .site-path p,.site-public .site-path li{font-size:1rem;line-height:1.9}
.site-public .site-path li{padding:12px 0}
.site-public .site-path li a:hover{text-decoration:underline}
.site-public .site-carousel{background:#EDF0EB;border:1px solid #EDF0EB}

.sidebar{width:270px;padding:32px 22px;background:#EDF0EB;border-color:var(--line);overflow-y:auto;gap:0}
.sidebar .brand{gap:12px;line-height:1.5;flex-shrink:0}
.sidebar .brand>span{font-size:21px}
.sidebar .brand small{font-size:13px;letter-spacing:.05em;line-height:1.8;color:#646A61}
.sidebar .library-brand-logo{width:47px;height:60px;object-fit:contain;flex-shrink:0}
.sidebar .navlabel{margin:30px 10px 17px;color:var(--muted);font-size:16px}
.sidebar nav{gap:7px}
.sidebar nav button{font-size:17px;padding:13px 15px;border-radius:9px;line-height:1.6;min-height:51px}
.sidebar nav button:not(.selected):hover{background:#EDF0EB}
.sidebar nav button>span{width:23px;text-align:center;color:var(--gold)}
.sidebar nav button.selected>span{color:#F4EEE8}
.sidebar .account{margin-top:auto;padding-top:22px;font-size:17px}
.sidebar .account small{font-size:14px}
.sidebar .signout{font-size:16px;margin:14px 0 0 51px;color:var(--green);text-decoration:underline;text-underline-offset:.3em}
.main{margin-left:270px;padding:0 clamp(24px,4vw,68px);max-width:1800px}
.main>header{height:88px;font-size:16px;gap:18px}
.main>.reading-note{font-size:16px;background:#EDF0EB;line-height:1.9;border-color:#8C6A4E;padding:17px 22px}
.main .hero{padding:43px 0 28px}
.main .hero h1{font-size:clamp(32px,3.3vw,47px);max-width:760px;letter-spacing:.015em;line-height:1.6}
.main .intro{font-size:var(--site-body-size,19px);max-width:770px;color:var(--muted)}
.main .seal{opacity:.19;right:3%;top:52px;pointer-events:none}
.main .search{max-width:100%;border-color:#D5DCD2;border-radius:12px;background:#FAFAFA;padding:8px 9px 8px 18px}
.main .search input{font-size:19px;line-height:1.7}
.main .search button{font-size:18px;min-height:50px}
.main .chips{gap:10px;margin:20px 0 28px;align-items:center}
.main .chips button,.dialog .chips button{border-radius:8px;font-size:17px;line-height:1.65;background:#FAFAFA;white-space:normal;padding:10px 15px;text-align:left}
.main .chips button.chosen{background:var(--green);color:#fff;border-color:var(--green)}
.main .stats{gap:35px;padding:25px 0;margin-bottom:40px}
.main .stats span,.main .stats p{font-size:16px}
.main .stats b{font-size:34px}
.main .stats p{max-width:245px}
.main .sectiontitle{gap:20px;margin-bottom:23px}
.main .sectiontitle h2{font-size:29px;font-weight:500;margin:8px 0;line-height:1.6}
.main .sectiontitle button{font-size:17px;white-space:nowrap;padding:10px}
.main .eyebrow,.dialog .eyebrow{font-size:16px;letter-spacing:.12em}
.main .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.main .tile{padding:29px;background:#FAFAFA;border-radius:13px;min-width:0}
.main .tile h3{font-size:24px;line-height:1.65;margin:14px 0 15px;font-weight:500}
.main .tile p{font-size:18px;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.main .tile .tiny{font-size:16px;color:#646A61}
.main .tile .theme-words{gap:8px 12px;font-size:16px;margin:0 0 18px}
.main .tile .theme-words li{font-size:16px;border-left-width:2px}
.main .read{font-size:17px;color:#8C6A4E;padding-top:8px}
.main .topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.main .topic-card{padding:27px 23px;border-radius:12px;gap:17px}
.main .topic-card h3{font-size:23px;line-height:1.5;margin-bottom:10px}
.main .topic-card p{font-size:18px;line-height:1.85;margin-bottom:14px}
.main .topic-card small{font-size:16px;color:#8C6A4E}
.main .topic-mark{flex-basis:40px;height:45px}
.main .learning-grid{gap:22px}
.main .learning-path{padding:30px;border-radius:13px}
.main .learning-path h3{font-size:25px;line-height:1.6}
.main .learning-path>p{font-size:18px;line-height:1.9}
.main .learning-path li button{font-size:18px;line-height:1.85;padding:13px 0;gap:15px}
.main .path-more{font-size:18px;line-height:1.7;margin-top:22px;background:transparent}
.main footer{font-size:18px}
.main footer small{font-size:16px;line-height:1.8}

.overlay{padding:35px 24px;background:#8C6A4Eb8;overscroll-behavior:contain}
.reading-dialog{width:min(1120px,100%);max-height:none;padding:38px 52px 48px;border-radius:16px;background:var(--paper);position:relative}
.reading-dialog>.close{position:sticky;top:0;z-index:2;background:#FAFAFA;border-color:#D5DCD2;float:right;margin:0 0 12px 15px;box-shadow:0 3px 10px #8C6A4E10}
.reading-dialog>h2{font-size:clamp(28px,3vw,38px);font-weight:500;line-height:1.65;max-width:28em;margin:22px 0 18px;clear:both}
.reading-dialog>.theme-words{font-size:17px;gap:14px;margin:0 0 34px}
.reading-dialog>.theme-words li{font-size:17px}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:48px;align-items:start}
.article-prose{width:100%;max-width:38em;white-space:normal;font-size:var(--site-reading-size,21px);line-height:2.05;color:#8C6A4E}
.article-prose p{margin:0 0 1.5em;white-space:pre-wrap;scroll-margin-top:80px}
.article-prose p:focus{outline:2px solid var(--gold);outline-offset:6px}
.article-outline{position:sticky;top:65px;border-left:1px solid var(--line);padding:0 0 0 20px;color:var(--muted);font-size:16px;max-height:65vh;overflow:auto}
.article-outline>p{margin:0 0 14px;color:var(--green);font-weight:600}
.article-outline ol{padding-left:22px;margin:0}
.article-outline li{padding:0 0 14px;line-height:1.85}
.article-outline a:hover{text-decoration:underline}
.reading-dialog .path-context{background:#EDF0EB;border:1px solid #EDF0EB;border-radius:10px;padding:23px;gap:15px}
.path-context>div{display:grid;gap:5px;flex:1;min-width:190px}
.reading-dialog .path-context span{display:block;font-size:16px}
.reading-dialog .path-context button{font-size:17px;background:#FAFAFA;margin-left:0}
.reading-dialog .path-context .path-next{flex-basis:100%;text-align:left;background:var(--green);color:#fff;font-size:19px;line-height:1.8;padding:17px 20px;border:0}
.reading-dialog .path-next>span{color:#EDF0EB;font-size:16px;margin-bottom:5px}
.reading-dialog .related-reading{padding-top:22px}
.reading-dialog .related-reading h3{font-size:25px}
.reading-dialog .related-reading>p,.reading-dialog .related-links button{font-size:18px}
.reading-dialog .related-links button{padding:14px 17px;line-height:1.85}
.reading-dialog .solid-link{font-size:18px}

.login-page{min-height:100dvh;padding:36px 24px 60px;background:radial-gradient(ellipse at top,#EDF0EB 0,transparent 65%),var(--paper)}
.login-back{display:block;max-width:540px;margin:0 auto 24px;color:var(--green);font-size:17px}
.login-page .login-card{max-width:540px;min-height:0;margin:0 auto;padding:40px 42px;background:#FAFAFA;border:1px solid #EDF0EB;border-radius:19px;box-shadow:0 14px 50px #8C6A4E08}
.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:35px;color:var(--green)!important;font-family:'Noto Serif TC',serif;font-size:24px;font-weight:600;line-height:1.6}
.login-brand>span{display:grid;place-items:center;flex-shrink:0;width:52px;height:58px;border:1px solid #8C6A4E;border-radius:27px 27px 6px 6px;color:var(--gold);font-size:30px}
.login-brand small{display:block;font-family:'Noto Sans TC',sans-serif;font-size:15px;font-weight:400;letter-spacing:.1em;color:var(--muted);margin-top:3px}
.login-card .eyebrow{font-size:16px;margin:0}
.login-card h1{font-size:35px;font-weight:500;margin:10px 0 18px;line-height:1.5}
.login-card .login-intro{font-size:18px;line-height:1.95;color:var(--muted);margin-bottom:28px}
.login-card .social-login{gap:12px;margin:26px 0}
.login-card .social-login button{display:flex;align-items:center;justify-content:center;gap:14px;position:relative;min-height:58px;background:#fff;font-size:18px;color:var(--ink);border-color:#D5DCD2}
.login-card .provider-mark{display:grid;place-items:center;width:32px;min-width:32px;height:30px;font-family:Arial,sans-serif;font-weight:700;line-height:1;font-size:24px}
.login-card .provider-line{font-size:11px;border-radius:5px;background:#168343;color:#fff}
.login-divider{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:16px;margin:25px 0}
.login-divider:before,.login-divider:after{content:'';height:1px;flex:1;background:var(--line)}
.login-card .member-form{gap:19px;margin:24px 0}
.login-card .member-form label{font-size:18px;font-weight:500;gap:9px}
.login-card .member-form input{font-size:19px;padding:13px 15px;border-color:#D5DCD2;border-radius:8px;background:#fff}
.login-card .member-form small{font-size:16px;line-height:1.8;color:var(--muted)}
.login-card .member-form>button[type=submit]{background:var(--green);color:white;border-color:var(--green);font-size:19px;min-height:56px}
.login-card .member-form .login-forgot{justify-self:end;border:0;background:transparent;color:var(--green);font-size:16px;padding:0;min-height:30px;margin-top:-9px}
.login-mode-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;font-size:17px;color:var(--muted);margin:22px 0}
.login-mode-links button{background:transparent;border:0;padding:5px;color:var(--green);font-size:17px;text-decoration:underline;text-underline-offset:.3em}
.login-card .login-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0 0;margin:30px 0 0;font-family:'Noto Sans TC',sans-serif;font-size:16px}
.login-card .login-footer a{color:var(--muted);text-decoration:underline;text-underline-offset:.3em}
.login-card .notice{font-size:17px;background:#EDF0EB;line-height:1.85}
.login-state{font-size:18px;line-height:1.9}
.login-state button,.login-retry{display:block;margin-top:16px}
.login-state .solid-link,.login-signed-in .solid-link{background:var(--green);font-size:18px}
.login-signed-in{display:grid;gap:18px}

@media(min-width:1600px){.main .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1150px){.sidebar{width:238px;padding:30px 17px}.main{margin-left:238px;padding:0 30px}.main .topic-grid{grid-template-columns:1fr}.main .learning-grid{grid-template-columns:1fr}.site-public .site-hero{gap:35px}.site-public .site-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{gap:28px;grid-template-columns:minmax(0,1fr) 160px}.reading-dialog{padding:32px 35px}.main .stats{gap:24px;flex-wrap:wrap}.main .stats p{margin:0}}
@media(max-width:850px){.article-layout{grid-template-columns:1fr}.article-outline{display:none}.article-prose{max-width:38em;margin:auto}.site-public .site-hero{grid-template-columns:.75fr 1.25fr;gap:28px}.site-public .site-hero-image{padding:14px}.site-home-search form>div{flex-wrap:wrap}.site-home-search input{flex-basis:100%}.site-home-search button{width:100%}}
@media(max-width:720px){
 .sidebar{position:static;width:100%;height:auto;padding:21px 20px 17px;border-bottom:1px solid var(--line);border-right:0;overflow:visible}
 .sidebar .brand{font-size:25px}.sidebar .brand>span{font-size:22px}.sidebar .brand small{font-size:14px}.sidebar .library-brand-logo{height:52px;width:42px}
 .sidebar nav{display:flex;gap:7px;overflow-x:auto;flex-wrap:nowrap;margin-top:19px;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:#D5DCD2 transparent}
 .sidebar nav button{font-size:17px;padding:10px 14px;flex-shrink:0;min-height:47px}.sidebar nav button>span{display:none}
 .sidebar .signout{display:block;align-self:flex-end;font-size:16px;margin:10px 2px 0}.sidebar .wallet-nav{margin:12px 0 0;font-size:16px}
 .main{margin:0;padding:0 21px}.main>header{font-size:15px;min-height:72px;height:auto;padding:17px 0}.main .pill{font-size:14px;padding:6px 10px}
 .main>.reading-note{font-size:16px;margin-top:23px;padding:15px 17px}.main .hero{padding:25px 0}.main .hero h1{font-size:33px}.main .intro{font-size:19px;line-height:1.95}.main .seal{display:none}
 .main .search{padding:8px;flex-wrap:wrap;gap:5px}.main .search input{font-size:18px;flex-basis:100%;padding:12px 8px;min-height:50px}.main .search button{font-size:18px;width:100%;padding:12px 16px}
 .main .chips{gap:8px;margin:18px 0 25px}.main .chips button{font-size:17px;padding:9px 13px}.main .stats{gap:20px 27px;margin-bottom:27px}.main .stats b{font-size:31px}.main .stats span{font-size:15px}.main .stats p{max-width:none;flex-basis:100%;font-size:17px}
 .main .tiles{grid-template-columns:1fr;gap:18px}.main .tile{padding:25px}.main .tile h3{font-size:23px}.main .tile p{font-size:18px}.main .sectiontitle{align-items:flex-start;gap:10px}.main .sectiontitle h2{font-size:26px}.main .sectiontitle button{font-size:16px;padding:8px 0}
 .main .topic-grid{grid-template-columns:1fr;gap:15px}.main .topic-card{padding:24px 21px}.main .topic-card h3{font-size:23px}.main .topic-card p{font-size:18px}.main .learning-path{padding:26px 23px}.main .learning-path h3{font-size:25px}
 .overlay{padding:12px 9px}.reading-dialog{padding:24px 20px 35px;border-radius:12px;max-height:none}.reading-dialog>h2{font-size:29px;line-height:1.7}.reading-dialog>.close{top:0;font-size:17px;padding:10px 16px}.article-prose{font-size:var(--site-reading-size,21px);line-height:2.05}.reading-dialog .path-context{padding:20px}.reading-dialog .path-context .path-next{font-size:19px}.reading-dialog .related-reading h3{font-size:24px}
 .site-public .site-main{padding-left:22px;padding-right:22px}.site-public .site-hero{display:flex;flex-direction:column;margin:30px 0 60px;gap:32px;align-items:stretch}.site-public .site-hero-copy{order:-1}.site-public .site-hero h1{font-size:35px;margin-top:12px}.site-public .site-hero-image{max-width:290px;padding:17px 17px 23px}.site-public .site-hero-note{font-size:17px}.site-public .site-hero .site-actions{gap:22px}.site-home-search{margin-top:26px}.site-home-search label{font-size:18px}.site-home-search input{font-size:18px}.site-search-examples{font-size:17px;gap:17px}.site-public .site-topic-grid,.site-public .site-path-grid{grid-template-columns:1fr}.site-public .site-topic{padding:25px 22px}.site-public .site-topic h3{font-size:23px}.site-public .site-topic p{font-size:18px}.site-public .site-section{margin:55px 0}.site-public .site-section>h2{font-size:30px}.site-public .site-path{padding:27px 24px}.site-public .site-path h3{font-size:27px}.site-public .site-path li{font-size:19px}.site-public .site-header nav{font-size:17px;gap:8px 20px}
 .login-page{padding:23px 16px 40px}.login-back{font-size:17px;margin-bottom:20px}.login-page .login-card{padding:30px 24px;border-radius:14px}.login-brand{font-size:23px;margin-bottom:28px}.login-card h1{font-size:32px}.login-card .login-intro{font-size:18px}.login-card .login-footer{font-size:16px}.login-card .social-login button{font-size:17px;padding:12px 9px;gap:9px}
}
@media(prefers-reduced-motion:reduce){.tile,.site-topic{transition:none!important;transform:none!important}}
.topic-select{display:none}
@media(max-width:1000px){.main .tiles{grid-template-columns:1fr}.topic-filters>.chips{display:none}.topic-select{display:grid;gap:9px;font-size:18px;margin:22px 0}.topic-select select{width:100%;min-width:0;background:#FAFAFA;color:var(--green);padding:14px 12px;border:1px solid #D5DCD2;border-radius:9px;font:inherit}}

@media(min-width:701px){.site-public .site-hero{grid-template-columns:minmax(0,1.35fr) minmax(240px,.8fr)}.site-public .site-hero .site-hero-image{justify-self:end;margin-left:0;margin-right:0}}
@media(max-width:700px){.site-public .site-hero .site-hero-image{margin-left:auto;margin-right:auto}}

.support-knowledge{padding:22px 26px;border:1px solid #EDF0EB;border-radius:12px;background:#EDF0EB;color:var(--ink);line-height:1.9}
.support-knowledge h3{font-size:20px;margin:0 0 8px;font-weight:600;color:var(--green)}
.support-knowledge p{margin:0;font-size:17px}
.support-knowledge a{display:inline-block;color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:4px;margin:0 .25em}
.site-footer{display:flex;flex-wrap:wrap;gap:24px}
.site-footer>.support-knowledge{flex-basis:100%;width:100%}
.site-footer-meta{flex:1;min-width:0}
.site-footer-meta p{margin:0 0 8px}
.site-footer-meta a{text-decoration:underline;text-underline-offset:4px}
.site-footer .visit-counter small{display:block;max-width:650px;font-size:13px;line-height:1.7;color:var(--muted)}
.visit-counter strong{font-variant-numeric:tabular-nums;color:var(--green)}
.reading-dialog>.support-knowledge{margin-top:28px}
@media(max-width:700px){.support-knowledge{padding:18px}.support-knowledge p{font-size:16px}.site-footer{flex-direction:column;gap:20px}.site-footer>nav{flex-wrap:wrap;gap:14px}.site-footer>.support-knowledge{flex-basis:auto}}

/* Coffee and mist-green preview palette. */
.site-public h1,.site-public h2,.site-public h3,.main h1,.main h2,.dialog h2{color:var(--primary)}
.site-public .site-hero-image,.sidebar{background:#EDF0EB;border-color:var(--secondary)}
.contact-callout,.support-knowledge{background:#F1F3EF;border-color:var(--secondary)}
.contact-callout h3{color:var(--primary)}
.site-public a.solid-link,.solid-link,.site-public .site-button{background:var(--primary);color:#fff}
.site-public a.solid-link:hover,.solid-link:hover,.site-public .site-button:hover,.site-home-search button:hover,.search button:hover{background:var(--accent);color:#3E3E3E}
.site-public .site-topic:hover,.topic-card:hover,.tile:hover{border-color:var(--accent)}
.site-public .site-topic>span,.topic-mark{background:#EDF0EB;border-color:var(--secondary);color:var(--primary)}
a:focus-visible,button:focus-visible,input:focus-visible{outline-color:var(--primary)}

/* Topic cards signal interaction as a whole; article text stays distinct from headings. */
.site-public a.site-topic,.site-public a.site-topic:hover,.site-public a.site-topic:focus-visible{text-decoration:none;position:relative;padding-right:44px;transition:background-color .18s,border-color .18s,box-shadow .18s}
.site-public a.site-topic::after{content:'↗';position:absolute;right:17px;top:25px;color:var(--primary);font-size:20px;line-height:1;transition:transform .18s}
.site-public a.site-topic:hover,.site-public a.site-topic:focus-visible{background:#EDF0EB;border-color:var(--primary);box-shadow:0 4px 14px #8c6a4e14}
.site-public a.site-topic:hover::after{transform:translate(2px,-2px)}
.reading-dialog .article-prose,.reading-dialog .article-prose p{color:#3E3E3E}
.reading-dialog>.eyebrow,.reading-dialog>.theme-words,.reading-dialog>.theme-words li{color:#566653}
.reading-dialog>.theme-words li{border-color:#A7B6A2}
@media(prefers-reduced-motion:reduce){.site-public a.site-topic,.site-public a.site-topic::after{transition:none}.site-public a.site-topic:hover::after{transform:none}}

/* News cards share the topic cards' whole-card interaction. */
.site-public .site-news-grid>a.site-card,.site-public .site-news-grid>a.site-card:hover,.site-public .site-news-grid>a.site-card:focus-visible{text-decoration:none;transition:background-color .18s,border-color .18s,box-shadow .18s}
.site-public .site-news-grid>a.site-card:hover,.site-public .site-news-grid>a.site-card:focus-visible{background:#EDF0EB;border-color:var(--primary);box-shadow:0 4px 14px #8c6a4e14}
.site-public .site-news-grid>a.site-card .site-text-link{display:inline-block;color:var(--primary);text-decoration:none;transition:transform .18s}
.site-public .site-news-grid>a.site-card:hover .site-text-link{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){.site-public .site-news-grid>a.site-card,.site-public .site-news-grid>a.site-card .site-text-link{transition:none}.site-public .site-news-grid>a.site-card:hover .site-text-link{transform:none}}

/* Hallmark audit: compact guidance, task-first management and quiet navigation. */
:root{--paper:var(--surface-paper);--ink:var(--text-main);--primary:var(--brand-brown);--green:var(--brand-brown);--gold:var(--brand-brown);--secondary:var(--brand-sage);--line:var(--border-soft);--muted:var(--text-muted)}
.reading-guidance{margin:12px 0 20px;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted)}
.reading-guidance summary{cursor:pointer;padding:10px 0;min-height:44px}
.reading-guidance p{max-width:65em;line-height:1.9;margin:4px 0 18px}
.main .admin-workspace{padding-top:8px}
.admin-workspace h1{margin:8px 0 18px}
.admin-workspace .stats{gap:32px;padding:12px 0;margin:0 0 8px;border-bottom:1px solid var(--line)}
.admin-workspace .stats b{font-size:28px}
.admin-workspace .stats span{font-size:16px}
.admin-workspace h2{margin:22px 0 14px}
.admin-workspace .question{padding:14px 18px;margin:16px 0}
.reading-dialog>details{margin:18px 0;padding:12px 0;border-block:1px solid var(--line)}
.reading-dialog>details summary{cursor:pointer;font-weight:600;min-height:32px}
.site-public .site-section-topics{margin:44px 0 64px}
.site-public .site-section-news{margin:56px 0}
.site-public a.site-topic,.site-public a.site-news-card{transition:background-color .18s}
.site-public a.site-topic:hover,.site-public a.site-topic:focus-visible,.site-public a.site-news-card:hover,.site-public a.site-news-card:focus-visible{background:var(--surface-soft);border-color:var(--line);box-shadow:none}
.site-public a.site-topic:hover::after,.site-public a.site-topic:focus-visible::after,.site-public a.site-news-card:hover .site-read-link,.site-public a.site-news-card:focus-visible .site-read-link{transform:none}
.sy-guide{font-family:var(--font-body);color:var(--text-main)}
.sy-guide-launcher:hover img{transform:none}
:where(a,button,input,textarea,select,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}
@media(max-width:720px){.admin-workspace .stats{gap:18px;flex-wrap:wrap}.admin-workspace .stats b{font-size:25px}.reading-guidance{margin-bottom:10px}.site-public .site-section-topics{margin:32px 0 48px}.site-public .site-section-news{margin:42px 0}}
@media(prefers-reduced-motion:reduce){.site-public a.site-topic,.site-public a.site-news-card{transition:none}}

/* The entire portrait card opens the teacher introduction. */
.site-public a.site-hero-image{display:block;color:inherit;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.site-public a.site-hero-image:hover{text-decoration:none}
.site-public a.site-hero-image:focus-visible{outline:3px solid var(--primary);outline-offset:5px}

.site-public a.site-hero-image:is(:hover,:focus-visible,:active){background:#F5EDDC;border-color:#B08A43;box-shadow:0 0 0 1px #B08A43}
.site-public a.site-hero-image:is(:hover,:focus-visible,:active) .site-portrait-caption strong{color:#87651F}
.site-public a.site-hero-image:focus-visible{outline-color:#B08A43}
@media(prefers-reduced-motion:reduce){.site-public a.site-hero-image{transition:none}}

/* Roles introduce the portrait; the teacher name is the visual focus. */
.site-public .site-portrait-caption{gap:8px;padding-top:20px;text-align:center;align-items:center}
.site-public .site-portrait-caption>span{font-size:15px;line-height:1.8;font-weight:500;letter-spacing:.02em;text-wrap:balance}
.site-public .site-portrait-caption>strong{font-family:'Noto Serif TC',serif;font-size:34px;line-height:1.45;font-weight:700;letter-spacing:.08em}
