
:root{
  --bg:#faf7f0; --paper:#fff; --paper-2:#f3ede2; --ink:#2a2723; --muted:#6b6459; --border:#e4dccc;
  --primary:#2f5d3a; --primary-soft:#e8f0e6; --earth:#b45318; --earth-soft:#f6e7dc; --plant:#2f5d3a;
  --shadow: 0 1px 0 rgba(60,48,30,.04), 0 6px 24px rgba(60,48,30,.08);
  --font-display:'LXGW WenKai TC','Noto Serif TC',Georgia,serif;
  --font-body:'Noto Sans TC',ui-sans-serif,system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family: var(--font-body); background:var(--bg); color:var(--ink); font-size:16px}
a{color:var(--primary);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 16px}
.header{position:sticky;top:0;background:#faf7f0e6;border-bottom:1px solid var(--border);backdrop-filter:saturate(120%) blur(8px);z-index:40}
.header .inner{display:flex;align-items:center;gap:12px;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.3px;color:var(--primary)}
.brand img{width:28px;height:28px;border-radius:8px;border:1px solid var(--border)}
nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
nav a{color:var(--ink);padding:8px 12px;border-radius:10px;font-weight:600}
nav a:hover, nav a.active{background:var(--primary-soft)}
.hero{position:relative;padding:54px 0}
.hero .banner{position:absolute;inset:0;background:linear-gradient(160deg,#f3ede2,#faf7f0 55%,#f7efe2); z-index:-1}
.hero h1{font-size:40px;line-height:1.15;margin:0 0 10px;color:var(--primary)}
.hero p{color:var(--muted);margin:6px 0 18px}
.button{display:inline-block;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px}
.button.earth{background:var(--earth)}
.section{padding:36px 0}
.card{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.grid{display:grid;gap:14px}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}
h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em}
h2{font-size:26px;margin:0 0 12px}
.small{font-size:12px;color:var(--muted)}
footer{padding:28px 0;border-top:1px solid var(--border);color:var(--muted);text-align:center}
/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery figure{margin:0;background:var(--paper);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.gallery img{display:block;width:100%;height:210px;object-fit:cover;cursor:pointer}
.gallery figcaption{padding:8px 10px;font-size:14px;color:var(--muted)}
@media (max-width:960px){.gallery{grid-template-columns:1fr}}
/* Lightbox */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:60}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:88vh;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.lb .close{position:absolute;top:12px;right:12px;background:#111827;color:#fff;border:0;border-radius:10px;padding:10px 12px;cursor:pointer}
/* Game - memory match */
.board{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:12px}
.card2{position:relative;height:110px;perspective:800px;cursor:pointer}
.card2-inner{position:absolute;inset:0;transition:transform .35s;transform-style:preserve-3d}
.card2.flipped .card2-inner{transform:rotateY(180deg)}
.face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow);font-weight:800}
.front{background:#e8f0e6;color:#2f5d3a;backface-visibility:hidden}
.back{background:#fff;transform:rotateY(180deg);backface-visibility:hidden}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border:1px solid var(--border);padding:8px 10px;text-align:left}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.badge{background:#f3ede2;border:1px solid var(--border);padding:6px 10px;border-radius:999px;font-size:12px;color:var(--muted)}
.icons{display:flex;gap:12px;align-items:center}
.icon{width:40px;height:40px;border-radius:10px;background:#e8f0e6;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);font-size:20px}
.mapwrap{position:relative;padding-bottom:56%;height:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}
.mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}


/* --- Home (added) --- */
.hero2{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border);background:#fff}
.hero2 img{width:100%;height:340px;object-fit:cover;display:block;filter:saturate(110%)}
.hero2 .overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.05),transparent);}
.hero2 .text{position:absolute;left:24px;top:24px;max-width:520px;color:#fff}
.hero2 .text p{color:#e5e7eb}
.btn{display:inline-block;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px}
.btn.earth{background:var(--earth)}
.hero-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:6px}
.news .item{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.quote{background:linear-gradient(180deg,#fff,#f7efe2);border:1px solid var(--border);border-radius:16px;padding:26px;text-align:center;box-shadow:var(--shadow)}
.cta{background:linear-gradient(180deg,#eef3ea,#fff);border:1px solid var(--border);border-radius:16px;padding:26px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:var(--shadow)}


/* --- Mobile optimizations (<=640px) --- */
@media (max-width: 640px){
  .container{padding:0 12px}
  .hero2 img{height:220px}
  .hero2 .text{left:16px; top:16px; right:16px; max-width:none; text-align:left}
  .hero-links{justify-content:flex-start; gap:8px}
  .grid.cols-3{grid-template-columns:1fr}
  .grid.cols-2{grid-template-columns:1fr}
  .news{grid-template-columns:1fr}
  .cta{flex-direction:column; align-items:flex-start}
  nav{gap:4px}
  nav a{padding:6px 10px}
}
/* Bigger, responsive cards & icons */
:root{
  --card-h: clamp(110px, 18vw, 170px);   /* 卡片高度：手機小→桌機大 */
  --icon-s: calc(var(--card-h) * 0.58);  /* 圖示大小佔卡片高度 58% */
}

.board{ gap: 14px; }                     /* 你的原本就有，可保留 */


/* 重點：把圖放大（<img> 或 <svg> 都吃得到）*/
.face img,
.face svg{
  width: var(--icon-s);
  height: var(--icon-s);
  object-fit: contain;
  display: block;
}

/* 如果有用 emoji 當圖示，也一起放大 */
.face{ font-size: var(--icon-s); line-height: 1; }
.card2 {
  height: clamp(70px, 12vw, 110px); /* 小螢幕70px, 大螢幕最大110px */
}

.face img,
.face svg {
  width: 70%;
  height: 70%;
}
/* --- Auth pages patch --- */
label{display:block;margin:10px 0 6px;font-weight:700;color:var(--ink)}
input,select{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  outline:none;
  background:#fff;
}
input:focus,select:focus{border-color:#9dbb9f; box-shadow:0 0 0 3px rgba(47,93,58,.15)}

.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.btn.ghost{
  background:#fff;
  color:var(--ink);
  border:1px solid var(--border);
}
.btn.ghost:hover{background:var(--primary-soft)}

.alert{
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  padding:10px 12px;
  border-radius:12px;
  margin:10px 0;
}
.ok{
  background:#ecfdf5;
  border:1px solid #a7f3d0;
  color:#065f46;
  padding:10px 12px;
  border-radius:12px;
  margin:10px 0;
}




/* --- 主視覺影片（桌機播影片，手機／省電／減少動態退回靜態照） --- */
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media .hero-still,
.hero-media .hero-video{width:100%;height:100%;object-fit:cover;display:block}
.hero-media .hero-video{display:none}
.hero-media.video-on .hero-video{display:block}
.hero-media.video-on .hero-still{display:none}
.hero2{position:relative}
.hero2 .hero-media{position:relative;height:340px}
@media (max-width:640px){ .hero2 .hero-media{height:220px} }
@media (prefers-reduced-motion: reduce){
  .hero-media.video-on .hero-video{display:none}
  .hero-media.video-on .hero-still{display:block}
}
