*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --warm:#faf8f5;
  --cream:#f2efe9;
  --paper:#f7f3ec;
  --ink:#17150f;
  --ink2:#38352c;
  --ink3:#78746a;
  --ink4:#b2ada4;
  --gold:#9c8448;
  --goldb:#bba46a;
  --goldf:#ede3ce;
  --rule:rgba(23,21,15,.09);
  --rule-strong:rgba(23,21,15,.16);
  --shadow:0 18px 60px rgba(23,21,15,.08);
  --serif:'Cormorant Garamond',serif;
  --sans:'Noto Sans TC',sans-serif;
}
html{scroll-behavior:smooth}
body{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 14% 12%,rgba(234,216,185,.62),transparent 10%),
    radial-gradient(circle at 84% 16%,rgba(207,186,150,.26),transparent 18%),
    radial-gradient(circle at 72% 68%,rgba(220,202,171,.2),transparent 22%),
    radial-gradient(circle at 64% 96%,rgba(207,186,150,.26),transparent 18%),
    radial-gradient(circle at 24% 26%,rgba(207,186,150,.26),transparent 18%),
    radial-gradient(circle at 32% 68%,rgba(220,202,171,.2),transparent 22%);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  min-height:100vh;
}
body::before,
body::after{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
}
body::before{
  background:
    radial-gradient(circle at 20% 18%,rgba(255,248,235,.52),transparent 18%),
    radial-gradient(circle at 80% 22%,rgba(255,247,231,.36),transparent 16%),
    radial-gradient(circle at 66% 78%,rgba(242,225,193,.22),transparent 20%);
  filter:blur(18px);
  opacity:.95;
}
body::after{
  background:
    linear-gradient(115deg,transparent 18%,rgba(255,252,246,.34) 30%,transparent 42%),
    radial-gradient(42% 14% at 10% 24%,rgba(255,255,255,.18),transparent 72%),
    radial-gradient(34% 12% at 88% 16%,rgba(255,250,240,.16),transparent 72%),
    radial-gradient(30% 10% at 76% 72%,rgba(236,220,190,.16),transparent 72%);
  mix-blend-mode:screen;
  opacity:.78;
}
a{color:inherit}
button,input{font:inherit}
img{max-width:100%;display:block}

nav.site-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.4rem 6vw;
  border-bottom:.5px solid var(--rule);
  position:sticky;
  top:0;
  background:linear-gradient(180deg,rgba(239,231,217,.94),rgba(234,224,208,.9));
  backdrop-filter:blur(14px);
  z-index:100;
}
.nav-logo{
  display:inline-flex;
  align-items:center;
  font-family:var(--serif);
  font-size:1.15rem;
  font-weight:400;
  letter-spacing:.07em;
  color:var(--ink);
  text-decoration:none;
}
.nav-logo-img{
  display:block;
  height:42px;
  width:auto;
}
.nav-logo span{
  display:block;
  font-size:.56rem;
  font-family:var(--sans);
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--ink4);
  margin-top:2px;
}
.nav-menu{
  display:flex;
  align-items:center;
  gap:.9rem;
  flex-wrap:wrap;
}
.nav-link{
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink3);
  transition:color .25s;
}
.nav-link:hover{color:var(--ink)}
.nav-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.nav-pill,.nav-outline,.nav-chip{
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  transition:all .25s;
}
.nav-pill{
  color:var(--ink);
  border:.5px solid var(--rule);
  padding:.56rem 1.2rem;
}
.nav-pill:hover{background:var(--ink);color:var(--warm)}
.nav-outline{
  color:var(--ink3);
  border:.5px solid var(--rule);
  padding:.5rem 1rem;
  background:rgba(255,255,255,.45);
}
.nav-outline:hover{border-color:var(--ink3);color:var(--ink)}
.nav-chip{
  padding:.4rem .9rem;
  border:.5px solid var(--rule);
  background:rgba(255,255,255,.55);
  color:var(--ink4);
}
.nav-chip.active{
  background:var(--ink);
  color:var(--warm);
  border-color:var(--ink);
}

@media(max-width:980px){
  nav.site-nav{align-items:flex-start}
  .nav-actions{justify-content:flex-end}
  .nav-menu{width:100%;order:3}
}

.section-shell{padding:0 6vw}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem}
.eyebrow{
  font-size:.58rem;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:.75rem;
}
.eyebrow::before{
  content:'';
  width:2rem;
  height:.5px;
  background:var(--gold);
  display:block;
  flex-shrink:0;
}
.display-title{
  font-family:var(--serif);
  font-size:clamp(2.4rem,4.6vw,5rem);
  font-weight:300;
  line-height:1.03;
}
.display-title em{font-style:italic;color:var(--gold)}
.section-title{
  font-family:var(--serif);
  font-size:clamp(2rem,3vw,3.2rem);
  font-weight:300;
  line-height:1.08;
}
.section-title em{font-style:italic;color:var(--gold)}
.lede,.section-copy{
  font-size:.9rem;
  color:var(--ink3);
  line-height:2;
  max-width:46ch;
}

.btn-primary,.btn-secondary,.btn-quiet{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  cursor:pointer;
  text-decoration:none;
  transition:all .25s;
}
.btn-primary{
  background:var(--ink);
  color:var(--warm);
  border:none;
  padding:1rem 2rem;
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.btn-primary:hover{background:var(--gold)}
.btn-secondary{
  border:.5px solid var(--rule-strong);
  color:var(--ink);
  background:rgba(255,255,255,.5);
  padding:.95rem 1.6rem;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.btn-secondary:hover{border-color:var(--ink3)}
.btn-quiet{
  border:none;
  background:none;
  color:var(--ink3);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.btn-quiet:hover{color:var(--gold)}

.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s ease,transform .7s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

footer.site-foot{
  padding:2.6rem 6vw 3rem;
  border-top:.5px solid var(--rule);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.foot-copy{font-size:.65rem;letter-spacing:.12em;color:var(--ink4)}

/* ── LINE floating button ── */
.line-fab{
  position:fixed;
  bottom:1.6rem;
  right:1.6rem;
  width:3.4rem;
  height:3.4rem;
  border-radius:50%;
  background:#06C755;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 20px rgba(6,199,85,.38);
  z-index:200;
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease;
}
.line-fab:hover{
  transform:translateY(-3px) scale(1.05);
  box-shadow:0 8px 30px rgba(6,199,85,.55);
}
.line-fab svg{width:1.85rem;height:1.85rem;fill:#fff}

@media(max-width:900px){
  nav.site-nav{padding:1.2rem 6vw;align-items:flex-start}
  .nav-actions{justify-content:flex-end}
  .section-head{flex-direction:column;align-items:flex-start}
  footer.site-foot{flex-direction:column;align-items:flex-start}
}

@media(max-width:640px){
  .nav-actions{width:100%}
  .nav-pill,.nav-outline,.nav-chip{font-size:.62rem}
}
