/* QuietFix Studio — tokens 先行(2026-08-11 BOSS_NOTE 8-修正:兩極對比。
   高級=極端對比+留白+材質,非多色:近黑 #0A0908 × 亮奶油 #F0EAD2 當兩極,
   BOBBA 中間調 #BE986D/#D7BE82/#7F5539 只當小面積過渡/accent) */
:root{
  /* 暗場(近黑極) */
  --d-bg:#0A0908; --d-panel:#141110; --d-line:#2A241C; --d-ink:#F0EAD2; --d-muted:#A79883;
  /* 亮場(亮奶油極;muted=BOBBA 深棕當過渡) */
  --l-bg:#F0EAD2; --l-panel:#FAF6E8; --l-line:#DFD5BC; --l-ink:#0A0908; --l-muted:#7F5539;
  /* 品牌 */
  --gold:#d09a58; --gold-deep:#8a5f2f;
  --ok:#7ec87e; --bad:#e06c75;
  --serif:"Noto Serif TC",serif; --sans:"Noto Sans TC",sans-serif; --mono:"JetBrains Mono",monospace;
  --maxw:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--d-bg);color:var(--d-ink);line-height:1.9;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
section{position:relative}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,56px)}

/* ============ 主題段：實色背景(可讀性不押在 JS 上,2026-08-10 老闆抓包後回歸) ============ */
[data-theme="dark"]{background:var(--d-bg);color:var(--d-ink)}
[data-theme="light"]{background:var(--l-bg);color:var(--l-ink)}

/* ============ grain ============ */
.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ============ nav ============ */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;padding:22px clamp(20px,4vw,48px);
  background:linear-gradient(rgba(10,9,8,.82),rgba(10,9,8,0))}
.wordmark{font-family:var(--serif);font-weight:900;font-size:19px;letter-spacing:.04em}
.wordmark sup{color:var(--gold);font-size:10px}

/* ── wordmark 液態玻璃(2026-08-11):hover 金色液體灌注 ── */
.wordmark{position:relative;display:inline-flex;align-items:center;padding:9px 20px;
  border-radius:999px;overflow:hidden;isolation:isolate;
  background:linear-gradient(135deg,rgba(239,229,210,.13),rgba(239,229,210,.03));
  border:1px solid rgba(208,154,88,.32);
  backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);
  box-shadow:inset 0 1px 1px rgba(239,229,210,.28),inset 0 -6px 12px rgba(0,0,0,.12),0 4px 14px rgba(0,0,0,.18);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}
.wordmark:hover{transform:translateY(-2px);box-shadow:inset 0 1px 1px rgba(239,229,210,.28),
  0 10px 26px rgba(208,154,88,.30),0 3px 8px rgba(0,0,0,.2)}
.wm-text{position:relative;z-index:1;transition:color .5s ease}
.wordmark:hover .wm-text,.wordmark:hover .wm-text sup{color:#1b1410;text-shadow:0 1px 6px rgba(239,229,210,.35)}
.wm-liquid{position:absolute;inset:0;z-index:0;transform:translateY(103%);
  transition:transform 1.1s cubic-bezier(.22,.9,.3,1)}
.wordmark:hover .wm-liquid{transform:translateY(0%)}
.wm-body{position:absolute;inset:0;top:9px;
  background:linear-gradient(180deg,#e7bd85 0%,var(--gold) 45%,var(--gold-deep) 100%);opacity:.88}
.wm-wave{position:absolute;top:0;left:0;width:200%;height:11px;
  background-repeat:repeat-x;background-size:50% 100%}
.wm-back{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 12 Q15 0 30 12 T60 12 T90 12 T120 12 V24 H0 Z' fill='%23d09a58' fill-opacity='.55'/%3E%3C/svg%3E");
  animation:wm-drift 3.2s linear infinite reverse}
.wm-front{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 14 Q20 4 40 14 T80 14 T120 14 V24 H0 Z' fill='%23d09a58' fill-opacity='.9'/%3E%3C/svg%3E");
  animation:wm-drift 2.1s linear infinite}
@keyframes wm-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.wm-caustics{position:absolute;inset:0;top:8px;mix-blend-mode:screen;
  background:radial-gradient(34px 10px at 30% 45%,rgba(255,244,224,.4),transparent 70%),
    radial-gradient(48px 13px at 70% 65%,rgba(255,244,224,.28),transparent 70%);
  animation:wm-shimmer 4s ease-in-out infinite alternate}
@keyframes wm-shimmer{to{transform:translateX(10px) scale(1.05)}}
@media(prefers-reduced-motion:reduce){.wm-wave,.wm-caustics{animation:none}
  .wm-liquid,.wordmark{transition-duration:.01s}}
.navlinks{display:flex;align-items:center;gap:clamp(16px,3vw,34px);font-size:13.5px;color:var(--d-muted)}
.navlinks a{letter-spacing:.06em;transition:color .2s}
.navlinks a:hover{color:var(--d-ink)}
.btn-nav{color:#1b1410!important;background:var(--gold);padding:10px 22px;border-radius:999px;font-weight:700}
@media(max-width:760px){.navlinks a:not(.btn-nav){display:none}}

/* ============ 共用元件 ============ */
.kicker{display:flex;align-items:center;gap:14px;font-size:11.5px;letter-spacing:.44em;
  font-family:var(--mono);text-transform:uppercase}
.kicker::before{content:"";width:44px;height:1px;display:inline-block;background:currentColor;opacity:.7}
[data-theme="dark"] .kicker{color:var(--gold)}
[data-theme="light"] .kicker{color:var(--gold-deep)}
.h2{font-family:var(--serif);font-weight:900;font-size:clamp(40px,6.4vw,80px);line-height:1.22;
  letter-spacing:.01em;margin:26px 0 20px}
.lead{font-size:clamp(15px,1.35vw,17px);font-weight:300;line-height:2.1;max-width:640px}
[data-theme="dark"] .lead{color:var(--d-muted)}
[data-theme="light"] .lead{color:var(--l-muted)}
.lead b{font-weight:500}
[data-theme="dark"] .lead b{color:var(--d-ink)}
[data-theme="light"] .lead b{color:var(--l-ink)}
.btn{display:inline-block;background:var(--gold-deep);color:#EFE5D2;
  padding:16px 34px;border-radius:6px;font-size:14.5px;letter-spacing:.16em;
  font-family:var(--sans);font-weight:500;
  transition:background .25s,transform .15s}
.btn:hover{background:#6f4a22;transform:translateY(1px)}
.btn-ghost{display:inline-block;font-size:14.5px;letter-spacing:.05em;padding-bottom:4px;
  border-bottom:1px solid currentColor;opacity:.85}
.btn-ghost:hover{opacity:1}

/* ============ HERO(noth.in 式:黑·物件嵌字標·序號) ============ */
#hero{min-height:100svh;display:flex;align-items:center;justify-content:center;
  padding:0;overflow:hidden;background:#0A0908}
.wrap-hero{position:static;text-align:center;width:100%}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mark{display:flex;align-items:center;justify-content:center;gap:.04em;
  font-family:var(--sans);font-weight:900;font-size:clamp(60px,15vw,260px);
  letter-spacing:.01em;color:#F0EAD2;line-height:1}
.mark-obj{width:.92em;height:.92em;object-fit:contain;margin:0 .03em;
  animation:objfloat 7s ease-in-out infinite}
@keyframes objfloat{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(6deg) translateY(-.06em)}}
.mark-wrap{position:relative;display:block}
.mark{position:relative;z-index:2}
.ink-cv{position:absolute;inset:0;z-index:4;pointer-events:none}
#hero{position:relative}
.hero-tag{margin-top:34px;font-family:var(--mono);font-size:12px;letter-spacing:.34em;color:#9c8d7d}
.hero-counter{position:absolute;left:0;right:0;bottom:34px;text-align:center;
  font-family:var(--mono);font-size:12px;letter-spacing:.3em;color:#9c8d7d}
@media(max-width:760px){.mark{font-size:clamp(44px,15.5vw,90px)}}

/* 巨型字標收尾(裁切出血) */
.giant{overflow:hidden;background:#0A0908;color:#F0EAD2;font-family:var(--sans);font-weight:900;
  font-size:clamp(90px,17.5vw,300px);line-height:.95;text-align:center;letter-spacing:.01em;
  padding:.12em 0 .1em;user-select:none}

/* ============ 效果菜單（亮,大棋盤） ============ */
/* 轉盤攝影棚 stage(BOSS_NOTE 17c):整區翻暗場,近黑大面漸層 vignette+中央微 spotlight,
   亮奶油卡片在暗場裡浮起=深度的「對比」;與前後亮場區塊硬切=兩極語彙(hero↔about 同款) */
#menu{padding:clamp(130px,17vw,240px) 0;overflow-x:clip;
  background:radial-gradient(1100px 720px at 50% 42%,#191410 0%,#0F0C0A 46%,#0A0908 74%)} /* 轉盤側卡出血不准撐寬 scrollWidth */
.menu-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:92px}
.dish{counter-increment:dish}
.stage::after{content:counter(dish,decimal-leading-zero);position:absolute;right:14px;bottom:6px;
  font-family:var(--mono);font-weight:800;font-size:64px;color:rgba(239,229,210,.07);
  letter-spacing:-.04em;pointer-events:none}
/* 去邊卡 v3(BOSS_NOTE 15+17):影片本人近乎滿格當主角;slab 翻亮奶油=暗場 stage 裡浮起的那一極 */
.dish{background:#F0EAD2;border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s;
  box-shadow:inset 0 1px 0 rgba(255,252,240,.7),0 12px 38px rgba(0,0,0,.5)} /* 頂緣亮線=攝影棚頂光 */
.dish:hover{transform:translateY(-4px);box-shadow:inset 0 1px 0 rgba(255,252,240,.7),0 30px 72px rgba(0,0,0,.6)}
.stage{aspect-ratio:16/9;background:#0A0908;flex:none;
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.menu-more{display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-top:44px;padding:30px 36px;border:1px solid var(--l-ink);border-radius:14px;
  font-size:clamp(18px,2.2vw,26px);font-weight:900;transition:background .3s,color .3s}
.menu-more b{font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.1em;
  color:var(--gold-deep);white-space:nowrap}
.menu-more:hover{background:var(--l-ink);color:var(--l-bg)}
.menu-hero{padding:200px 0 90px}

/* ============ 3D 效果轉盤(24 道排成圓環,拖曳/←→ 換道,正面亮側卡暗) ============ */
/* 卡做大做滿(BOSS_NOTE 15):cw 340→600,ch=影片16:9+64px資訊帶自算;r 公式吃 cw 自動放大 */
.ring-stage{--cw:600px;--ch:calc(var(--cw)*0.5625 + 64px);position:relative;margin-top:26px;counter-reset:dish}
.ring-viewport{position:relative;height:510px;perspective:480px;perspective-origin:50% 40%; /* 650→480:透視再壓,前後卡透視差一眼讀出滾筒(BOSS_NOTE 14);卡放大後 r 同步變大=滾筒感更強 */
  touch-action:pan-y;cursor:grab;outline:none;-webkit-user-select:none;user-select:none}
.ring-viewport:focus-visible{outline:1px solid rgba(240,234,210,.35);outline-offset:-1px}
.ring-viewport.dragging{cursor:grabbing}
.ring{position:absolute;left:50%;top:46px;width:0;height:0;transform-style:preserve-3d;
  will-change:transform}
/* 滾筒軌道(BOSS_NOTE 14):上下緣各一條 hairline 橢圓描出圓柱周長,與環同俯角、不吃 rotateY=卡動軌不動 */
.ring-rails{position:absolute;left:50%;top:46px;width:0;height:0;transform-style:preserve-3d;pointer-events:none}
.ring-rail{position:absolute;border-radius:50%;border:1px solid rgba(240,234,210,.22)} /* 暗場 hairline 配色(BOSS_NOTE 17c) */
/* 地面陰影(BOSS_NOTE 17c):每卡正下方一枚柔橢圓,容器與環同 transform=陰影跟著卡走;
   幾何 layout() 一次寫死,paint() 只調 opacity(深度越深越淡);攝影棚地面光池墊在後讓黑影讀得出來 */
.ring-shadows{position:absolute;left:50%;top:46px;width:0;height:0;transform-style:preserve-3d;pointer-events:none}
.ring-shadow{position:absolute;background:radial-gradient(closest-side,rgba(0,0,0,.85),rgba(0,0,0,.38) 46%,transparent 74%)}
.ring-stage::before{content:"";position:absolute;left:50%;top:52%;width:min(1500px,130%);height:360px;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(240,234,210,.13),rgba(240,234,210,.05) 55%,transparent 74%)}
.ring-card{position:absolute;left:calc(var(--cw) / -2);top:0;width:var(--cw);height:var(--ch);
  backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ring-card .dish{height:100%;position:relative}
.ring .dish{transition:box-shadow .3s}
.ring .dish:hover{transform:none}
.ring-shade{position:absolute;inset:0;z-index:3;background:#0A0908;border-radius:16px;
  opacity:0;pointer-events:none} /* 側卡淡入暗場=往攝影棚深處退(BOSS_NOTE 17c) */
.ring-ui{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:28px}
.ring-btn{width:44px;height:44px;border-radius:999px;border:1px solid rgba(240,234,210,.5);
  background:none;color:var(--d-ink);font-size:16px;line-height:1;cursor:pointer;
  font-family:var(--sans);transition:background .2s,color .2s}
.ring-btn:hover{background:var(--d-ink);color:#0A0908}
.ring-count{font-family:var(--mono);font-size:12.5px;letter-spacing:.22em;color:var(--d-muted)}
.ring-count b{color:var(--gold);font-weight:700}
/* NO.21 機械計數:計數字=雙位滾輪,0-9 直欄在 1em 窗口裡 translateY 滾到位(JS 建構,static 模式不存在) */
.ring-count b .odo-col{display:inline-block;height:1em;overflow:hidden;vertical-align:-.14em;letter-spacing:0}
.ring-count b .odo-strip{display:block;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.ring-count b .odo-strip span{display:block;height:1em;line-height:1}
/* NO.20 暗場探照:#menu 攝影棚跟游標的柔光,screen 疊亮;pointer-events 穿透,JS 只寫 --sx/--sy/opacity */
.menu-spot{position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(470px circle at var(--sx,50%) var(--sy,42%),
    rgba(240,234,210,.21),rgba(240,234,210,.07) 46%,transparent 72%)}
.ring-hint{margin-top:12px;text-align:center;font-family:var(--mono);font-size:11px;
  letter-spacing:.2em;color:var(--d-muted);opacity:.75}
@media(max-width:760px){
  .ring-stage{--cw:min(360px,85vw);--ch:calc(var(--cw)*0.5625 + 64px)} /* 單卡露邊契約:85vw 兩側鄰卡各露 ~25px;帶 56→64=兩行帶 */
  .ring-viewport{height:340px;perspective:390px} /* mobile 同比壓(BOSS_NOTE 14) */
  .ring,.ring-rails,.ring-shadows{top:36px}
}
/* 無動效(reduced/static/無 JS):轉盤退化成卡片牆,內容照樣全拿 */
html:not(.motion) .ring-viewport{height:auto;perspective:none;cursor:auto}
html:not(.motion) .ring{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:34px;
  width:auto;height:auto;transform:none!important}
html:not(.motion) .ring-card{position:static;width:auto;height:auto;transform:none!important}
html:not(.motion) .ring-ui,html:not(.motion) .ring-hint,html:not(.motion) .ring-rails,
html:not(.motion) .ring-shadows{display:none}
html:not(.motion) .ring-stage::before{display:none}
@media(max-width:760px){html:not(.motion) .ring{grid-template-columns:1fr}}

/* 換頁簾幕(原生 View Transitions,No.09 本人) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .55s cubic-bezier(.7,0,.3,1) both}
::view-transition-new(root){animation:vt-in .55s cubic-bezier(.7,0,.3,1) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-6vh)}}
@keyframes vt-in{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
/* 一行資訊帶 v3(BOSS_NOTE 17a):chip 全拆——NO. 併進帶(「17 · 聚沙成標」),
   「本站實例」=帶內小箭頭連結(title/aria 帶完整說明);帶翻亮奶油,墨字浮起 */
.dish-body{position:relative;flex:1;display:flex;align-items:center;gap:12px;
  padding:8px 62px 8px 18px;border-top:1px solid rgba(10,9,8,.16);color:#0A0908;min-height:56px}
.dish-no{display:none} /* pick 契約:qf-picks key 原文原封保留在 DOM,只是不再顯示(顯示改 .dish-num) */
.dish-num{flex:none;font-family:var(--mono);font-weight:700;font-size:14px;color:var(--gold-deep);
  letter-spacing:.04em}
.dish-num::after{content:"·";margin-left:12px;color:rgba(10,9,8,.35);font-weight:400}
.dish-name{font-weight:700;font-size:22px;letter-spacing:.02em;white-space:nowrap;color:#0A0908}
.dish-name small{font-family:var(--mono);font-weight:400;font-size:10.5px;color:rgba(10,9,8,.45);
  letter-spacing:.08em;margin-left:8px}
.dish-desc{flex:1;font-size:15px;font-weight:300;letter-spacing:.02em;color:rgba(10,9,8,.62);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 菜單分類小字(BOSS_NOTE 20):大菜=SIGNATURE 金字,微互動=小點;純文字不做膠囊(chip 已依便條 17a 禁用) */
.dish-cat{flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:rgba(10,9,8,.45);white-space:nowrap}
.dish-cat.sig{color:var(--gold-deep);font-weight:700}
.dish-live{flex:none;font-family:var(--mono);font-size:17px;line-height:1;color:var(--gold-deep);
  padding:5px 2px;transition:color .2s,transform .2s}
a.dish-live:hover{color:#0A0908;transform:translate(2px,-2px)}
.dish-pick{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:38px;height:38px;
  border-radius:999px;border:1px solid rgba(10,9,8,.5);background:none;color:#0A0908;
  font-size:19px;line-height:1;cursor:pointer;font-family:var(--sans);
  transition:background .2s,color .2s,border-color .2s}
.dish-pick:hover{background:#0A0908;color:#F0EAD2;border-color:#0A0908}
/* 資訊帶 mobile 覆寫必須排在桌機定義之後(同權重後者勝),別搬回轉盤 media block。
   手機帶改兩行(v25):第一行 num+名稱+箭頭,第二行 desc 全寬——一行塞不下 14 字就換行,不截字 */
@media(max-width:760px){
  .dish-name{font-size:18px}
  .dish-name small{display:none}
  .dish-cat{display:none}
  .dish-cat.sig{display:inline;font-size:9px}
  .dish-desc{order:9;flex:1 1 100%;font-size:12px;line-height:1.5}
  .dish-body{flex-wrap:wrap;align-content:center;gap:1px 8px;padding:6px 46px 7px 12px}
  .dish-num{font-size:12px}
  .dish-num::after{margin-left:7px}
  .dish-live{font-size:15px;padding:2px 0}
  .dish-pick{width:32px;height:32px;font-size:16px;right:10px}
}

/* 靜態示意 motif（W2 換成活效果） */
.m-txt{font-family:var(--serif);font-weight:900;font-size:44px;color:var(--l-ink);position:relative}
.m-txt::after{content:"";position:absolute;top:-8%;right:-6%;bottom:-8%;width:54%;
  background:linear-gradient(90deg,rgba(236,234,227,0),#eceae3 60%)}
html.motion .m-txt::after{display:none}
.m-btn{background:var(--l-ink);color:var(--l-bg);padding:12px 26px;border-radius:999px;
  font-size:14px;font-weight:700;position:relative}
.m-btn::after{content:"";position:absolute;inset:-14px;border:1px dashed rgba(10,9,8,.35);border-radius:999px}
.m-cursor{position:relative;width:70%;height:62%}
.m-cursor .thumb{position:absolute;right:6%;top:12%;width:58%;height:64%;background:var(--l-ink);
  border-radius:8px;opacity:.88;transform:rotate(-3deg)}
.m-cursor .thumb::after{content:"預覽";position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;color:var(--l-bg);font-size:13px;letter-spacing:.3em}
.m-cursor .arrow{position:absolute;left:8%;bottom:6%;font-size:26px}
.m-layers{position:relative;width:64%;height:60%}
.m-layers i{position:absolute;border-radius:8px}
.m-layers i:nth-child(1){inset:22% 0 0 26%;background:rgba(10,9,8,.14)}
.m-layers i:nth-child(2){inset:11% 12% 11% 13%;background:rgba(169,122,31,.5)}
.m-layers i:nth-child(3){inset:0 26% 22% 0;background:var(--l-ink)}
.m-split{display:flex;width:72%;height:58%;border-radius:8px;overflow:hidden;
  font-size:12px;letter-spacing:.2em}
.m-split span{flex:1;display:flex;align-items:center;justify-content:center}
.m-split .old{background:#d8d4c8;color:#8a8474;text-decoration:line-through}
.m-split .new{background:var(--l-ink);color:var(--gold)}
.m-marquee{white-space:nowrap;font-family:var(--mono);font-size:15px;color:var(--l-ink);
  letter-spacing:.24em;opacity:.85;transform:rotate(-2deg)}
.m-count{font-family:var(--mono);font-weight:800;font-size:46px;color:var(--l-ink)}
.m-count small{font-size:15px;color:var(--gold-deep);margin-left:4px}
.m-grad{width:66%;height:56%;border-radius:12px;filter:blur(1px);
  background:linear-gradient(120deg,#d09a58,#c8845f 40%,#756554 80%);opacity:.9}
.m-wipe{display:flex;width:70%;height:56%;border-radius:8px;overflow:hidden}
.m-wipe i{flex:1;background:var(--l-ink)}
.m-wipe i:nth-child(2){background:var(--gold);flex:.28}
.m-wipe i:nth-child(3){background:#d8d4c8}
.m-tilt{width:56%;height:60%;background:var(--l-panel);border:1px solid var(--l-line);border-radius:12px;
  transform:perspective(500px) rotateX(14deg) rotateY(-16deg);box-shadow:14px 22px 40px rgba(10,9,8,.18)}
.m-wave{font-family:var(--mono);font-size:30px;letter-spacing:-2px;color:var(--l-ink);opacity:.8}
.m-stagger{display:flex;gap:8px;align-items:flex-end;height:52%}
.m-stagger i{width:14px;background:var(--l-ink);border-radius:3px}
.m-stagger i:nth-child(1){height:34%}.m-stagger i:nth-child(2){height:58%}
.m-stagger i:nth-child(3){height:82%}.m-stagger i:nth-child(4){height:100%;background:var(--gold-deep)}

/* ============ Before/After（暗,釘住簾幕 scrub） ============ */
#ba{padding:clamp(80px,12vw,150px) 0;position:relative;overflow:hidden}
.ba-media{position:absolute;inset:0;z-index:0;opacity:.55}
.ba-media video{width:100%;height:100%;object-fit:cover}
#ba::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(rgba(27,20,16,.45),rgba(27,20,16,.12) 50%,rgba(27,20,16,.55))}
#ba .wrap{position:relative;z-index:2}
.ba-pin{margin-top:56px}
.ba-stage{position:relative;height:min(72vh,640px);border:1px solid var(--d-line);border-radius:16px;
  overflow:hidden;background:var(--d-panel)}
.ba-frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:56px}
.bf-before{background:#1a1712;z-index:1}
.bf-after{background:var(--d-bg);clip-path:inset(0 100% 0 0);z-index:2}
html:not(.motion) .bf-after{clip-path:none;position:relative;margin-top:0}
html:not(.motion) .ba-stage{height:auto;display:grid;grid-template-columns:1fr 1fr}
html:not(.motion) .ba-frame{position:relative;padding:40px}
.ba-tag{position:absolute;top:16px;left:20px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.2em;color:var(--d-ink);background:rgba(27,20,16,.78);
  padding:7px 14px;border-radius:6px;white-space:nowrap}
.ba-tag b{color:var(--bad);font-weight:400}
.ba-tag.ok{left:auto;right:20px}
.ba-tag.ok b{color:var(--ok)}
@media(max-width:700px){.ba-tag{font-size:10px;padding:5px 10px}}
.ba-frame .mock-old,.ba-frame .mock-new{width:min(560px,100%)}
@media(max-width:700px){.ba-frame{padding:56px 18px 18px}}
.mock-old{font-family:"Times New Roman",serif;background:#efe9dc;color:#4a4436;min-height:250px;
  padding:22px;border-radius:4px}
.mock-old h4{font-size:20px;font-weight:700;text-decoration:underline;color:#26437c}
.mock-old p{font-size:12.5px;line-height:1.7;margin-top:10px}
.mock-old .marq{font-size:11px;color:#c02929;margin-top:14px;letter-spacing:.06em}
.mock-old .btn88{display:inline-block;margin-top:16px;background:linear-gradient(#fefefe,#c9c9c9);
  border:2px outset #999;font-size:11px;padding:4px 10px;color:#222}
.mock-new{background:var(--d-bg);border:1px solid var(--d-line);min-height:250px;border-radius:4px;
  padding:26px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.mock-new .k{font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--gold)}
.mock-new h4{font-family:var(--serif);font-weight:900;font-size:26px;line-height:1.4}
.mock-new p{font-size:12.5px;color:var(--d-muted);font-weight:300}
.mock-new .row{display:flex;gap:10px;margin-top:6px}
.mock-new .pill{background:var(--gold);color:#1b1410;font-size:11.5px;font-weight:700;
  padding:7px 16px;border-radius:999px}
.mock-new .pill2{border:1px solid var(--d-line);color:var(--d-ink);font-size:11.5px;
  padding:7px 16px;border-radius:999px}
.difflist{margin-top:34px;border:1px solid var(--d-line);border-radius:14px;background:#0d1014;
  font-family:var(--mono);font-size:13.5px;line-height:2.3;padding:24px 28px}
.difflist .h{color:var(--d-muted);font-size:11.5px;letter-spacing:.16em;margin-bottom:8px}
.difflist .m{color:var(--bad)}.difflist .m::before{content:"−  "}
.difflist .p{color:var(--ok)}.difflist .p::before{content:"+  "}
.demo-note{margin-top:18px;font-size:12px;color:var(--d-muted);font-family:var(--mono);letter-spacing:.1em}

/* ============ 服務與流程（亮,編輯式索引列） ============ */
#services{padding:clamp(130px,17vw,240px) 0;border-top:1px solid var(--l-line)}
.svc-list{margin-top:92px;border-top:1px solid var(--l-ink)}
.svc-row{display:grid;grid-template-columns:130px 1.1fr 1.6fr 60px;gap:28px;align-items:center;
  padding:44px 8px;border-bottom:1px solid var(--l-line);position:relative;
  transition:background .3s,padding-left .3s}
.svc-row:hover{background:var(--l-panel);padding-left:22px}
.sv-no{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3vw,42px);color:var(--l-ink);letter-spacing:.02em}
.sv-no i{font-family:"EB Garamond",serif;font-style:italic;font-weight:500;font-size:.55em;color:var(--gold-deep);margin-right:6px}
.svc-row h3{font-size:clamp(19px,2vw,26px);font-weight:900;letter-spacing:.02em}
.svc-row p{font-size:14px;color:var(--l-muted);font-weight:300;line-height:1.95}
.sv-arrow{font-size:26px;color:var(--gold-deep);opacity:0;transform:translateX(-10px);
  transition:opacity .3s,transform .3s;text-align:right}
.svc-row:hover .sv-arrow{opacity:1;transform:none}
@media(max-width:820px){.svc-row{grid-template-columns:64px 1fr;grid-template-rows:auto auto}
  .svc-row h3{grid-column:2}.svc-row p{grid-column:2}.sv-arrow{display:none}
  .sv-no{grid-row:1/3;font-size:30px;align-self:start}}
.breather{margin:140px calc(50% - 50vw) 0;height:46vh;overflow:hidden}
.breather video{width:100%;height:118%;object-fit:cover}
.flow{margin-top:140px}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:70px;
  counter-reset:step}
@media(max-width:900px){.flow-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.flow-grid{grid-template-columns:1fr}}
.step{border-top:1px solid var(--l-ink);padding-top:22px;position:relative}
.step .sno{font-family:var(--mono);font-size:12px;color:var(--gold-deep);letter-spacing:.2em}
.step h4{font-size:18.5px;font-weight:700;margin:8px 0 6px}
.step p{font-size:13px;color:var(--l-muted);font-weight:300;line-height:1.9}
.step .free{display:inline-block;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--gold-deep);
  border:1px solid var(--gold-deep);border-radius:999px;padding:3px 12px;letter-spacing:.08em}
.flow-note{margin-top:36px;font-size:13.5px;color:var(--l-muted);font-weight:300}
.flow-note b{color:var(--l-ink);font-weight:500}

/* (#band 大字跑馬燈帶已依 BOSS_NOTE 12 整段退役) */

/* ============ 我們是誰(About v2,BOSS_NOTE 18):單欄大字宣言+超大數字編排+一行工作原則;
   漂浮物全清——張力由字級對比扛,不靠道具;數字只留真實可查三項,一項獨佔一整條 hairline 列 ============ */
#about{padding:clamp(150px,20vw,280px) 0;position:relative;overflow:hidden}
.about-decl{font-family:var(--serif);font-weight:900;font-size:clamp(46px,7.4vw,104px);
  line-height:1.28;letter-spacing:.01em;margin-top:34px}
.about-decl .gold{color:var(--gold-deep)}
.about-note{margin:64px 0 0 auto;max-width:520px;font-size:clamp(15px,1.35vw,17px);
  font-weight:300;line-height:2.1;color:var(--l-muted)} /* 註腳推右=單欄裡的編輯部不對稱 */
.about-note b{font-weight:500;color:var(--l-ink)}
.about-num{margin-top:clamp(90px,12vw,170px)}
.an-row{display:grid;grid-template-columns:clamp(180px,24vw,320px) 1fr;gap:clamp(24px,4vw,60px);
  align-items:center;border-top:1px solid var(--l-ink);padding:clamp(34px,4.5vw,56px) 4px}
.an-fig{font-family:var(--serif);font-weight:900;font-size:clamp(84px,11vw,168px);
  line-height:.92;letter-spacing:-.02em}
.an-txt h3{font-size:clamp(18px,1.9vw,24px);font-weight:900;letter-spacing:.02em}
.an-txt p{margin-top:10px;font-size:14px;color:var(--l-muted);font-weight:300;line-height:1.95;max-width:520px}
.about-rule{margin-top:clamp(70px,9vw,110px);border-top:1px solid var(--l-ink);padding-top:30px;
  font-family:var(--mono);font-size:12.5px;letter-spacing:.3em;color:var(--l-muted)}
.about-rule span{color:var(--gold-deep);margin:0 clamp(10px,2.4vw,26px)}
@media(max-width:820px){
  .about-note{margin-left:0;margin-top:44px}
  .an-row{grid-template-columns:1fr;gap:12px;align-items:start}
  .about-rule{letter-spacing:.16em;font-size:11.5px}
}

/* ============ NO.23 開花敘事 BLOOM(招牌大菜,BOSS_NOTE 21):pinned 滿版暗場攝影棚,
   「真實開花電影」捲動 scrub——Seedance 一鏡到底(種子→發芽→抽莖→玫瑰綻放),
   video.currentTime 隨 ScrollTrigger progress 推進(motion.js);
   static/reduced/解碼失敗:綻放完成格 bloom_still.jpg+收尾文案 ============ */
#bloom{background:radial-gradient(1100px 720px at 50% 45%,#191410 0%,#0F0C0A 46%,#0A0908 74%)}
.bloom-pin{position:relative;height:100svh;overflow:hidden}
.bloom-vid,#bloom.bloom-err .bloom-still{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 35%;display:block}
.bloom-still{display:none}
#bloom.bloom-err .bloom-vid{visibility:hidden}
/* 疊字可讀:上下輕暗角(中央玫瑰不壓) */
.bloom-shade{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,9,8,.46) 0%,rgba(10,9,8,0) 17%),
             linear-gradient(0deg,rgba(10,9,8,.52) 0%,rgba(10,9,8,0) 26%)}
.bloom-top{position:absolute;top:104px;left:0;right:0;z-index:3;display:flex;
  justify-content:space-between;align-items:center;gap:20px}
.bloom-scene{position:relative;height:1.2em;min-width:190px;font-family:var(--mono);
  font-size:11px;letter-spacing:.3em;color:var(--d-muted)}
.bloom-scene span{position:absolute;right:0;top:0;white-space:nowrap}
.bloom-cap{position:absolute;left:clamp(20px,7vw,110px);bottom:clamp(80px,13vh,150px);z-index:3;
  font-family:var(--serif);font-weight:900;font-size:clamp(24px,3.2vw,44px);letter-spacing:.02em;
  color:var(--d-ink);text-shadow:0 2px 24px rgba(10,9,8,.85)}
.bloom-fin{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:34px;text-align:center;
  background:radial-gradient(640px 420px at 50% 55%,rgba(10,9,8,.55),rgba(10,9,8,0) 70%)}
.bloom-fin p{font-family:var(--serif);font-weight:900;font-size:clamp(34px,5.4vw,76px);
  line-height:1.3;color:var(--d-ink)}
.bloom-fin .gold{color:var(--gold)}
@media(max-width:760px){
  .bloom-top{top:84px}
  .bloom-scene{display:none}
  .bloom-cap{left:24px;right:24px;bottom:9vh;font-size:clamp(21px,6vw,28px)}
  /* 直幅:16:9 滿版 cover 會裁掉最寬花瓣→高 72svh 垂直置中,上下 mask 融進攝影棚底
     (幾何驗算:390 寬 crop x 範圍 32%-68%,玫瑰 33%-66% 完整) */
  .bloom-vid,#bloom.bloom-err .bloom-still{height:72svh;top:0;bottom:0;margin:auto;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%)}
}
/* 降級:不 pin,綻放完成格當靜態插圖,收尾文案直接排在下面 */
html:not(.motion) .bloom-pin{height:auto;padding:clamp(90px,12vw,150px) 0 60px;overflow:visible}
html:not(.motion) .bloom-vid{display:none}
html:not(.motion) .bloom-still{display:block;width:min(92vw,1100px);height:auto;margin:0 auto}
html:not(.motion) .bloom-top{position:static;margin:0 auto 40px;max-width:var(--maxw);padding:0 clamp(20px,5vw,56px)}
html:not(.motion) .bloom-cap,html:not(.motion) .bloom-scene,html:not(.motion) .bloom-shade{display:none}
html:not(.motion) .bloom-fin{position:static;background:none;padding:40px 20px 60px}

/* ============ FAQ（亮） ============ */
#faq{padding:clamp(130px,17vw,240px) 0;border-top:1px solid var(--l-line)}
.faq-list{margin-top:84px;border-top:1px solid var(--l-ink)}
details{border-bottom:1px solid var(--l-line)}
summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;
  gap:20px;padding:32px 4px;font-size:18.5px;font-weight:700;letter-spacing:.01em}
summary::-webkit-details-marker{display:none}
summary .plus{font-family:var(--mono);color:var(--gold-deep);font-size:20px;flex-shrink:0;
  transition:transform .25s}
details[open] .plus{transform:rotate(45deg)}
details p{padding:0 4px 28px;font-size:14.5px;color:var(--l-muted);font-weight:300;max-width:760px}
details p b{color:var(--l-ink);font-weight:500}

/* ============ CTA 尾段（暗,影片重用） ============ */
#cta{padding:clamp(150px,20vw,280px) 0 0;text-align:center;overflow:hidden;position:relative}
.cta-media{position:absolute;inset:0;z-index:0;opacity:.55}
.cta-media video{width:100%;height:100%;object-fit:cover;transform:translateZ(0)}
#cta::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(rgba(10,9,8,.5),rgba(10,9,8,.92) 90%)}
#cta .wrap,#cta footer{position:relative;z-index:2}
#cta h2{font-family:var(--serif);font-weight:900;font-size:clamp(48px,8.4vw,120px);line-height:1.24}
#cta h2 .gold{color:var(--gold)}
#cta .lead{margin:30px auto 0;max-width:520px}
.cta-actions{margin-top:48px;display:flex;gap:24px;justify-content:center;align-items:center;flex-wrap:wrap}
.cta-mail{margin-top:26px;font-family:var(--mono);font-size:13px;color:var(--d-muted);letter-spacing:.08em}
.cta-mail a{color:var(--gold);border-bottom:1px solid rgba(232,180,90,.4)}
footer{margin-top:clamp(80px,10vw,130px);border-top:1px solid var(--d-line);
  padding:30px clamp(20px,4vw,48px);display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:11.5px;color:var(--d-muted);letter-spacing:.18em;flex-wrap:wrap;gap:12px}
footer .dot{color:var(--gold)}

/* ============ W2 動效層 ============ */
#loader{position:fixed;inset:0;z-index:100;background:var(--d-bg);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:18px}
#loader .l-mark{font-family:var(--serif);font-weight:900;font-size:22px;letter-spacing:.04em}
#loader .l-mark sup{color:var(--gold);font-size:11px}
#loader .l-num{font-family:var(--mono);font-weight:800;font-size:64px;color:var(--gold)}
html.static #loader{display:none}
html:not(.motion):not(.static) #loader{display:none}

/* 進場 pre-state（只在 motion 模式，避免無 JS 時內容隱形） */
html.motion .rv{opacity:0;transform:translateY(46px)}
html.motion .rv.rv-in{opacity:1;transform:none}
html.motion:not(.hero-in) #hero .mark-wrap,
html.motion:not(.hero-in) #hero .hero-tag,
html.motion:not(.hero-in) #hero .hero-counter{opacity:0}
html.motion #cta h2{opacity:0}

/* nav 換膚（滑到亮場:米膚;暗場:預設暗膚） */
nav{transition:background .3s}
nav.on-light{background:linear-gradient(rgba(240,234,210,.9),rgba(240,234,210,0))}
nav.on-light .wordmark{color:var(--l-ink)}
nav.on-light .navlinks{color:var(--l-muted)}
nav.on-light .navlinks a:hover{color:var(--l-ink)}
nav.on-light .btn-nav{color:#1b1410!important}

/* 效果菜單 demo 附加 */
.m-mq{width:100%;font-family:var(--mono);font-size:15px;color:var(--l-ink);
  letter-spacing:.24em;opacity:.85;white-space:nowrap}
.m-grad{position:relative;overflow:hidden}
.m-grad canvas{position:absolute;inset:0;width:100%;height:100%}
.dish-pick.on{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}
.dish-pick.on:hover{background:var(--gold-deep);color:#fff}

/* 收藏浮動列 */
#pickbar{position:fixed;left:50%;bottom:26px;transform:translate(-50%,120px);z-index:70;
  display:flex;align-items:center;gap:18px;background:var(--d-panel);border:1px solid var(--d-line);
  color:var(--d-ink);border-radius:999px;padding:12px 14px 12px 24px;font-size:13.5px;
  box-shadow:0 18px 50px rgba(0,0,0,.45);transition:transform .45s cubic-bezier(.22,1,.36,1)}
#pickbar.show{transform:translate(-50%,0)}
#pickbar b{color:var(--gold);font-family:var(--mono);margin:0 2px}
#pickbar .pb-go{background:var(--gold);color:#1b1410;border:0;font-family:var(--sans);
  font-weight:700;font-size:13px;padding:10px 20px;border-radius:999px;cursor:pointer;letter-spacing:.04em}
#pickbar .pb-tip{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);
  white-space:nowrap;background:var(--d-bg);border:1px solid var(--d-line);border-radius:8px;
  padding:8px 16px;font-size:12px;color:var(--d-muted);opacity:0;pointer-events:none;transition:opacity .3s}
#pickbar .pb-tip.show{opacity:1}
@media(max-width:560px){#pickbar{width:calc(100% - 32px);justify-content:space-between;padding-left:18px}
  #pickbar .pb-tip{white-space:normal;width:100%;text-align:center}}

/* Before/After 進度 */
.ba-progress{margin-top:30px;font-family:var(--mono);font-size:13px;letter-spacing:.18em;color:var(--gold)}
.ba-progress #baPct{font-weight:800;font-size:20px}
.ba-progress em{font-style:normal;color:var(--d-muted)}

/* ============ reduced motion / 逃生口 ============ */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html.static .rv{opacity:1;transform:none}

/* NO.22 劃線進場:.ldh 原 border 透明化(寬度佔位保留=零位移),.ld 疊在原 border 位置由左劃開;
   static/reduced 不掛 .ldh,原生 border 照舊 */
html.motion .ldh{position:relative;border-color:transparent}
.ld{position:absolute;left:0;width:100%;height:1px;background:var(--l-ink);
  transform-origin:0 50%;pointer-events:none}
.svc-row .ld{background:var(--l-line)}
.ld-t{top:-1px}
.ld-b{bottom:-1px}

/* No.10 立體傾斜卡實裝(「怎麼合作」步驟卡):卡片化+光澤層只在 JS 判定 hover:fine 後掛 .tilt-live,手機維持原清單樣式 */
.motion .step.tilt-live{background:var(--l-panel);border:1px solid var(--l-line);border-radius:14px;
  padding:22px 20px 24px;transform-style:preserve-3d;will-change:transform;
  box-shadow:0 1px 2px rgba(10,9,8,.05);transition:box-shadow .45s}
.motion .step.tilt-live:hover{box-shadow:14px 22px 40px rgba(10,9,8,.16)}
.tilt-glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(420px circle at var(--gx,50%) var(--gy,42%),rgba(255,248,230,.55),rgba(255,248,230,.14) 40%,transparent 66%);
  mix-blend-mode:soft-light}
