/* ============================================================
   質感版（agent.json 的 "luxe"）：配色 1～7、封面 A／B／C、首頁順序、字體 1～6
   需搭配 skins.css（html data-skin="lux"）
   ============================================================ */
html{--nd-bg:#0d0d0d;--nd-bg-rgb:13,13,13;--nd-paper:#f4f1ec;--nd-on:#f2ece2;--nd-mute:#a39d92;--hf:"Noto Serif TC",serif;--bf:"Noto Sans TC",sans-serif}
body{font-family:var(--bf)}
h1,h2,h3,.brand .t1,.brand .mark{font-family:var(--hf)!important}
/* ===== 首頁版面 ===== */
.nd-serif{font-family:var(--hf)}
.nd-label{display:flex;align-items:center;gap:14px;font-size:.74rem;letter-spacing:.38em;color:var(--gold-dk);margin-bottom:18px}
.nd-label::before{content:"";width:40px;height:1px;background:currentColor}
.nd-dark .nd-label{color:var(--gold)}

/* 1. 全版封面 */
.nd-hero{position:relative;min-height:calc(100vh - 140px);min-height:calc(100svh - 140px);display:flex;align-items:flex-end;color:var(--nd-on);background:var(--nd-bg);overflow:hidden}
.nd-hero-img{position:absolute;inset:0 0 0 38%;background:var(--nd-photo) center 18%/cover no-repeat}
.nd-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--nd-bg) 36%,rgba(var(--nd-bg-rgb),.8) 50%,rgba(var(--nd-bg-rgb),0) 72%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.85),transparent 40%)}
.nd-hero .wrap{position:relative;z-index:2;width:100%;padding-top:80px;padding-bottom:64px}
.nd-hero h1{font-family:var(--hf);font-weight:600;font-size:clamp(2.2rem,4.8vw,4.2rem);line-height:1.18;letter-spacing:.06em;margin:0 0 26px;max-width:9.5em}
.nd-hero h1 em{font-style:normal;color:var(--gold-2)}
.nd-hero p{max-width:30em;color:var(--nd-mute);font-size:1.02rem;margin:0 0 40px}

/* 2. 我想要… 入口 */
.nd-want{display:grid;grid-template-columns:auto repeat(var(--n,5),1fr);border:1px solid rgba(var(--acc2-rgb),.35);max-width:900px;background:rgba(var(--nd-bg-rgb),.55);backdrop-filter:blur(6px)}
.nd-want span{display:flex;align-items:center;padding:0 22px;font-size:.82rem;letter-spacing:.24em;color:var(--gold-2);border-right:1px solid rgba(var(--acc2-rgb),.35)}
.nd-want a{padding:18px 10px;text-align:center;text-decoration:none;color:var(--nd-on);font-size:.98rem;letter-spacing:.14em;border-right:1px solid rgba(var(--acc2-rgb),.18);transition:background .2s,color .2s}
.nd-want a:last-child{border-right:0}
.nd-want a small{display:block;font-size:.66rem;letter-spacing:.2em;color:var(--nd-mute);margin-top:2px}
.nd-want a:hover{background:var(--gold);color:var(--nd-bg)}
.nd-want a:hover small{color:#3a3226}

/* 3. 數字列 */
.nd-stats{background:var(--nd-paper);border-bottom:1px solid var(--line)}
.nd-stats .wrap{display:grid;grid-template-columns:repeat(var(--n,4),1fr)}
.nd-stat{padding:38px 20px;border-left:1px solid var(--line);text-align:center}
.nd-stat:first-child{border-left:0}
.nd-stat b{display:block;font-family:var(--hf);font-size:clamp(2rem,4vw,2.8rem);font-weight:600;color:var(--strong);line-height:1.1}
.nd-stat b small{font-size:.42em;margin-left:4px;color:var(--gold-dk)}
.nd-stat span{font-size:.82rem;letter-spacing:.18em;color:var(--muted)}

/* 4. 精選物件：大小交錯 */
.nd-sec{padding:110px 0}
.nd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:46px}
.nd-head h2{font-family:var(--hf);font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:600;letter-spacing:.08em;margin:0}
.nd-more{color:var(--strong);text-decoration:none;font-size:.88rem;letter-spacing:.2em;border-bottom:1px solid var(--gold);padding-bottom:4px;white-space:nowrap}
.nd-mosaic{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:260px;gap:14px}
.nd-tile{position:relative;overflow:hidden;background:#222;color:#fff;text-decoration:none;display:block}
.nd-tile:first-child{grid-row:span 2}
.nd-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.nd-tile:hover img{transform:scale(1.05)}
.nd-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,0) 55%)}
.nd-tile .t{position:absolute;left:22px;right:22px;bottom:18px;z-index:1}
.nd-tile .a{font-size:.72rem;letter-spacing:.28em;color:var(--gold-2)}
.nd-tile h3{font-family:var(--hf);font-weight:600;font-size:1.1rem;margin:4px 0 6px;letter-spacing:.06em;line-height:1.4}
.nd-tile:first-child h3{font-size:1.6rem}
.nd-tile .p{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--nd-on);letter-spacing:.06em}
.nd-tile .p b{font-family:var(--hf);font-size:1.35rem;color:#fff;font-weight:600}
.nd-tile .p b small{font-size:.7rem;margin-left:2px}

/* 5. 理念＋四項服務 */
.nd-dark{background:var(--nd-bg);color:var(--nd-on)}
.nd-about{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
.nd-quote{font-family:var(--hf);font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.6;letter-spacing:.08em;font-weight:500;margin:0 0 30px}
.nd-quote em{font-style:normal;color:var(--gold-2)}
.nd-about p.s{color:var(--nd-mute);margin:0 0 34px}
.nd-svc{list-style:none;margin:0;padding:0;counter-reset:s}
.nd-svc li{counter-increment:s;display:grid;grid-template-columns:70px 1fr;gap:6px 0;padding:26px 0;border-top:1px solid rgba(255,255,255,.12)}
.nd-svc li:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
.nd-svc li::before{content:"0" counter(s);grid-row:span 2;font-family:var(--hf);font-size:1.5rem;color:var(--gold)}
.nd-svc b{font-size:1.12rem;letter-spacing:.12em;font-weight:500;color:#fff}
.nd-svc span{color:var(--nd-mute);font-size:.93rem}

/* 6. 短影音 */
[data-blk="philo"]+[data-blk="shorts"]{padding-top:0}
[data-blk="hero"]+[data-blk="shorts"]{padding-top:72px;border-top:1px solid rgba(var(--acc2-rgb),.22)}
.nd-shorts .short-title{color:var(--nd-on)}
.nd-shorts .shorts-nav button{border-color:var(--nd-on);color:var(--nd-on)}

/* 7. 工具：清單 */
.nd-tools{display:grid;grid-template-columns:1fr 1fr;column-gap:64px}
.nd-tools a{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:22px 4px;border-top:1px solid var(--line);text-decoration:none;color:var(--text);transition:padding .25s,background .25s}
.nd-tools a:hover{padding-left:14px;background:#fff}
.nd-tools .n{font-family:var(--hf);color:var(--gold-dk);font-size:.95rem}
.nd-tools b{display:block;font-weight:500;letter-spacing:.1em;font-size:1.04rem}
.nd-tools small{color:var(--muted);font-size:.84rem}
.nd-tools i{font-style:normal;color:var(--gold-dk)}

/* 8. 結尾 */
.nd-end{position:relative;overflow:hidden;background:var(--nd-bg);color:var(--nd-on);text-align:center;padding:130px 0}
/* 聯絡區背景不放真人照片，改成細緻的光暈 */
.nd-end::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(var(--acc-rgb),.16),transparent 70%)}
.nd-end .wrap{position:relative}
.nd-end h2{font-family:var(--hf);font-size:clamp(1.8rem,4vw,3rem);font-weight:600;letter-spacing:.1em;margin:0 0 18px}
.nd-end p{color:var(--nd-mute);margin:0 0 30px}
.nd-tel{display:inline-block;font-family:var(--hf);font-size:clamp(2.2rem,6vw,4rem);letter-spacing:.12em;color:var(--gold-2);text-decoration:none;margin-bottom:34px}
.nd-end .actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.nd-area{font-size:.86rem;color:var(--muted);text-align:center;max-width:46em;margin:0 auto}

@media (max-width:900px){
  .nd-hero-img{inset:0 0 35% 0;background-position:center 15%}
  .nd-hero::before{background:linear-gradient(0deg,var(--nd-bg) 42%,rgba(var(--nd-bg-rgb),.6) 62%,rgba(var(--nd-bg-rgb),0) 85%)}
  .nd-hero{min-height:auto}
  .nd-hero .wrap{padding-top:300px;padding-bottom:40px}
  
  .nd-want{grid-template-columns:repeat(3,1fr)}
  .nd-want span{grid-column:1/-1;padding:10px 16px;border-right:0;border-bottom:1px solid rgba(var(--acc2-rgb),.35)}
  .nd-want a{border-bottom:1px solid rgba(var(--acc2-rgb),.18)}
  .nd-stats .wrap{grid-template-columns:repeat(2,1fr)}
  .nd-stat{padding:26px 10px}
  .nd-stat:nth-child(3){border-left:0}
  .nd-stat:nth-child(n+3){border-top:1px solid var(--line)}
  .nd-sec{padding:72px 0}
  .nd-head{flex-direction:column;align-items:flex-start;margin-bottom:30px}
  .nd-mosaic{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;grid-auto-rows:360px;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-16px;padding-right:16px;scrollbar-width:none}
  .nd-tile{scroll-snap-align:start}
  .nd-tile:first-child{grid-row:auto}
  .nd-tile h3,.nd-tile:first-child h3{font-size:1.2rem}
  .nd-about{grid-template-columns:1fr;gap:20px}
  .nd-tools{grid-template-columns:1fr}
  .nd-end{padding:90px 0}
}

/* ===== 配色（樣本可切換） ===== */
html[data-skin][data-pal="navy"]{--nd-bg:#0f1b2d;--nd-bg-rgb:15,27,45;--nd-paper:#f5f1ea;--nd-on:#eef1f6;--nd-mute:#9eaabb;
  --ink:#0f1b2d;--ink-2:#15243a;--ink-3:#22344f;--ink-rgb:15,27,45;--gold:#c9a45c;--gold-2:#e2c68d;--gold-dk:#9c7a3a;--acc-rgb:201,164,92;--acc2-rgb:226,198,141;
  --cream:#f5f1ea;--line:#e3dccd;--strong:#0f1b2d;--btn-ink:#0f1b2d;--bar:#0a1320;--bar-text:#eef1f6;--bar-mute:#8e9bb0}
html[data-skin][data-pal="green"]{--nd-bg:#14322a;--nd-bg-rgb:20,50,42;--nd-paper:#f2f1ea;--nd-on:#f3efe2;--nd-mute:#a9b8ae;
  --ink:#14322a;--ink-2:#1a4034;--ink-3:#25574a;--ink-rgb:20,50,42;--gold:#cfae6c;--gold-2:#e6cf9e;--gold-dk:#87692c;--acc-rgb:207,174,108;--acc2-rgb:230,207,158;
  --cream:#f2f1ea;--line:#dedbca;--strong:#14322a;--btn-ink:#14322a;--bar:#0c231d;--bar-text:#f3efe2;--bar-mute:#93a69a}
html[data-skin][data-pal="wine"]{--nd-bg:#34121a;--nd-bg-rgb:52,18,26;--nd-paper:#f7f0e9;--nd-on:#fbefe3;--nd-mute:#c3a8a3;
  --ink:#34121a;--ink-2:#451924;--ink-3:#5c2431;--ink-rgb:52,18,26;--gold:#d4ae7e;--gold-2:#ecd5b3;--gold-dk:#96683a;--acc-rgb:212,174,126;--acc2-rgb:236,213,179;
  --cream:#f7f0e9;--line:#eadacb;--strong:#34121a;--btn-ink:#34121a;--bar:#260b11;--bar-text:#fbefe3;--bar-mute:#b4968f}
html[data-skin][data-pal="stone"]{--nd-bg:#2b2d2f;--nd-bg-rgb:43,45,47;--nd-paper:#ebe8e3;--nd-on:#eeece8;--nd-mute:#a3a5a7;
  --ink:#2b2d2f;--ink-2:#34373a;--ink-3:#43474b;--ink-rgb:43,45,47;--gold:#a88b6c;--gold-2:#c8b197;--gold-dk:#7a634b;--acc-rgb:168,139,108;--acc2-rgb:200,177,151;
  --cream:#ebe8e3;--line:#d8d3cb;--strong:#2b2d2f;--btn-ink:#2b2d2f;--bar:#202224;--bar-text:#eeece8;--bar-mute:#93969a}
html[data-skin][data-pal="mocha"]{--nd-bg:#46372c;--nd-bg-rgb:70,55,44;--nd-paper:#f5f0e8;--nd-on:#f6eee3;--nd-mute:#c9b9a6;
  --ink:#46372c;--ink-2:#514034;--ink-3:#624e3f;--ink-rgb:70,55,44;--gold:#c9a172;--gold-2:#e2c6a0;--gold-dk:#8d6640;--acc-rgb:201,161,114;--acc2-rgb:226,198,160;
  --cream:#f5f0e8;--line:#e4d9ca;--strong:#3a2d24;--btn-ink:#3a2d24;--bar:#3a2d24;--bar-text:#f6eee3;--bar-mute:#b9a895}
html[data-skin] header.site{background:rgba(var(--ink-rgb),.97)}
html[data-skin] .hero,html[data-skin] .page-head,html[data-skin] .cta-band{background:var(--ink)}
html[data-skin][data-pal="ivory"]{--nd-bg:#f3eee5;--nd-bg-rgb:243,238,229;--nd-paper:#fbf9f5;--nd-on:#2a2622;--nd-mute:#7a7268;
  --ink:#f3eee5;--ink-2:#ebe4d8;--ink-3:#e2d9ca;--ink-rgb:243,238,229;--gold:#a8834f;--gold-2:#8c6a3f;--gold-dk:#7a5a30;--acc-rgb:168,131,79;--acc2-rgb:140,106,63;
  --cream:#fbf9f5;--paper:#fffdf9;--line:#e4dccd;--text:#2a2622;--muted:#7a7268;--on-dark:#2a2622;--on-dark-mute:#7a7268;--on-rgb:0,0,0;
  --strong:#2a2622;--btn-ink:#ffffff;--tint:#efe6d6;--bar:#2a2622;--bar-text:#f3eee5;--bar-mute:#b5ab9c}
html[data-pal="ivory"] .nd-svc b{color:var(--nd-on)}
html[data-pal="ivory"] .nd-svc li{border-color:rgba(0,0,0,.12)!important}
html[data-pal="ivory"] .nd-hero .nd-label,html[data-pal="ivory"] .nd-end .nd-label{color:var(--gold-dk)!important}
html[data-pal="ivory"] .nd-want a{color:var(--nd-on)}
html[data-pal="ivory"] .nd-want a:hover{color:#fff}

html[data-pal="ivory"] .nd-tel{color:var(--gold-dk)}
html[data-pal="ivory"] header.site{border-bottom:1px solid var(--line)}
html[data-pal] .nd-tile{background:var(--nd-bg)}

/* ===== 封面版型 B：左右分割（淺底） ===== */
html[data-hero="split"] .nd-hero{background:var(--nd-paper);color:var(--text);min-height:auto;align-items:center}
html[data-hero="split"] .nd-hero::before{display:none}
html[data-hero="split"] .nd-hero-img{inset:60px calc((100% - min(100%,var(--maxw)))/2 + 20px) 60px 54%;box-shadow:22px 22px 0 -1px var(--nd-paper),22px 22px 0 0 var(--gold)}
html[data-hero="split"] .nd-hero .wrap{padding-top:90px;padding-bottom:90px}
html[data-hero="split"] .nd-hero .wrap>*{max-width:47%}
html[data-hero="split"] .nd-hero h1 em,html[data-hero="split"] .nd-hero .nd-label{color:var(--gold-dk)!important}
html[data-hero="split"] .nd-hero p{color:var(--muted)}
html[data-hero="split"] .nd-want{background:transparent;border-color:var(--line);grid-template-columns:repeat(var(--n,5),1fr)}
html[data-hero="split"] .nd-want span{display:none}
html[data-hero="split"] .nd-want a{color:var(--text);border-right-color:var(--line)}
html[data-hero="split"] .nd-want a small{color:var(--muted)}

/* ===== 封面版型 C：置中大字＋寬幅照片 ===== */
html[data-hero="center"] .nd-hero{flex-direction:column-reverse;align-items:stretch;min-height:auto;text-align:center}
html[data-hero="center"] .nd-hero::before{display:none}
html[data-hero="center"] .nd-hero-img{position:relative;inset:auto;height:min(62vh,560px);background-position:center 22%}
html[data-hero="center"] .nd-hero .wrap{padding-top:96px;padding-bottom:64px}
html[data-hero="center"] .nd-hero h1{max-width:none;font-size:clamp(2.2rem,5.4vw,4.6rem)}
html[data-hero="center"] .nd-hero h1 br:first-of-type{display:none}
html[data-hero="center"] .nd-hero .nd-label{justify-content:center}
html[data-hero="center"] .nd-hero .nd-label::after{content:"";width:40px;height:1px;background:currentColor}
html[data-hero="center"] .nd-hero p{margin-left:auto;margin-right:auto}
html[data-hero="center"] .nd-want{margin:0 auto}

@media (max-width:900px){
  html[data-hero="split"] .nd-hero{flex-direction:column-reverse;align-items:stretch}
  html[data-hero="split"] .nd-hero-img{position:relative;inset:auto;height:360px;margin:28px 16px 0;box-shadow:none}
  html[data-hero="split"] .nd-hero .wrap{padding-top:34px;padding-bottom:44px}
  html[data-hero="split"] .nd-hero .wrap>*{max-width:none}
  html[data-hero="split"] .nd-want{grid-template-columns:repeat(3,1fr)}
  html[data-hero="center"] .nd-hero-img{height:340px}
  html[data-hero="center"] .nd-hero .wrap{padding-top:52px;padding-bottom:40px}
  html[data-hero="center"] .nd-hero h1 br:first-of-type{display:inline}
}

/* 首頁照片上的手寫名字 */
.nd-names{position:absolute;z-index:2;pointer-events:none}
.nd-name{position:absolute;transform:translate(-50%,-50%) rotate(-7deg);font-family:"LXGW WenKai TC",var(--hf);font-weight:var(--nw,700);font-size:34px;color:var(--gold-2);white-space:nowrap;line-height:1;text-shadow:0 2px 12px rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.4);letter-spacing:.06em}
.nd-name small{font-size:.58em;margin-left:.35em;color:inherit;letter-spacing:.12em}
.nd-name::after{content:"";display:block;height:2px;margin:.25em auto 0;width:80%;background:linear-gradient(90deg,transparent,var(--gold-2) 25%,var(--gold-2) 75%,transparent);border-radius:2px;opacity:.85}
@media (max-width:900px){.nd-name{font-size:1.45rem}}

/* 首頁最下面：Q 版人物＋服務區域 */
.nd-mascot{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:center;max-width:920px;margin:0 auto}
.nd-mascot img{width:100%;height:auto;filter:drop-shadow(0 14px 24px rgba(var(--ink-rgb),.18))}
.nd-mascot h3{font-family:var(--hf);font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:.1em;margin:0 0 10px;color:var(--strong)}
.nd-mascot p{margin:0 0 14px;color:var(--text)}
.nd-mascot .nd-area{text-align:left;margin:0;max-width:none}
@media (max-width:700px){.nd-mascot .nd-label{justify-content:center}.nd-mascot{grid-template-columns:1fr;gap:18px;text-align:center}.nd-mascot img{max-width:240px;margin:0 auto}.nd-mascot .nd-area{text-align:center}}

/* 封面 A：人在左邊、文字在右邊（luxe.side = "left"，只影響電腦版） */
@media (min-width:769px){
  html[data-side="left"]:not([data-hero]) .nd-hero-img{inset:0 38% 0 0}
  html[data-side="left"]:not([data-hero]) .nd-hero::before{background:linear-gradient(270deg,var(--nd-bg) 36%,rgba(var(--nd-bg-rgb),.8) 50%,rgba(var(--nd-bg-rgb),0) 72%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.85),transparent 40%)}
  html[data-side="left"]:not([data-hero]) .nd-hero .wrap>*{margin-left:auto;max-width:min(560px,48%)}
}
@media (min-width:769px){html[data-side="left"]:not([data-hero]) .nd-hero::before{background:linear-gradient(270deg,var(--nd-bg) 30%,rgba(var(--nd-bg-rgb),.75) 40%,rgba(var(--nd-bg-rgb),0) 52%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.8),transparent 30%)}}
@media (min-width:769px){html[data-side="left"]:not([data-hero]) .nd-hero-img{inset:0 42% 0 0;background-position:30% 18%}html[data-side="left"]:not([data-hero]) .nd-hero::before{background:linear-gradient(270deg,var(--nd-bg) 40%,rgba(var(--nd-bg-rgb),.7) 46%,rgba(var(--nd-bg-rgb),0) 51%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.8),transparent 28%)}html[data-side="left"]:not([data-hero]) .nd-hero .wrap>*{max-width:min(540px,44%)}}
@media (min-width:769px){html[data-side="left"]:not([data-hero]) .nd-hero h1{font-size:clamp(2rem,3.6vw,3.6rem);max-width:none;white-space:nowrap}}
@media (min-width:769px){html[data-side="left"]:not([data-hero]) .nd-hero-img{inset:0 30% 0 4%;background-position:50% 15%}html[data-side="left"]:not([data-hero]) .nd-hero::before{background:linear-gradient(270deg,var(--nd-bg) 34%,rgba(var(--nd-bg-rgb),0) 46%),linear-gradient(90deg,var(--nd-bg) 3%,rgba(var(--nd-bg-rgb),0) 12%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.8),transparent 26%)}}
@media (min-width:769px){html[data-side="left"]:not([data-hero]) .nd-hero-img{inset:0 36% 0 2%;background-position:42% 15%}html[data-side="left"]:not([data-hero]) .nd-hero::before{background:linear-gradient(270deg,var(--nd-bg) 40%,rgba(var(--nd-bg-rgb),.88) 46%,rgba(var(--nd-bg-rgb),0) 54%),linear-gradient(90deg,var(--nd-bg) 2%,rgba(var(--nd-bg-rgb),0) 9%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.75),transparent 24%)}}

/* 直式個人照放在置中封面（C）：人物完整呈現，兩側接上跟照片底色一樣的漸層（--fit-bg），照片邊緣淡出 */
html[data-hero="center"] .nd-hero-img.nd-fit{overflow:hidden;height:min(80vh,720px);background:var(--fit-bg,var(--nd-paper))}
.nd-hero-img.nd-fit{--hw:min(37.3vh,336px)}
.nd-hero-img.nd-fit::after{content:"";position:absolute;inset:0;background:var(--nd-photo) center 6%/auto 140% no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent calc(50% - var(--hw) + 4px),#000 calc(50% - var(--hw) + 120px),#000 calc(50% + var(--hw) - 120px),transparent calc(50% + var(--hw) - 4px));mask-image:linear-gradient(90deg,transparent calc(50% - var(--hw) + 4px),#000 calc(50% - var(--hw) + 120px),#000 calc(50% + var(--hw) - 120px),transparent calc(50% + var(--hw) - 4px))}
@media (max-width:760px){html[data-hero="center"] .nd-hero-img.nd-fit{height:500px}.nd-hero-img.nd-fit::after{background-size:cover;background-position:center 4%;-webkit-mask-image:none;mask-image:none}}
/* 首頁數字只剩 3 格（例如沒有出租物件）：手機也排一排，不要上二下一 */
@media (max-width:900px){.nd-stats .wrap.n3{grid-template-columns:repeat(3,1fr)}.nd-stats .wrap.n3 .nd-stat{border-top:0;padding:22px 4px}.nd-stats .wrap.n3 .nd-stat:nth-child(3){border-left:1px solid var(--line)}.nd-stats .wrap.n3 .nd-stat span{letter-spacing:.04em;font-size:.76rem}}
/* 手機版另外對焦（agent.json 的 luxe.photoPosM）：電腦和手機裁切位置不同時用 */
@media (max-width:900px){.nd-hero-img[style*="--pos-m"]{background-position:var(--pos-m)!important}}
/* 首頁最下面的 Q 版：整張插畫（不是去背人物）時放大顯示（luxe.mascotWide） */
.nd-mascot.wide{grid-template-columns:minmax(0,460px) 1fr;max-width:1040px}
.nd-mascot.wide img{border-radius:14px;filter:none;box-shadow:0 14px 34px rgba(0,0,0,.14)}
@media (max-width:700px){.nd-mascot.wide{grid-template-columns:1fr}.nd-mascot.wide img{max-width:100%}}
/* 鋼筆字名字加淡黑底（luxe.names 裡 "bg": true）：背景太亮或太花時讓字清楚 */
.nd-name.bg{background:rgba(0,0,0,.38);padding:.18em .5em .12em;border-radius:6px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.nd-name.bg::after{display:none}
/* 鋼筆字名字加淡白底（"bg": "light"）：背景暗或花時用 */
.nd-name.bgl{background:none;padding:.1em .45em .16em;text-shadow:none}
.nd-name.bgl::before{content:"";position:absolute;inset:-.02em -1.1em -.06em -1.1em;z-index:-1;transform:skewX(-10deg);border-radius:46% 38% 52% 42%/58% 46% 54% 44%;
  background:linear-gradient(100deg,rgba(255,251,248,0) 0%,rgba(255,251,248,.35) 14%,rgba(255,251,248,.85) 32%,rgba(255,252,250,.94) 52%,rgba(255,251,248,.82) 70%,rgba(255,251,248,.3) 87%,rgba(255,251,248,0) 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 24%,#000 76%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 24%,#000 76%,transparent 100%)}
@media (max-width:900px){.nd-name.bgl::before{background:linear-gradient(100deg,rgba(255,251,248,0) 0%,rgba(255,251,248,.12) 16%,rgba(255,251,248,.6) 34%,rgba(255,252,250,.86) 52%,rgba(255,251,248,.55) 68%,rgba(255,251,248,.1) 85%,rgba(255,251,248,0) 100%)}}
.nd-name.bgl::after{display:none}
/* 首頁大照片的米白漸層調淡（agent.json luxe.fade: "light"）：照片比較清楚、不霧 */
html[data-fade="light"] .nd-hero::before{background:linear-gradient(90deg,var(--nd-bg) 39%,rgba(var(--nd-bg-rgb),.6) 46%,rgba(var(--nd-bg-rgb),0) 58%),linear-gradient(0deg,rgba(var(--nd-bg-rgb),.55),transparent 18%)}
@media (max-width:900px){html[data-fade="light"] .nd-hero::before{background:linear-gradient(0deg,var(--nd-bg) 45%,rgba(var(--nd-bg-rgb),.75) 55%,rgba(var(--nd-bg-rgb),0) 70%)}}

/* 8 淺玫瑰粉（2026-10-30 陳欣怡）：版面沿用米白，只換顏色 */
html[data-skin][data-pal="ivory"][data-tone="rose"]{--nd-bg:#f8ece8;--nd-bg-rgb:248,236,232;--nd-paper:#fffaf8;--nd-on:#3a2a2a;--nd-mute:#8a7470;
  --ink:#f8ece8;--ink-2:#f2e1dc;--ink-3:#eacfc8;--ink-rgb:248,236,232;--gold:#b7776a;--gold-2:#9c5f53;--gold-dk:#8e5446;--acc-rgb:183,119,106;--acc2-rgb:156,95,83;
  --cream:#fffaf8;--paper:#fffdfc;--line:#eed8d1;--text:#3a2a2a;--muted:#8a7470;--on-dark:#3a2a2a;--on-dark-mute:#8a7470;--on-rgb:0,0,0;
  --strong:#3a2a2a;--btn-ink:#ffffff;--tint:#f6e2dc;--bar:#3a2a2a;--bar-text:#f8ece8;--bar-mute:#c4a9a2}

/* 關於我：直式人像、靠文字側淡化、入場動畫（luxe.aboutPortrait，2026-10-30 陳欣怡先試） */
html[data-about="tall"] .portrait{aspect-ratio:auto;height:min(80vh,700px);background:none!important;overflow:hidden;box-shadow:none}
html[data-about="tall"] .portrait::after{display:none}
html[data-about="tall"] .portrait img{width:100%;height:100%;object-fit:cover;object-position:var(--about-pos,center 14%);padding:0;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 var(--about-fade,67%),rgba(0,0,0,.5) calc(var(--about-fade,67%) + (100% - var(--about-fade,67%)) / 2),transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 var(--about-fade,67%),rgba(0,0,0,.5) calc(var(--about-fade,67%) + (100% - var(--about-fade,67%)) / 2),transparent 100%);
  animation:abIn 1.6s ease .15s both}
html[data-about="tall"] .portrait .tag{background:rgba(var(--ink-rgb),.86);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:abTag .9s ease .9s both}
html[data-about="tall"] .portrait.wide .tag{position:absolute;left:0;bottom:0;display:block}
html[data-about="tall"] .portrait.wide img{height:100%;display:block}
@keyframes abIn{from{opacity:0}to{opacity:1}}
@keyframes abTag{from{opacity:0}to{opacity:1}}
@media (max-width:900px){html[data-about="tall"] .portrait{height:520px;max-width:none}
 html[data-about="tall"] .portrait img{object-position:var(--about-pos-m,var(--about-pos,center 14%))}
 html[data-about="tall"] .portrait img{-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 22%);mask-image:linear-gradient(0deg,transparent 0%,#000 22%)}}
@media (prefers-reduced-motion:reduce){html[data-about="tall"] .portrait img,html[data-about="tall"] .portrait .tag{animation:none}}

/* 關於我：照片放右邊、文字在左，照片往左（文字側）淡化（luxe.aboutSide = right） */
@media (min-width:981px){
 html[data-about-side="right"] .about-grid{grid-template-columns:1.2fr .8fr}
 html[data-about-side="right"] .about-grid>.portrait{order:2}
 html[data-about-side="right"][data-about="tall"] .portrait img{-webkit-mask-image:linear-gradient(270deg,#000 0%,#000 var(--about-fade,67%),rgba(0,0,0,.5) calc(var(--about-fade,67%) + (100% - var(--about-fade,67%)) / 2),transparent 100%);mask-image:linear-gradient(270deg,#000 0%,#000 var(--about-fade,67%),rgba(0,0,0,.5) calc(var(--about-fade,67%) + (100% - var(--about-fade,67%)) / 2),transparent 100%)}
 html[data-about-side="right"][data-about="tall"] .portrait .tag,html[data-about-side="right"][data-about="tall"] .portrait.wide .tag{left:auto;right:0;text-align:right}
}

/* 關於我直式照片：照片欄放寬，淡化區落在背景上（2026-10-30） */
@media (min-width:981px){
 html[data-about="tall"] .about-grid{grid-template-columns:1.05fr 1fr}
 html[data-about="tall"][data-about-side="right"] .about-grid{grid-template-columns:1fr 1.05fr}
}

/* 關於我標題手機換行平均，避免最後一個字單獨一行 */
.about-grid h2,.about-grid h3{text-wrap:balance}
.about-grid h2{word-break:keep-all;overflow-wrap:anywhere}
/* 鋼筆字淡黑底改成刷筆感：左右兩側淡出（10/30 國慶） */
.nd-name.bg{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:.18em .5em .12em}
.nd-name.bg::before{content:"";position:absolute;inset:-.06em -1.2em -.08em -1.2em;z-index:-1;transform:skewX(-10deg);border-radius:46% 38% 52% 42%/58% 46% 54% 44%;
  background:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.25) 13%,rgba(0,0,0,.58) 30%,rgba(0,0,0,.66) 52%,rgba(0,0,0,.56) 72%,rgba(0,0,0,.22) 88%,rgba(0,0,0,0) 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 78%,transparent 100%)}
/* 鋼筆字在亮背景上：陰影改淡白光（luxe.names 的 "glow": "light"） */
.nd-name.gl{text-shadow:0 1px 10px rgba(255,255,255,.75),0 0 2px rgba(255,255,255,.6)}

/* 2026-11-10 整張海報當首頁大圖（build.py heroPoster）：照海報比例完整顯示，不裁切 */
.nd-hero .nd-hero-img.nd-whole{position:relative!important;inset:auto!important;height:auto!important;width:100%;max-width:1400px;margin:0 auto;aspect-ratio:3/2;background-size:100% 100%!important;background-position:center!important;background-repeat:no-repeat!important;box-shadow:none}
