/* =========================================================
   築師 2.0 — 「藍圖 × 扎根」設計系統
   Palette: 米白紙感 / 深松石綠（藍圖）/ 陶土橙（生長）
   Type: Noto Serif TC（標題）· Noto Sans TC（內文）· IBM Plex Mono（標註）
   ========================================================= */

:root{
  --paper:#F3EDE1;          /* 主背景：暖米白 */
  --paper-2:#EDE5D5;        /* 次背景 */
  --paper-3:#E6DCC8;        /* 卡片底 */
  --ink:#211C16;            /* 主墨色 */
  --ink-2:#4A4034;          /* 次文字 */
  --ink-3:#8A7E6B;          /* 輔助文字 */
  --pine:#15433C;           /* 品牌主色：深松石綠（藍圖） */
  --pine-2:#1E5A50;
  --pine-soft:#3C7A6E;
  --clay:#C2673B;           /* 強調色：陶土橙（生長 / CTA） */
  --clay-2:#A9531F;
  --gold:#C99A3F;           /* 細節金 */
  --line:rgba(33,28,22,.14);
  --line-2:rgba(33,28,22,.28);
  --blueline:rgba(21,67,60,.16);

  --serif:"Noto Serif TC",serif;
  --sans:"Noto Sans TC",-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --wrap:1200px;
  --pad:clamp(20px,5vw,72px);
  --r:4px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.78;
  font-weight:400;
  letter-spacing:.01em;
  overflow-x:hidden;
  position:relative;
}
/* 紙張顆粒紋理 */
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.25;letter-spacing:.01em}
strong{font-weight:700;color:var(--ink)}
::selection{background:var(--clay);color:#fff}

/* ---------- 共用元件 ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.74rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pine);display:flex;align-items:center;gap:.6em;margin-bottom:1.4rem;
}
.eyebrow--light{color:var(--gold)}
.tick{width:26px;height:1px;background:currentColor;position:relative;display:inline-block}
.tick::before,.tick::after{content:"";position:absolute;width:1px;height:6px;background:currentColor;top:-2.5px}
.tick::before{left:0}.tick::after{right:0}

.ul{position:relative;white-space:nowrap}
.ul::after{content:"";position:absolute;left:-2px;right:-2px;bottom:.06em;height:.42em;background:var(--clay);opacity:.28;z-index:-1;transform:skewX(-8deg)}
.ul--light::after{background:var(--gold);opacity:.34}

.btn{
  --bg:transparent;--fg:var(--ink);--bd:var(--ink);
  display:inline-flex;align-items:center;gap:.55em;font-family:var(--sans);font-weight:700;
  font-size:.96rem;letter-spacing:.04em;padding:.84em 1.5em;border:1.5px solid var(--bd);
  background:var(--bg);color:var(--fg);border-radius:var(--r);cursor:pointer;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s;
  position:relative;
}
.btn:hover{transform:translateY(-3px)}
.btn--solid{--bg:var(--clay);--fg:#fff;--bd:var(--clay);box-shadow:4px 4px 0 var(--ink)}
.btn--solid:hover{--bg:var(--clay-2);box-shadow:6px 7px 0 var(--ink)}
.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:var(--line-2)}
.btn--ghost:hover{--bd:var(--pine);--fg:var(--pine)}
.btn--lg{font-size:1.05rem;padding:1em 1.7em}
.btn--block{width:100%;justify-content:center}
.inline-link,.foot__cols a{color:var(--pine);font-weight:700;border-bottom:1.5px solid var(--blueline);transition:border-color .2s}
.inline-link:hover{border-color:var(--pine)}

/* ---------- 公告條 ---------- */
.announce{
  background:var(--pine);color:#F3EDE1;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;
  display:flex;gap:.7em;align-items:center;justify-content:center;padding:.55em 1em;text-align:center;flex-wrap:wrap;
}
.announce__dot{width:7px;height:7px;border-radius:50%;background:var(--clay);animation:pulse 1.8s infinite}
.announce__sep{opacity:.4}
.announce__hl{color:var(--gold)}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

/* ---------- 導覽列 ---------- */
.nav{
  position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:1.5rem;
  padding:.7rem var(--pad);background:rgba(243,237,225,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:.6rem}
.brand__mark{
  font-family:var(--serif);font-weight:900;font-size:1.25rem;line-height:1;width:1.9rem;height:1.9rem;
  display:grid;place-items:center;background:var(--pine);color:var(--paper);border-radius:var(--r);overflow:hidden;
}
.brand__name{font-family:var(--serif);font-weight:900;font-size:1.18rem;display:block;line-height:1}
.brand__sub{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;color:var(--ink-3);display:block;margin-top:2px}
.nav__links{display:flex;gap:1.4rem;margin-left:auto;font-size:.92rem;font-weight:500}
.nav__links a{position:relative;padding:.2em 0;color:var(--ink-2);transition:color .2s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:var(--clay);transition:width .25s var(--ease)}
.nav__links a:hover{color:var(--ink)}
.nav__links a:hover::after{width:100%}
.nav__cta{padding:.55em 1.15em;font-size:.88rem}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nav__toggle span{width:24px;height:2px;background:var(--ink);transition:.3s}
.nav__drawer{display:none}

/* ---------- HERO ---------- */
.hero{position:relative;padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(3rem,7vw,5rem);padding-left:var(--pad);padding-right:var(--pad);overflow:hidden}
.hero__grid{
  position:absolute;inset:0;z-index:0;opacity:.5;
  background-image:linear-gradient(var(--blueline) 1px,transparent 1px),linear-gradient(90deg,var(--blueline) 1px,transparent 1px);
  background-size:48px 48px;opacity:.22;mask-image:radial-gradient(120% 90% at 70% 10%,#000 35%,transparent 78%);
  -webkit-mask-image:radial-gradient(120% 90% at 70% 10%,#000 35%,transparent 78%);
}
.hero__art{
  position:absolute;top:-9%;left:0;width:100%;height:118%;object-fit:cover;object-position:center;z-index:0;
  opacity:.6;mix-blend-mode:multiply;pointer-events:none;user-select:none;
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,var(--paper) 10%,rgba(243,237,225,.66) 36%,rgba(243,237,225,0) 60%);
}
.hero__inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero__title{font-size:clamp(4.6rem,13vw,9rem);font-weight:900;line-height:.92;letter-spacing:.02em;color:var(--pine);display:flex;align-items:flex-start;gap:.1em}
.hero__ver{font-family:var(--mono);font-weight:600;font-size:.26em;color:var(--clay);background:var(--paper);border:2px solid var(--clay);border-radius:6px;padding:.15em .35em;margin-top:.5em;letter-spacing:0}
.hero__subtitle{font-family:var(--serif);font-weight:700;font-size:clamp(1.25rem,3vw,1.85rem);margin-top:1rem;color:var(--ink)}
.hero__desc{font-size:1.05rem;color:var(--ink-2);max-width:36em;margin-top:1.4rem;line-height:1.9}
.hero__cta{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.hero__meta{list-style:none;display:flex;gap:2rem;margin-top:2.6rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.4rem}
.hero__meta .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;display:block}
.hero__meta .v{font-family:var(--serif);font-weight:700;font-size:1.05rem;display:block;margin-top:.2em}

/* 規格塊 */
.spec{position:relative;background:var(--pine);color:var(--paper);border-radius:var(--r);padding:1.6rem 1.7rem;box-shadow:8px 10px 0 rgba(33,28,22,.12)}
.spec__top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:rgba(243,237,225,.6);border-bottom:1px dashed rgba(243,237,225,.3);padding-bottom:.7rem;margin-bottom:1rem}
.spec__body{display:flex;flex-direction:column;gap:.9rem}
.spec__body>div{display:grid;grid-template-columns:5.2em 1fr;gap:.8rem;align-items:baseline}
.spec dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--gold)}
.spec dd{font-size:.95rem;font-weight:500;line-height:1.5}
.spec dd .hint{display:block;font-size:.74rem;color:rgba(243,237,225,.5);margin-top:.1em}
.spec__corner{position:absolute;width:14px;height:14px;border:2px solid var(--clay)}
.spec__corner--tl{top:8px;left:8px;border-right:0;border-bottom:0}
.spec__corner--br{bottom:8px;right:8px;border-left:0;border-top:0}
.hero__scroll{position:relative;z-index:2;display:block;width:max-content;margin:clamp(2rem,5vw,3.5rem) auto 0;font-family:var(--mono);font-size:.66rem;letter-spacing:.3em;color:var(--ink-3)}
.hero__scroll span{display:block;width:1px;height:34px;background:var(--ink-3);margin:.6rem auto 0;animation:scrolldot 2s infinite}
@keyframes scrolldot{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.1%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- 區段共用 ---------- */
.section{position:relative;padding-top:clamp(4rem,9vw,7.5rem);padding-bottom:clamp(4rem,9vw,7.5rem);padding-left:var(--pad);padding-right:var(--pad);max-width:var(--wrap);margin:0 auto}
.section--roots,.section--enroll{max-width:none}
.section__head{max-width:46rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section__title{font-size:clamp(2rem,5vw,3.3rem);font-weight:900;line-height:1.22;letter-spacing:.01em}
.section__intro{font-size:1.05rem;color:var(--ink-2);margin-top:1.3rem;line-height:1.95}
.section__intro--light{color:rgba(243,237,225,.78)}

/* ---------- 01 獨特性 ---------- */
.why__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}
.ucard{position:relative;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.9rem 2.1rem;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.ucard::before,.ucard::after{content:"";position:absolute;width:12px;height:12px;border:1.5px solid var(--clay);opacity:0;transition:opacity .35s}
.ucard::before{top:10px;left:10px;border-right:0;border-bottom:0}
.ucard::after{bottom:10px;right:10px;border-left:0;border-top:0}
.ucard:hover{transform:translateY(-6px);box-shadow:0 18px 40px -22px rgba(33,28,22,.5);border-color:var(--line-2)}
.ucard:hover::before,.ucard:hover::after{opacity:1}
.ucard__no{font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--clay);letter-spacing:.1em}
.ucard__icon{width:42px;height:42px;stroke:var(--pine);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;margin:1rem 0 1.1rem;display:block}
.ucard h3{font-size:1.4rem;margin-bottom:.7rem}
.ucard p{color:var(--ink-2);font-size:.98rem}
.ucard--wide{grid-column:1/-1;background:var(--pine);color:var(--paper);border-color:var(--pine);display:grid;grid-template-columns:auto 1fr auto;gap:.4rem 1.8rem;align-items:center;padding:2.2rem 2.4rem}
.ucard--wide .ucard__no{grid-row:1;color:var(--gold)}
.ucard--wide .ucard__icon{grid-row:span 3;align-self:center;width:60px;height:60px;stroke:var(--gold);margin:0}
.ucard--wide h3{grid-column:2;font-size:1.6rem;margin:0}
.ucard--wide p{grid-column:2;color:rgba(243,237,225,.82)}
.ucard--wide .inline-link{grid-column:2;color:var(--gold);border-color:rgba(201,154,63,.4);width:max-content}
.ucard--wide .inline-link:hover{border-color:var(--gold)}

/* ---------- 02 講師 ---------- */
.section--mentor{}
.mentor{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.mentor__media{position:relative}
.mentor__photo{
  aspect-ratio:4/5;border-radius:var(--r);position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(45deg,rgba(21,67,60,.06) 0 12px,transparent 12px 24px),
    linear-gradient(160deg,var(--pine-soft),var(--pine));
  display:grid;place-items:center;border:1.5px solid var(--pine);box-shadow:10px 12px 0 rgba(33,28,22,.12);
}
.mentor__photo-hint{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;color:rgba(243,237,225,.85);text-align:center;line-height:1.8}
.mentor__photo-hint em{font-size:.7rem;color:rgba(243,237,225,.5)}
.mentor__badge{position:absolute;right:-12px;bottom:22px;background:var(--clay);color:#fff;font-family:var(--serif);font-weight:900;font-size:1rem;line-height:1.1;text-align:center;padding:.7em .9em;border-radius:var(--r);transform:rotate(4deg);box-shadow:3px 4px 0 var(--ink);z-index:4}
.mentor__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;z-index:2}
.mentor__ticks{position:absolute;left:-10px;top:-10px;display:flex;flex-direction:column;gap:6px;z-index:3}
.mentor__ticks span{width:18px;height:2px;background:var(--clay)}
.mentor__ticks span:nth-child(2){width:11px}.mentor__ticks span:nth-child(3){width:6px}
.mentor__alias{font-family:var(--mono);font-size:.4em;font-weight:500;letter-spacing:.1em;color:#fff;background:var(--clay);padding:.25em .6em;border-radius:99px;vertical-align:middle;margin-left:.6em}
.mentor__role{font-family:var(--mono);font-size:.84rem;letter-spacing:.04em;color:var(--pine);margin:1.1rem 0 1.3rem;font-weight:500}
.mentor__lede{color:var(--ink-2);font-size:1.04rem;line-height:1.95}
.mentor__quote{font-family:var(--serif);font-weight:700;font-size:1.3rem;line-height:1.7;color:var(--ink);border-left:3px solid var(--clay);padding:.3em 0 .3em 1.2rem;margin:1.7rem 0}
.mentor__quote em{font-style:normal;background:linear-gradient(transparent 60%,rgba(194,103,59,.28) 60%)}
.mentor__quote cite{display:block;font-family:var(--mono);font-style:normal;font-size:.78rem;font-weight:400;letter-spacing:.06em;color:var(--ink-3);margin-top:.8rem}
.mentor__points{list-style:none;margin:0 0 1.8rem}
.mentor__points li{position:relative;padding:.7rem 0 .7rem 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:.97rem}
.mentor__points .k{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--clay);min-width:6.5em;font-weight:600}

/* ---------- 03 課程 ---------- */
.course{border:1.5px solid var(--ink);border-radius:var(--r);overflow:hidden;background:var(--paper-2)}
.course__tabs{display:grid;grid-template-columns:repeat(3,1fr)}
.course__tab{text-align:left;background:var(--paper-3);border:none;border-right:1px solid var(--line);border-bottom:1.5px solid var(--ink);padding:1.3rem 1.5rem;cursor:pointer;transition:background .25s;display:flex;flex-direction:column;gap:.25rem;font-family:var(--sans)}
.course__tab:last-child{border-right:none}
.course__tab-no{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;color:var(--clay)}
.course__tab-th{font-family:var(--serif);font-weight:700;font-size:1.18rem;color:var(--ink)}
.course__tab-sub{font-size:.82rem;color:var(--ink-3)}
.course__tab:hover{background:var(--paper)}
.course__tab.is-active{background:var(--pine);border-bottom-color:var(--pine)}
.course__tab.is-active .course__tab-th{color:#fff}
.course__tab.is-active .course__tab-no{color:var(--gold)}
.course__tab.is-active .course__tab-sub{color:rgba(243,237,225,.7)}
.course__panel{padding:clamp(1.4rem,3vw,2.6rem)}
.course__panel[hidden]{display:none}

.timeline{list-style:none;position:relative}
.timeline::before{content:"";position:absolute;left:7.7em;top:.5em;bottom:.5em;width:1.5px;background:var(--line-2)}
@media (max-width:560px){.timeline::before{left:.4em}}
.tl{display:grid;grid-template-columns:7em 1fr;gap:1.8rem;padding:.55rem 0;position:relative}
.tl__time{font-family:var(--mono);font-size:.82rem;font-weight:500;color:var(--pine);padding-top:.15em;text-align:right;white-space:nowrap}
.tl__body{position:relative;padding-left:1.6rem}
.tl__body::before{content:"";position:absolute;left:-.32em;top:.55em;width:11px;height:11px;border-radius:50%;background:var(--paper-2);border:2px solid var(--clay);z-index:1}
.tl h4{font-size:1.12rem;font-weight:700}
.tl p{font-size:.92rem;color:var(--ink-2);margin-top:.2rem;line-height:1.7}
.tag{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:#fff;background:var(--pine);padding:.2em .7em;border-radius:99px;margin-top:.6rem}
.tag--soft{background:var(--clay)}
.by{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-left:.7em}
.tl--rest .tl__body::before,.tl--lunch .tl__body::before{background:var(--paper-2);border-color:var(--line-2);width:8px;height:8px;top:.6em}
.tl--rest h4,.tl--lunch h4{font-family:var(--mono);font-size:.85rem;font-weight:500;color:var(--ink-3)}
.tl--rest,.tl--lunch{opacity:.72}
.tl--mark .tl__body::before{background:var(--clay)}
.course__note{font-size:.86rem;color:var(--ink-3);margin-top:1.5rem;line-height:1.8;max-width:54em}

/* ---------- 04 永續扎根（深底） ---------- */
.section--roots{background:var(--pine);color:var(--paper);padding-left:0;padding-right:0;position:relative}
.section--roots::before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(243,237,225,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(243,237,225,.05) 1px,transparent 1px);background-size:46px 46px;pointer-events:none}
.section--roots .section__head,.roots{max-width:var(--wrap);margin-left:auto;margin-right:auto;padding-left:var(--pad);padding-right:var(--pad);position:relative}
.section--roots .section__title{color:var(--paper)}
.roots{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.roots__art{position:sticky;top:5.5rem;margin:0;display:flex;flex-direction:column;align-items:center;gap:1.1rem}
.roots__art img{width:min(100%,400px);border-radius:var(--r);box-shadow:0 30px 70px -30px rgba(0,0,0,.6)}
.roots__art figcaption{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:rgba(243,237,225,.62);text-align:center;display:flex;gap:.6em;align-items:center;flex-wrap:wrap;justify-content:center}
.roots__art figcaption span{color:var(--gold);border:1px solid rgba(201,154,63,.4);padding:.2em .6em;border-radius:99px}
.roots__list{list-style:none;display:flex;flex-direction:column;gap:1rem}
.rcard{position:relative;background:rgba(243,237,225,.06);border:1px solid rgba(243,237,225,.16);border-radius:var(--r);padding:1.5rem 1.7rem 1.5rem 4.2rem;transition:background .3s,transform .3s var(--ease)}
.rcard:hover{background:rgba(243,237,225,.1);transform:translateX(6px)}
.rcard__no{position:absolute;left:1.5rem;top:1.5rem;font-family:var(--mono);font-size:.9rem;font-weight:600;color:var(--gold)}
.rcard h3{color:var(--paper);font-size:1.22rem;margin-bottom:.35rem}
.rcard p{color:rgba(243,237,225,.76);font-size:.95rem}
.rcard strong{color:var(--gold)}

/* ---------- 承續 ---------- */
.legacy{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:stretch}
.legacy__col{border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.9rem;background:var(--paper-2)}
.legacy__col--new{background:var(--pine);color:var(--paper);border-color:var(--pine)}
.legacy__tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--line-2);border-radius:99px;padding:.3em .8em;display:inline-block;margin-bottom:1rem}
.legacy__tag--solid{color:var(--gold);border-color:rgba(201,154,63,.4)}
.legacy__col h3{font-size:1.7rem;margin-bottom:1.2rem}
.legacy__col--new h3{color:#fff}
.legacy__col ul{list-style:none;display:flex;flex-direction:column;gap:.8rem}
.legacy__col li{font-size:.96rem;color:var(--ink-2);padding-left:1.2rem;position:relative;line-height:1.7}
.legacy__col li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;background:var(--clay);border-radius:1px}
.legacy__col--new li{color:rgba(243,237,225,.82)}
.legacy__col li span{font-family:var(--serif);font-weight:900;font-size:1.15em;color:var(--pine)}
.legacy__col--new li span{color:var(--gold)}
.legacy__col--new strong{color:#fff}
.legacy__arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--clay)}
.legacy__arrow span{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;writing-mode:horizontal-tb}
.legacy__arrow svg{width:54px;stroke:var(--clay);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}

/* ---------- 05 報名（深底） ---------- */
.section--enroll{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.section--enroll::before{content:"築";position:absolute;right:-2vw;bottom:-12vw;font-family:var(--serif);font-weight:900;font-size:42vw;line-height:.7;color:rgba(243,237,225,.03);pointer-events:none}
.enroll{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4rem);align-items:center;position:relative}
.section--enroll .section__title{color:var(--paper)}
.enroll__specs{margin:2rem 0 1.5rem;display:flex;flex-direction:column}
.enroll__specs>div{display:grid;grid-template-columns:4.5em 1fr;gap:1.2rem;padding:1rem 0;border-top:1px solid rgba(243,237,225,.14);align-items:baseline}
.enroll__specs dt{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;color:var(--gold)}
.enroll__specs dd{font-size:1rem;color:rgba(243,237,225,.9)}
.enroll__specs strong{color:#fff}
.enroll__note{font-size:.86rem;color:rgba(243,237,225,.5);margin-top:.5rem}
.enroll__card{background:var(--paper);color:var(--ink);border-radius:var(--r);padding:2rem;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.enroll__qr{aspect-ratio:1;max-width:200px;margin:0 auto 1.4rem;border:2px dashed var(--line-2);border-radius:var(--r);display:grid;place-items:center;background:var(--paper-2)}
.enroll__qr span{font-family:var(--mono);font-size:.8rem;color:var(--ink-3);text-align:center;line-height:1.7}
.enroll__qr em{font-size:.72rem}
.enroll__url{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);text-align:center;margin-top:.9rem;word-break:break-all}
.enroll__contact{font-size:.85rem;color:var(--ink-2);text-align:center;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line);line-height:1.8}

/* ---------- 海報 ---------- */
.poster-wrap{display:grid;place-items:center}
.poster{
  position:relative;width:min(100%,560px);aspect-ratio:1/1.414;background:var(--paper);
  border:2px solid var(--ink);border-radius:2px;padding:clamp(1.6rem,3.5vw,2.4rem);overflow:hidden;
  box-shadow:12px 14px 0 rgba(33,28,22,.14);display:flex;flex-direction:column;
}
.poster__grid{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(var(--blueline) 1px,transparent 1px),linear-gradient(90deg,var(--blueline) 1px,transparent 1px);background-size:40px 40px}
.poster>*{position:relative;z-index:1}
.poster__top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;color:var(--ink-3);border-bottom:1px solid var(--ink);padding-bottom:.6rem}
.poster__hero{position:relative;margin-top:auto;padding-top:1.5rem}
.poster__eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--clay);font-weight:600;margin-bottom:.4rem}
.poster__title{font-size:clamp(3.6rem,15vw,5.6rem);font-weight:900;color:var(--pine);line-height:.85;letter-spacing:.02em}
.poster__title em{font-family:var(--mono);font-style:normal;font-size:.32em;color:var(--clay);vertical-align:super;margin-left:.15em}
.poster__sub{font-family:var(--serif);font-weight:700;font-size:1.05rem;margin-top:.7rem}
.poster__ghost{position:absolute;right:-2%;top:-8%;font-family:var(--serif);font-weight:900;font-size:14rem;line-height:.7;color:var(--pine);opacity:.06;z-index:-1}
.poster__hook{font-family:var(--serif);font-weight:700;font-size:1.15rem;line-height:1.55;margin:1.3rem 0;color:var(--ink)}
.poster__days{list-style:none;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;margin-bottom:1.2rem}
.poster__days li{display:flex;gap:.9rem;align-items:baseline;font-size:1rem;font-weight:500}
.poster__days span{font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--clay);min-width:3.6em}
.poster__foot{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}
.poster__k{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--ink-3);display:block;margin-bottom:.2rem}
.poster__mentor strong,.poster__when strong{font-family:var(--serif);font-size:1rem;display:block;line-height:1.3}
.poster__role{font-size:.72rem;color:var(--ink-2);display:block;margin-top:.15rem}
.poster__qr{width:64px;height:64px;border:1.5px dashed var(--line-2);border-radius:2px;display:grid;place-items:center;font-family:var(--mono);font-size:.6rem;color:var(--ink-3);text-align:center;line-height:1.3}
.poster__credit{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-size:.68rem;color:var(--ink-3);border-top:1px solid var(--ink);margin-top:1.2rem;padding-top:.8rem}
.poster__sdg{margin-left:auto;display:flex;gap:.4rem}
.poster__sdg i{font-style:normal;font-family:var(--mono);font-size:.6rem;background:var(--pine);color:var(--paper);padding:.25em .5em;border-radius:2px}

/* ---------- 頁尾 ---------- */
.foot{background:var(--paper-2);border-top:1.5px solid var(--ink);padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:1.5rem;padding-left:var(--pad);padding-right:var(--pad)}
.foot__main{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:.9fr 2fr;gap:2.5rem}
.foot__brand{display:flex;gap:1rem;align-items:flex-start}
.foot__name{font-family:var(--serif);font-weight:900;font-size:1.4rem}
.foot__tag{font-size:.85rem;color:var(--ink-3);margin-top:.2rem}
.foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.foot__cols h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--clay);text-transform:uppercase;margin-bottom:.9rem;font-weight:600}
.foot__cols p{font-size:.9rem;color:var(--ink-2);margin-bottom:.35rem}
.foot__bar{max-width:var(--wrap);margin:2.5rem auto 0;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:var(--ink-3);font-family:var(--mono);letter-spacing:.04em}
.foot__sdg{display:flex;gap:.6rem}
.sdg{font-style:normal;padding:.25em .7em;border-radius:99px;font-size:.72rem;color:#fff}
.sdg--4{background:var(--clay)}
.sdg--17{background:var(--pine)}

/* ---------- 捲動揭露（GSAP 驅動；未載入 GSAP 時預設可見，優雅降級） ---------- */
.reveal{will-change:opacity,transform}
.js-anim .reveal{opacity:0;transform:translateY(28px)}
.js-anim .hero__art{opacity:0}
.reveal.in-view{opacity:1;transform:none}

/* ---------- 多頁式：頁首 / 當前頁 / CTA 帶 / 開源理由 ---------- */
.nav__links a.is-active{color:var(--ink)}
.nav__links a.is-active::after{width:100%}
.nav__drawer a.is-active{color:var(--clay)}

.page-head{position:relative;padding-top:clamp(3.4rem,7vw,5.6rem);padding-bottom:clamp(2rem,4vw,3.2rem);padding-left:var(--pad);padding-right:var(--pad);border-bottom:1px solid var(--line);overflow:hidden}
.page-head::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;background-image:linear-gradient(var(--blueline) 1px,transparent 1px),linear-gradient(90deg,var(--blueline) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(130% 120% at 92% 0%,#000 28%,transparent 72%);mask-image:radial-gradient(130% 120% at 92% 0%,#000 28%,transparent 72%)}
.page-head__inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto}
.page-head h1{font-size:clamp(2.3rem,6vw,4rem);font-weight:900;color:var(--pine);line-height:1.12;letter-spacing:.01em}
.page-head__sub{font-size:1.06rem;color:var(--ink-2);margin-top:1rem;max-width:44em;line-height:1.9}

.cta-band{position:relative;overflow:hidden;background:var(--pine);color:var(--paper);text-align:center;padding-top:clamp(3rem,6vw,4.6rem);padding-bottom:clamp(3rem,6vw,4.6rem);padding-left:var(--pad);padding-right:var(--pad);border-top:1px solid rgba(243,237,225,.14)}
.cta-band__art{position:absolute;inset:0;z-index:0;opacity:.6;background-image:linear-gradient(rgba(243,237,225,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(243,237,225,.06) 1px,transparent 1px);background-size:42px 42px}
.cta-band__inner{position:relative;z-index:2;max-width:44rem;margin:0 auto}
.cta-band h2{color:var(--paper);font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.32}
.cta-band p{color:rgba(243,237,225,.78);font-size:1.05rem;margin:1.1rem auto 2rem;max-width:34em}

.why-open{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.6rem}
.why-open__item{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem 1.6rem}
.why-open__item .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--clay);font-weight:600}
.why-open__item h3{font-size:1.28rem;margin:.7rem 0 .5rem}
.why-open__item p{font-size:.95rem;color:var(--ink-2);line-height:1.8}

.btn.is-pending{opacity:.55;box-shadow:none;cursor:default}
.btn.is-pending:hover{transform:none;box-shadow:none}
.cmd{font-family:var(--mono);font-size:.84em;background:var(--ink);color:var(--paper);padding:.1em .45em;border-radius:4px;white-space:nowrap}
.course__lead{max-width:47rem;margin-bottom:2.2rem}
.course__day-intro{font-size:1rem;color:var(--ink-2);margin-bottom:1.4rem;line-height:1.85;max-width:48em}
.outline{list-style:none}
.outline>li{display:grid;grid-template-columns:2.2rem 1fr;gap:1.1rem;padding:1.2rem 0;border-top:1px solid var(--line)}
.outline>li:first-child{border-top:none;padding-top:.3rem}
.outline__no{font-family:var(--mono);font-size:.9rem;font-weight:600;color:var(--clay);padding-top:.2em}
.outline__c h4{font-size:1.16rem;font-weight:700;line-height:1.4}
.outline__c p{font-size:.96rem;color:var(--ink-2);margin-top:.35rem;line-height:1.8}

/* ---------- 計畫頁:知識翻新理論 / 路線圖 / 目標 ---------- */
.kb-quote{font-family:var(--serif);font-weight:700;font-size:clamp(1.3rem,3vw,1.95rem);line-height:1.6;color:var(--ink);border-left:3px solid var(--clay);padding-left:1.4rem;margin:0;max-width:30em}
.kb-quote cite{display:block;font-family:var(--mono);font-style:normal;font-size:.8rem;color:var(--ink-3);margin-top:1.1rem;letter-spacing:.04em}
.kb-map{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:2.4rem}
.kb-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.35rem;position:relative}
.kb-card .pr{font-family:var(--mono);font-size:.64rem;letter-spacing:.05em;color:var(--ink-3);line-height:1.5}
.kb-card h3{font-size:1.04rem;margin:.4rem 0 .45rem;line-height:1.45}
.kb-card .map{font-size:.9rem;color:var(--ink-2);line-height:1.7}
.kb-card .map b{color:var(--clay);font-weight:700}
@media(max-width:680px){.kb-map{grid-template-columns:1fr}}

/* ---------- 知識翻新 12 原則：三主軸概念圖 ---------- */
.kb-tree{margin-top:2.6rem}
.kb-tree__trunk{max-width:21rem;margin:0 auto;text-align:center;background:var(--pine);color:var(--paper);border-radius:var(--r);padding:1.1rem 1.6rem;box-shadow:6px 7px 0 rgba(33,28,22,.12);position:relative;z-index:2}
.kb-tree__trunk-en{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;color:var(--gold);display:block}
.kb-tree__trunk strong{font-family:var(--serif);font-weight:900;font-size:1.7rem;color:#fff;display:block;margin:.1rem 0}
.kb-tree__trunk-sub{font-family:var(--mono);font-size:.64rem;letter-spacing:.05em;color:rgba(243,237,225,.7)}
.kb-tree__branches{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding-top:1.7rem}
.kb-tree__branches::before{content:"";position:absolute;top:0;left:50%;width:1.5px;height:.85rem;background:var(--line-2);transform:translateX(-50%)}
.kb-tree__branches::after{content:"";position:absolute;top:.85rem;left:16.67%;right:16.67%;height:1.5px;background:var(--line-2)}
.kb-pillar{position:relative;background:var(--paper-2);border:1px solid var(--line);border-top:3px solid var(--pine);border-radius:var(--r);padding:1.4rem 1.4rem 1.5rem}
.kb-pillar::before{content:"";position:absolute;top:-.85rem;left:50%;width:1.5px;height:.85rem;background:var(--line-2);transform:translateX(-50%)}
.kb-pillar--community{border-top-color:var(--clay)}
.kb-pillar--agency{border-top-color:var(--gold)}
.kb-pillar__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;color:var(--clay);font-weight:600;text-transform:uppercase}
.kb-pillar--ideas .kb-pillar__k{color:var(--pine-soft)}
.kb-pillar--agency .kb-pillar__k{color:var(--gold)}
.kb-pillar__head{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px dashed var(--line-2)}
.kb-pillar__head h3{font-size:1.2rem;margin:.3rem 0 .4rem}
.kb-pillar__head p{font-size:.87rem;color:var(--ink-2);line-height:1.7}
.kb-pillar__list{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.kb-node{display:grid;grid-template-columns:1.7rem 1fr;gap:.55rem;align-items:start}
.kb-node__no{font-family:var(--mono);font-size:.82rem;font-weight:600;color:var(--clay);padding-top:.15em}
.kb-node__name{font-size:.96rem;font-weight:700;color:var(--ink);line-height:1.4;display:block}
.kb-node__en{font-family:var(--mono);font-size:.58rem;letter-spacing:.02em;color:var(--ink-3);display:block;margin:.12rem 0 .28rem;line-height:1.4}
.kb-node__map{font-size:.85rem;color:var(--ink-2);line-height:1.6}
.kb-node__map b{color:var(--clay);font-weight:700}
@media(max-width:760px){.kb-tree__branches{grid-template-columns:1fr;gap:1rem;padding-top:1rem}.kb-tree__branches::before,.kb-tree__branches::after,.kb-pillar::before{display:none}}

/* ---------- 1.0 傳承金句 ---------- */
.creed{padding:clamp(3rem,7vw,5.5rem) var(--pad);background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.creed::before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(var(--blueline) 1px,transparent 1px),linear-gradient(90deg,var(--blueline) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(120% 120% at 50% 0,#000 30%,transparent 75%);mask-image:radial-gradient(120% 120% at 50% 0,#000 30%,transparent 75%)}
.creed__inner{position:relative;z-index:1;max-width:40rem;margin:0 auto;text-align:center}
.creed__q{font-family:var(--serif);font-weight:900;font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.45;color:var(--pine)}
.creed__a{font-size:1rem;color:var(--ink-2);margin-top:1.3rem;line-height:1.9}

/* ---------- 三大板塊（心築師塾） ---------- */
.pillars3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.p3{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem 1.8rem;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;position:relative}
.p3::after{content:"";position:absolute;bottom:10px;right:10px;width:12px;height:12px;border:1.5px solid var(--clay);border-left:0;border-top:0;opacity:0;transition:opacity .35s}
.p3:hover{transform:translateY(-6px);box-shadow:0 18px 40px -22px rgba(33,28,22,.5);border-color:var(--line-2)}
.p3:hover::after{opacity:1}
.p3__k{font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--clay);letter-spacing:.1em}
.p3 h3{font-size:1.3rem;margin:.7rem 0 .6rem}
.p3 p{font-size:.96rem;color:var(--ink-2);line-height:1.8;flex:1}
.p3__more{font-family:var(--mono);font-size:.78rem;color:var(--pine);font-weight:600;margin-top:1.1rem;letter-spacing:.02em}
@media(max-width:760px){.pillars3{grid-template-columns:1fr}}

.roadmap{list-style:none;position:relative;max-width:52rem;margin-top:1rem}
.roadmap::before{content:"";position:absolute;left:6.4em;top:.7em;bottom:.7em;width:1.5px;background:var(--line-2)}
.roadmap>li{display:grid;grid-template-columns:6.4em 1fr;gap:1.7rem;padding:.75rem 0}
.roadmap__when{font-family:var(--mono);font-size:.82rem;font-weight:600;color:var(--pine);text-align:right;padding-top:.15em}
.roadmap__body{position:relative;padding-left:1.9rem}
.roadmap__body::before{content:"";position:absolute;left:-.35em;top:.4em;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--clay);z-index:1}
.roadmap__body.is-key::before{background:var(--clay)}
.roadmap h4{font-size:1.08rem;font-weight:700}
.roadmap p{font-size:.92rem;color:var(--ink-2);margin-top:.2rem;line-height:1.75}
.roadmap__tag{display:inline-block;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;color:#fff;background:var(--pine);padding:.18em .6em;border-radius:99px;margin-top:.5rem}
@media(max-width:560px){.roadmap::before{display:none}.roadmap>li{grid-template-columns:1fr;gap:.3rem}.roadmap__when{text-align:left}.roadmap__body{padding-left:0}.roadmap__body::before{display:none}}

.targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.8rem}
.target{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.4rem}
.target b{font-family:var(--serif);font-weight:900;font-size:1.9rem;color:var(--pine);display:block;line-height:1.1}
.target span{font-size:.86rem;color:var(--ink-2);display:block;margin-top:.3rem}

/* ---------- 成果頁:成果卡狀態 ---------- */
.result__status{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;padding:.2em .65em;border-radius:99px;margin-top:.9rem;border:1px solid var(--line-2);color:var(--ink-3)}
.result__status--soon{color:var(--clay);border-color:rgba(194,103,59,.45)}
.result__status--live{color:var(--pine);border-color:rgba(20,67,57,.45)}
.result-note{background:var(--paper-2);border:1px dashed var(--line-2);border-radius:var(--r);padding:1.2rem 1.5rem;margin-top:2rem;font-size:.95rem;color:var(--ink-2);line-height:1.85}
.result-note strong{color:var(--pine)}

/* ---------- 工作坊地點頁 ---------- */
.venue-locate{background:var(--pine);color:var(--paper);border-radius:var(--r);padding:1.6rem 1.8rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-bottom:2.6rem}
.venue-locate__pin{font-size:2rem;line-height:1}
.venue-locate__txt{flex:1;min-width:240px}
.venue-locate__txt strong{display:block;font-family:var(--serif);font-weight:700;font-size:1.18rem;color:#fff}
.venue-locate__txt p{color:rgba(243,237,225,.82);font-size:.95rem;margin-top:.35rem;line-height:1.7}
.venue-locate .btn--solid{box-shadow:4px 4px 0 rgba(0,0,0,.3)}
.venue-media{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:2.8rem}
.venue-frame{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--paper-2);position:relative}
.venue-frame iframe{width:100%;height:100%;border:0;display:block}
.venue-frame img{width:100%;height:100%;object-fit:cover;display:block}
.venue-frame__hint{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--ink-3);font-size:.85rem;font-family:var(--mono);line-height:1.8;padding:1rem}
.travel{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.travel__item{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.7rem}
.travel__item--wide{grid-column:1/-1}
.travel__item h3{font-size:1.22rem;margin-bottom:.9rem;display:flex;align-items:center;gap:.55rem}
.travel__item h3 .e{font-size:1.3rem}
.travel__item ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}
.travel__item li{font-size:.95rem;color:var(--ink-2);line-height:1.75;padding-left:1.1rem;position:relative}
.travel__item li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--clay);border-radius:1px}
.travel__item li b{color:var(--ink);font-weight:700}
.venue-links{font-size:.9rem;color:var(--ink-3);margin-top:1.6rem;line-height:2}
.venue-links a{color:var(--pine);border-bottom:1px solid var(--blueline)}
@media(max-width:760px){.venue-media,.travel{grid-template-columns:1fr}}

@media (max-width:760px){ .why-open{grid-template-columns:1fr} }

/* ---------- 線上報名表單 ---------- */
.regform{display:flex;flex-direction:column;gap:.8rem}
.regform__title{font-family:var(--serif);font-size:1.35rem;font-weight:900;margin-bottom:.1rem}
.regform label{display:flex;flex-direction:column;gap:.32rem;font-size:.84rem;font-weight:500;color:var(--ink-2)}
.regform .req{color:var(--clay)}
.regform input,.regform select,.regform textarea{font-family:var(--sans);font-size:.96rem;color:var(--ink);background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r);padding:.6em .7em;width:100%}
.regform input:focus,.regform select:focus,.regform textarea:focus{outline:2px solid var(--pine);outline-offset:1px;border-color:var(--pine)}
.regform textarea{resize:vertical}
.regform__check{flex-direction:row !important;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink-2)}
.regform__check input{width:auto;accent-color:var(--pine)}
.regform__msg{font-size:.85rem;min-height:1em;margin:0}
.regform__msg.is-error{color:#b3402a}
#regSubmit{margin-top:.3rem}
.regform__done{text-align:center;padding:1.4rem .4rem}
.regform__doneicon{width:58px;height:58px;border-radius:50%;background:var(--pine);color:#fff;font-size:1.9rem;display:grid;place-items:center;margin:0 auto 1rem}
.regform__done h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:.5rem}
.regform__done p{color:var(--ink-2);font-size:.95rem;line-height:1.8;margin-bottom:1.2rem}

/* ---------- 報名管理後台 ---------- */
.admin__bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.8rem;padding:.7rem var(--pad);background:var(--pine);color:var(--paper);font-size:.95rem}
.admin__bar .brand__mark{font-size:1rem;width:1.7rem;height:1.7rem;background:var(--paper);color:var(--pine)}
.admin__bar strong{font-family:var(--serif)}
.admin__bar #adminWho{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:rgba(243,237,225,.7)}
.admin__bar button{background:transparent;border:1px solid rgba(243,237,225,.4);color:var(--paper);border-radius:var(--r);padding:.35em .9em;cursor:pointer;font-size:.85rem}
.admin__main{max-width:var(--wrap);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad)}
.admin__main h1{font-family:var(--serif);font-size:1.8rem;margin-bottom:.6rem}
.admin__login,.admin__setup{max-width:34rem;margin:8vh auto;text-align:center}
.admin__login p,.admin__setup p{color:var(--ink-2);line-height:1.9;margin:.8rem 0}
.admin__setup ol{text-align:left;color:var(--ink-2);line-height:2;margin:1rem 0 1.4rem;padding-left:1.3rem}
.admin__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.3rem}
.admin__head .row{display:flex;gap:.6rem}
.admin__count{font-family:var(--mono);font-size:1rem;color:var(--clay);font-weight:600}
.admin__tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
table#regTable{width:100%;border-collapse:collapse;font-size:.86rem;background:var(--paper-2)}
table#regTable th,table#regTable td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
table#regTable th{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--ink-3);background:var(--paper-3);position:sticky;top:0}
table#regTable tr:last-child td{border-bottom:none}
table#regTable td.note{white-space:normal;max-width:18rem;color:var(--ink-2)}
.admin__empty{padding:3rem;text-align:center;color:var(--ink-3)}

/* ---------- 響應式 ---------- */
@media (max-width:920px){
  .hero__inner,.mentor,.roots,.enroll{grid-template-columns:1fr}
  .hero__art{opacity:.4}
  .hero::after{background:linear-gradient(180deg,rgba(243,237,225,.62),rgba(243,237,225,.28) 60%,rgba(243,237,225,0))}
  .spec{max-width:440px}
  .roots__art{position:static;margin-bottom:1rem}
  .why__grid{grid-template-columns:1fr}
  .ucard--wide{grid-template-columns:auto 1fr}
  .ucard--wide .ucard__icon{display:none}
  .ucard--wide h3,.ucard--wide p,.ucard--wide .inline-link{grid-column:1/-1}
  .foot__main{grid-template-columns:1fr}
}
@media (max-width:760px){
  .nav__links{display:none}
  .nav__cta{display:none}
  .nav__toggle{display:flex;margin-left:auto}
  .nav__drawer{flex-direction:column;gap:.4rem;padding:4.8rem var(--pad) 1.5rem;background:rgba(243,237,225,.97);backdrop-filter:blur(8px)}
  .nav__drawer a{padding:.85rem .4rem;border-bottom:1px solid var(--line);font-weight:500;font-size:1.05rem}
  .nav__drawer .btn{margin-top:.8rem;justify-content:center}
  .nav.is-open + .nav__drawer{display:flex;position:fixed;inset:0;z-index:90;overflow:auto}
  .nav.is-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.is-open .nav__toggle span:nth-child(2){opacity:0}
  .nav.is-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .course__tabs{grid-template-columns:1fr}
  .course__tab{border-right:none;border-bottom:1px solid var(--line)}
  .legacy{grid-template-columns:1fr}
  .legacy__arrow{flex-direction:row;padding:.5rem}
  .legacy__arrow svg{transform:rotate(90deg)}
  .poster__foot{grid-template-columns:1fr 1fr}
  .poster__qr{grid-column:span 2;justify-self:start}
  .foot__cols{grid-template-columns:1fr;gap:1.5rem}
  .tl{grid-template-columns:5.5em 1fr;gap:1rem}
}
@media (max-width:560px){
  .tl{grid-template-columns:1fr}
  .tl__time{text-align:left}
  .tl__body{padding-left:1.4rem}
  .hero__meta{gap:1.2rem}
}

/* ---------- 鍵盤焦點環（a11y, taste-skill） ---------- */
:focus-visible{outline:2px solid var(--clay);outline-offset:2px;border-radius:3px}
.btn:focus-visible{outline-offset:3px}

/* ---------- 動態偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal,.js-anim .reveal{opacity:1!important;transform:none!important}
}

/* ---------- 列印（只印海報） ---------- */
@media print{
  @page{size:A4 portrait;margin:10mm}
  body::before,.announce,.nav,.nav__drawer,main>section:not(.section--poster),.foot,.section__head,#printPoster{display:none!important}
  .section--poster{padding:0;margin:0}
  .poster-wrap{display:block}
  .poster{width:100%;max-width:none;box-shadow:none;border:1.5px solid #000;aspect-ratio:auto;min-height:96vh}
  .reveal{opacity:1!important;transform:none!important}
}
