:root{--ink:#18213a;--navy:#18213a;--gold:#a17c2a;--gold-soft:#e2c47a;--paper:#fffaf2;--card:#fffdf8;--line:#e1daca;--muted:#596173;--blue:#5bcefa;--pink:#f5a9b8;--ease:cubic-bezier(.16,1,.3,1)}
html{scroll-behavior:smooth;scroll-padding-top:125px}body{font-family:"Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif;font-size:15px}h1,h2,legend,.brand b{font-family:"Noto Serif TC","PMingLiU",serif}h1{font-weight:600;line-height:1.6;letter-spacing:.05em}h2{font-weight:600}.trans-band{height:6px;background:linear-gradient(90deg,var(--blue) 0 20%,var(--pink) 20% 40%,white 40% 60%,var(--pink) 60% 80%,var(--blue) 80%)}
.hero-seal{height:auto;aspect-ratio:1;object-fit:contain;max-width:100%}
.skip{position:fixed;top:-100px;left:15px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #336c91;outline-offset:4px}
.masthead{position:sticky;top:0;z-index:20;background:rgba(24,33,58,.97);border-bottom:1px solid #c9a14a;transition:box-shadow .4s,background .4s}.masthead.scrolled{box-shadow:0 8px 24px #18213a24;background:rgba(24,33,58,.91)}@supports(backdrop-filter:blur(18px)){.masthead{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}}
.brand{max-width:1040px;padding:19px 24px}.brand b{letter-spacing:.14em;font-size:21px;color:#e2c47a}.brand small{font:9px/1.8 system-ui,sans-serif;letter-spacing:.11em;margin-top:5px}.brand .emblem{width:56px;height:56px}.site-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;padding:13px 24px;border-bottom:1px solid var(--line);font-size:12px;background:#f6f0e4}.site-nav a{text-decoration:none}.site-nav a:hover{color:#8a6522}
main{max-width:1040px;padding:45px 24px 70px;min-height:55vh}.hero{position:relative;text-align:left;background:var(--navy);color:#fffaf2;padding:52px 42px 44px;overflow:hidden;border:1px solid #c9a14a66;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 90% 0%,#5bcefa19,transparent 60%),radial-gradient(ellipse at 80% 100%,#f5a9b824,transparent 60%);z-index:-1}.hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#5bcefa,#f5a9b8,#fff,#f5a9b8,#5bcefa)}.hero h1{font-size:34px;margin:17px 0}.hero p{color:#dde2eb;max-width:540px;font-size:14px}.hero .motto{color:#e2c47a;font-size:16px;letter-spacing:.06em}.hero .actions{justify-content:flex-start;margin-bottom:0}.hero .btn{background:#e2c47a;color:#18213a;border-color:#e2c47a;box-shadow:0 3px #5bcefa}.hero .btn.ghost{background:transparent;color:#fffaf2;border-color:#b9b7ae;box-shadow:none}.hero-grid{display:grid;grid-template-columns:1fr 200px;align-items:center;gap:35px}.hero-seal{width:190px;filter:drop-shadow(0 10px 18px #0003)}
.eyebrow{font:10px/1.7 system-ui,sans-serif;letter-spacing:.18em;color:var(--gold);margin-bottom:12px}.hero .eyebrow{color:#e2c47a}.home-services{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:26px}.home-services a{text-decoration:none;padding:22px;border-top:3px solid #5bcefa;display:flex;flex-direction:column;gap:9px;transition:background .3s}.home-services a+a{border-left:1px solid var(--line)}.home-services a:nth-child(2){border-top-color:#f5a9b8}.home-services a:nth-child(3){border-top-color:#c9a14a}.home-services a:hover{background:#f1f8fb}.home-services small{font-size:11px;color:var(--muted)}.home-services b{font:600 19px "Noto Serif TC",serif}.steps{margin-top:48px}.steps ol{display:grid;grid-template-columns:1fr 1fr;column-gap:36px}.steps li{font-size:13px;line-height:2.1;padding-block:16px}.steps li b{display:block;font-size:16px}.steps li:before{border:0;background:#f2e9d5;border-radius:50%;top:19px}.steps li:nth-child(even):before{background:#f8dfe7;color:#8a405e}
.btn{border-radius:3px;font-size:14px;letter-spacing:.06em;transition:transform .4s var(--ease),box-shadow .4s,background .25s;box-shadow:0 3px 0 #f5a9b8}.btn.ghost{box-shadow:none}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 0 #f5a9b8,0 10px 20px #18213a12}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn.danger{box-shadow:none}.actions.admin-actions{justify-content:flex-start}
.form{gap:22px;max-width:820px}.form.inline{max-width:none}.form>button{align-self:flex-start;min-width:160px}fieldset{border:1px solid var(--line);border-left:3px solid #aadff3;padding:24px 28px 28px;gap:19px;transition:border-color .35s,box-shadow .35s}fieldset:nth-of-type(even){border-left-color:#edb4c4}fieldset:focus-within{border-color:#b5c9d9;box-shadow:0 8px 28px #18213a06}legend{font-size:17px;letter-spacing:.05em;padding:0 9px}label{font-size:14px;line-height:1.8}label small{font-size:12px;line-height:1.8}input,select,textarea{border-color:#d5cfbf;border-radius:3px;padding:11px 13px;font-size:15px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:2px solid #759eb8;outline-offset:2px;box-shadow:0 0 0 5px #5bcefa12}input[type=checkbox],input[type=radio]{accent-color:#2c536d}.check input{flex-shrink:0}textarea{resize:vertical;min-height:80px}.guide{border-left:3px solid #e2c47a;padding:17px 22px}.formno{font-size:11px}.alert{border-radius:3px;line-height:1.9}.alert.keep{background:#f9f0de;border-color:#b18b35}.alert.ok{background:#edf6f1}.kv{padding:24px;gap:12px 25px;line-height:1.8}.kv dd{overflow-wrap:anywhere}.motivation{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;padding:24px}.tabs{gap:8px}.tab{padding:8px 13px;border-radius:3px;font-size:12px}.tab small{font-size:10px}.list th,.list td{padding:14px 12px;overflow-wrap:anywhere}.list th{background:#eee7d8;color:#374156;font-size:11px}.list tr:nth-child(even){background:#f8f4ec}.list a{font-weight:600}.table-wrap{overflow:auto}.admin main{max-width:1180px}.admin .form{max-width:860px}.admin-head .actions{justify-content:flex-start}.badge{border-radius:3px;font-size:11px}.oath-text{font-size:17px;line-height:2.1;padding:25px}details{padding:17px 22px}summary{font-family:"Noto Serif TC",serif;font-size:15px}
footer{position:relative;background:#18213a;border-top:1px solid #c9a14a;color:#d8deea;padding:28px 24px}footer:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#5bcefa,#f5a9b8,#fff,#f5a9b8,#5bcefa)}footer .micro{color:#e2c47a}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform-origin:left;transform:scaleX(0);pointer-events:none;z-index:40;background:linear-gradient(90deg,#5bcefa,#f5a9b8,#fff,#f5a9b8,#5bcefa)}
.motion-ready .reveal{opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .95s var(--ease);transition-delay:var(--delay,0ms)}.motion-ready .reveal.shown{opacity:1;transform:translateY(0)}
@media(max-width:700px){main,.admin main{padding:28px 20px 45px}.brand{padding:14px 20px}.brand b{font-size:17px;letter-spacing:.1em}.brand small{font-size:8px;letter-spacing:.03em}.brand .emblem{width:45px;height:45px}.site-nav{padding:12px 20px;gap:9px 20px;justify-content:flex-start;font-size:11px}.hero{padding:30px 23px}.hero h1{font-size:27px}.hero-grid{grid-template-columns:1fr;gap:24px}.hero-seal{width:120px;margin:auto;grid-row:1}.hero .motto{font-size:14px}.home-services{grid-template-columns:1fr}.home-services a+a{border-left:0;border-top:3px solid #f5a9b8}.home-services a:nth-child(3){border-top-color:#c9a14a}.home-services a{padding:18px 22px}.steps ol{grid-template-columns:1fr}fieldset{padding:18px 18px 22px}legend{font-size:15px}.kv{grid-template-columns:1fr;gap:5px;padding:20px}.kv dt{margin-top:9px}.form{gap:18px}.motion-ready .reveal{transform:translateY(12px);transition-delay:0ms}.list{font-size:12px}.list th,.list td{padding:10px}.actions .btn{font-size:12px}.admin h1 code{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important}.btn:hover,.btn:active{transform:none}}
@media print{.masthead,.site-nav,.trans-band,.reading-progress,footer,.skip{display:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important}body{background:#fff}main{max-width:none;padding:0}.form,fieldset{break-inside:avoid}*{transition:none!important;animation:none!important}}
