/* ============================================
   專案頁共用樣式 — 由各頁內嵌 CSS 整併而來
   (index.html 不使用本檔;各頁僅保留頁面特有樣式)
   ============================================ */

/* ── 專案頁版頭 ── */
.proj-hero{padding:160px 0 70px;position:relative;}
.back-link{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--ink-faint);text-decoration:none;display:inline-flex;align-items:center;gap:9px;margin-bottom:40px;transition:gap .3s,color .3s;}
.back-link:hover{color:var(--accent);gap:14px;}
.proj-kicker{font-family:var(--mono);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.proj-kicker::before{content:"";width:40px;height:1px;background:var(--accent);}
.proj-kicker .badge{background:var(--accent);color:var(--paper);padding:3px 10px;border-radius:4px;font-size:.62rem;letter-spacing:.1em;}
.proj-title{font-family:var(--display);font-weight:300;font-size:clamp(3rem,9vw,7rem);line-height:.95;letter-spacing:-.01em;margin-bottom:10px;}
.proj-title em{font-style:italic;color:var(--accent);}
.proj-zh{font-family:var(--serif);font-size:clamp(1rem,2.4vw,1.5rem);color:var(--ink-faint);font-weight:500;margin-bottom:28px;}
.proj-lead{font-family:var(--serif);font-weight:300;font-size:clamp(1.2rem,2.5vw,1.7rem);line-height:1.65;color:var(--ink-soft);font-style:italic;padding-left:24px;border-left:2px solid var(--accent);}
.proj-meta-bar{display:flex;flex-wrap:wrap;gap:30px 56px;margin-top:48px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.pm-item .pm-k{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;}
.pm-item .pm-v{font-size:.98rem;color:var(--ink);}

/* ── 區段與內文 ── */
.proj-section{padding:60px 0;}
.proj-section.tight{padding:40px 0;}
.sec-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:26px;}
.sec-h{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.25;margin-bottom:30px;letter-spacing:.01em;}
.prose p{font-size:1.05rem;color:var(--ink-soft);line-height:1.9;margin-bottom:20px;}
.prose strong{color:var(--ink);font-weight:500;}
.prose code,.tech-table code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);padding:2px 7px;border-radius:4px;color:var(--accent-deep);}
.prose .em-q{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--accent);line-height:1.6;margin:34px 0;display:block;}

/* ── 畫面截圖 ── */
.shot{margin:70px 0;border-radius:12px;overflow:hidden;border:1px solid var(--line-soft);background:linear-gradient(135deg,var(--paper-3),var(--paper-2));aspect-ratio:2560/1368;display:flex;align-items:center;justify-content:center;position:relative;}
.shot.no-img{min-height:380px;}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;}

/* ── 亮點編號 ── */
.highlights{display:flex;flex-direction:column;gap:2px;}
.hl{padding:30px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:54px 1fr;gap:20px;}
.hl:last-child{border-bottom:1px solid var(--line);}
.hl .hn{font-family:var(--display);font-style:italic;font-size:1.8rem;color:var(--accent);line-height:1;}
.hl h4{font-family:var(--serif);font-weight:700;font-size:1.2rem;margin-bottom:12px;}
.hl p{font-size:.99rem;color:var(--ink-soft);line-height:1.85;}

/* ── 原則卡 ── */
.principle{padding:28px;background:var(--paper-2);border-radius:10px;border:1px solid var(--line-soft);}
.principle h4{font-family:var(--serif);font-weight:700;font-size:1.1rem;margin-bottom:12px;line-height:1.4;}
.principle p{font-size:.93rem;color:var(--ink-soft);line-height:1.75;}

/* ── 步驟 ── */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.stp{background:var(--paper);padding:34px 28px;}
.stp .sn{font-family:var(--display);font-style:italic;font-size:2rem;color:var(--accent);line-height:1;margin-bottom:16px;}
.stp h4{font-family:var(--serif);font-weight:700;font-size:1.16rem;margin-bottom:10px;}
.stp p{font-size:.93rem;color:var(--ink-soft);line-height:1.7;}

/* ── 說明框 ── */
.callout{margin-top:34px;padding:26px 28px;border-radius:10px;background:var(--paper-2);border:1px solid var(--line-soft);border-left:3px solid var(--accent);}
.callout h4{font-family:var(--sans);font-weight:500;font-size:1rem;margin-bottom:8px;display:flex;align-items:center;gap:9px;}
.callout p{font-size:.94rem;color:var(--ink-soft);line-height:1.8;}

/* ── 技術表 ── */
.tech-table{width:100%;border-collapse:collapse;}
.tech-table tr{border-bottom:1px solid var(--line);}
.tech-table td{padding:18px 0;vertical-align:top;}
.tech-table td:first-child{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);width:130px;padding-right:30px;}
.tech-table td:last-child{font-size:1rem;color:var(--ink);line-height:1.7;}

/* ── 下載區(深色) ── */
.download-zone{margin:40px 0 0;padding:52px 48px;border-radius:14px;background:linear-gradient(135deg,var(--ink),#2b271f);color:var(--paper);position:relative;overflow:hidden;}
.download-zone::after{content:"";position:absolute;right:-60px;bottom:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(191,63,38,.4),transparent 70%);}
.dz-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,231,.6);margin-bottom:16px;}
.dz-title{font-family:var(--serif);font-weight:500;font-size:1.7rem;margin-bottom:10px;}
.dz-desc{color:rgba(246,241,231,.75);font-size:.98rem;line-height:1.75;max-width:560px;margin-bottom:30px;}
.dz-btns{display:flex;flex-wrap:wrap;gap:14px;position:relative;z-index:1;}
.dz-btn{display:inline-flex;align-items:center;gap:12px;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:.82rem;letter-spacing:.05em;text-decoration:none;padding:16px 28px;border-radius:7px;transition:background .3s,gap .3s;}
.dz-btn:hover{background:var(--accent-deep);gap:18px;}
.dz-btn .sz{opacity:.7;font-size:.72rem;}
.dz-btn.ghost{background:rgba(246,241,231,.1);}
.dz-btn.ghost:hover{background:rgba(246,241,231,.18);}
.dz-btn.disabled{background:rgba(246,241,231,.12);cursor:not-allowed;color:rgba(246,241,231,.5);}
.dz-btn.disabled:hover{gap:12px;background:rgba(246,241,231,.12);}
.dz-note{margin-top:24px;font-size:.82rem;color:rgba(246,241,231,.62);line-height:1.75;display:flex;gap:10px;align-items:flex-start;position:relative;z-index:1;}
.dz-note .ic{color:var(--accent);flex-shrink:0;}
.dz-note code{font-family:var(--mono);background:rgba(246,241,231,.12);color:var(--paper);padding:1px 6px;border-radius:4px;font-size:.92em;}

/* ── 連結區(深色) ── */
.link-zone{margin:40px 0 0;padding:52px 48px;border-radius:14px;background:linear-gradient(135deg,var(--ink),#2b271f);color:var(--paper);position:relative;overflow:hidden;}
.link-zone::after{content:"";position:absolute;right:-60px;bottom:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(191,63,38,.4),transparent 70%);}
.lz-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,231,.6);margin-bottom:16px;}
.lz-title{font-family:var(--serif);font-weight:500;font-size:1.7rem;margin-bottom:10px;}
.lz-desc{color:rgba(246,241,231,.75);font-size:.98rem;line-height:1.75;max-width:600px;margin-bottom:30px;}
.lz-btns{display:flex;flex-wrap:wrap;gap:14px;position:relative;z-index:1;}
.lz-btn{display:inline-flex;align-items:center;gap:12px;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:.82rem;letter-spacing:.05em;text-decoration:none;padding:16px 28px;border-radius:7px;transition:background .3s,gap .3s;}
.lz-btn:hover{background:var(--accent-deep);gap:18px;}
.lz-btn.ghost{background:rgba(246,241,231,.1);}
.lz-btn.ghost:hover{background:rgba(246,241,231,.18);}

/* ── 線上遊玩 ── */
.play-cta{margin-top:44px;display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px;}
.play-btn{display:inline-flex;align-items:center;gap:14px;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:.92rem;letter-spacing:.06em;text-decoration:none;padding:20px 38px;border-radius:8px;transition:background .3s,gap .3s,transform .3s;box-shadow:0 16px 40px -16px rgba(191,63,38,.7);}
.play-btn:hover{background:var(--accent-deep);gap:20px;transform:translateY(-2px);}
.play-btn .pl{font-size:1.1rem;}
.play-hint{font-family:var(--mono);font-size:.74rem;color:var(--ink-faint);letter-spacing:.04em;line-height:1.7;max-width:300px;}
.play-zone{margin:40px 0 0;padding:52px 48px;border-radius:14px;background:linear-gradient(135deg,var(--ink),#2b271f);color:var(--paper);position:relative;overflow:hidden;text-align:center;}
.play-zone::after{content:"";position:absolute;right:-60px;bottom:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(191,63,38,.4),transparent 70%);}
.play-zone .pz-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,231,.6);margin-bottom:16px;}
.play-zone h3{font-family:var(--serif);font-weight:500;font-size:1.8rem;margin-bottom:14px;}
.play-zone p{color:rgba(246,241,231,.75);font-size:.98rem;line-height:1.75;max-width:520px;margin:0 auto 30px;}
.play-zone .play-btn{position:relative;z-index:1;}

/* ── RWD ── */
@media(max-width:860px){
  .hl{grid-template-columns:40px 1fr;gap:14px;}
  .download-zone{padding:38px 28px;}
  .link-zone{padding:38px 28px;}
  .play-zone,.play-cta{text-align:left;}
  .play-zone{padding:38px 28px;}
  .steps{grid-template-columns:1fr;}
  .principles{grid-template-columns:1fr;}
  .feat-grid{grid-template-columns:1fr;}
}
