/* 店面怎麼選 — tokens from the dealt sheet: split stage, Young Serif + Noto Serif TC, "Three stones". */
:root{
  --bg:#eeecea; --surface:#e4e1dd; --ink:#333231; --muted:#5a5753; --accent:#5c6b54; --accent-ink:#ffffff;
  --field-1:#cdc3b6; --field-1-ink:#333231; --dark:#333231; --dark-ink:#eeecea;
  --font-display:"Young Serif","Noto Serif TC",serif; --font-text:"Noto Serif TC","Source Serif 4",serif;
  --step-small:0.9375rem;
  --step-body:clamp(1.125rem,1.05rem + 0.3vw,1.3125rem);
  --step-lead:clamp(1.25rem,1.1rem + 0.7vw,1.625rem);
  --step-head:clamp(2rem,1.3rem + 2.4vw,2.75rem);
  --step-display:clamp(2.5rem,1.6rem + 3.2vw,3.75rem);
  --pad:clamp(1.25rem,4vw,4.5rem); --section:clamp(6rem,12vw,11rem); --radius:0;
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-soft:cubic-bezier(.33,1,.68,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-text);font-size:var(--step-body);line-height:1.6;font-feature-settings:"tnum"}
img{display:block;max-width:100%;height:auto}
a{color:var(--ink);text-underline-offset:.18em}
h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:var(--step-display)}
h2{font-size:var(--step-head)}
h3{font-size:var(--step-lead)}
p{margin:0}
p+p{margin-top:.9em}
strong{font-weight:600}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.button{display:inline-block;background:var(--accent);color:var(--accent-ink);text-decoration:none;padding:.85em 1.5em;font-size:var(--step-body);border:0;border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:transform 140ms var(--ease-out),background 180ms}
.button:hover{background:#4d5a46}
.button:active{transform:translateY(1px) scale(.99)}
.button.alt{background:var(--ink);color:var(--dark-ink)}
.textlink{margin-left:1.2em}
.small{font-size:var(--step-small);color:var(--muted);margin-top:1em}
.note{background:var(--surface);padding:1em 1.2em;margin:1em 0}

/* nav */
.nav{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;padding:1.2rem var(--pad);gap:.6rem 1.4rem}
.nav .wordmark{font-family:var(--font-display);font-size:1.5rem;text-decoration:none;white-space:nowrap}
.nav .links{display:flex;gap:1.2rem;font-size:var(--step-small);white-space:nowrap;flex-wrap:wrap}
.nav .links a{text-decoration:none}
.nav .links a:hover{text-decoration:underline}

/* split stage */
.stage{display:grid;grid-template-columns:1fr 1fr;min-height:100svh}
.fixed{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--field-1);grid-column:2;grid-row:1;max-width:100%}
.scroll{grid-column:1;grid-row:1}
.fixed .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1600ms var(--ease-soft),transform 9000ms var(--ease-soft);transform:scale(1.04)}
.fixed .photo.is-on{opacity:1;transform:scale(1)}
.fixed .bar{position:absolute;left:0;right:0;bottom:0;height:56px;background:var(--bg);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;font-size:var(--step-small);color:var(--ink)}
.scroll{background:var(--bg);min-width:0}
.scroll>*{padding-left:var(--pad);padding-right:var(--pad)}
.hero{min-height:calc(100svh - 5rem);display:flex;flex-direction:column;justify-content:center;gap:2rem;padding-bottom:12svh}
.hero h1{max-width:18ch}
.hero .support{max-width:40ch;font-size:var(--step-lead);line-height:1.5}
.section{padding-top:var(--section);padding-bottom:0}
.section h2{max-width:20ch;margin-bottom:1.2rem}
.section>p{max-width:46ch}

/* finder + tabs (the live thing) */
.finder{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin:2rem 0 1.2rem;max-width:46ch}
.finder label{grid-column:1/-1;font-size:var(--step-small);color:var(--muted)}
.finder #addr{grid-column:1/-1}.finder label[for=ask-email]{margin-top:.4rem}
#ask-msg:empty{display:none}#ask-msg{max-width:46ch;margin:0 0 1rem}
.finder input{font:inherit;font-size:var(--step-body);padding:.8em 1em;border:0;background:#fff;color:var(--ink);border-radius:var(--radius);min-width:0}
.tabs{display:flex;gap:1.6rem;flex-wrap:wrap;margin:1.2rem 0 1.6rem}
.tab{background:none;border:0;padding:0;font:inherit;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:.25em;text-decoration-color:transparent;transition:color 180ms,text-decoration-color 180ms}
.tab.is-active,.tab:hover{color:var(--ink);text-decoration-color:var(--accent)}
.finding{background:var(--surface);padding:1.6rem;margin-bottom:2rem}
.finding h3{margin-bottom:.6rem}
.finding p{max-width:60ch}
.ledger{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:var(--step-small);line-height:1.4;color:var(--ink)}
.ledger th{text-align:left;font-weight:600;padding:.5em .6em .5em 0;color:var(--ink)}
.ledger td{padding:.5em .6em .5em 0;vertical-align:top;border-top:1px solid rgba(51,50,49,.14)}
.samplelist{list-style:none;padding:0;margin:0;columns:2;column-gap:2rem;font-size:var(--step-small)}
.samplelist li{break-inside:avoid;margin:0 0 .5em;display:flex;flex-direction:column}
.samplelist span{color:var(--muted);font-size:var(--step-small)}

/* how: the slip */
.how{background:var(--dark);color:var(--dark-ink);margin-top:var(--section);padding-top:var(--section);padding-bottom:var(--section)}
.how h2,.how>p{color:var(--dark-ink)}
.slip{background:var(--bg);color:var(--ink);max-width:480px;margin-top:2.4rem;padding:1.8rem 1.6rem 2.6rem;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),97.5% 100%,95% calc(100% - 12px),92.5% 100%,90% calc(100% - 12px),87.5% 100%,85% calc(100% - 12px),82.5% 100%,80% calc(100% - 12px),77.5% 100%,75% calc(100% - 12px),72.5% 100%,70% calc(100% - 12px),67.5% 100%,65% calc(100% - 12px),62.5% 100%,60% calc(100% - 12px),57.5% 100%,55% calc(100% - 12px),52.5% 100%,50% calc(100% - 12px),47.5% 100%,45% calc(100% - 12px),42.5% 100%,40% calc(100% - 12px),37.5% 100%,35% calc(100% - 12px),32.5% 100%,30% calc(100% - 12px),27.5% 100%,25% calc(100% - 12px),22.5% 100%,20% calc(100% - 12px),17.5% 100%,15% calc(100% - 12px),12.5% 100%,10% calc(100% - 12px),7.5% 100%,5% calc(100% - 12px),2.5% 100%,0 calc(100% - 12px))}
.slip h3{font-family:var(--font-text);font-weight:600;font-size:var(--step-body);margin:1.6rem 0 .4rem}
.slip h3:first-child{margin-top:0}
.slip .row{display:flex;align-items:baseline;gap:.6rem;font-size:var(--step-small);padding:.25em 0}
.slip .row span:first-child{flex:0 1 auto}
.slip .row span:last-child{margin-left:auto;white-space:nowrap}
.slip .row::after{content:"";order:1;flex:1 1 auto;border-bottom:4px dotted var(--muted);transform:translateY(-.35em);opacity:.5;min-width:1.5rem}
.slip .row span:last-child{order:2}
.slip .total{display:flex;justify-content:space-between;background:var(--ink);color:var(--bg);padding:.6em .8em;margin:1.4rem -1.6rem 0;font-weight:600}

/* proof: names in columns */
.proof .names{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 2rem;margin-top:1.6rem}
.proof .names p{font-size:var(--step-body);line-height:1.5;max-width:none}
.proof .kind{color:var(--muted)}

/* pricing: two fields */
.pricing{display:grid;grid-template-columns:5fr 7fr;margin-top:var(--section);padding:0 !important;min-height:70svh}
.plan{padding:2.5rem var(--pad);display:flex;flex-direction:column;gap:1.2rem}
.plan.major{background:var(--accent);color:var(--accent-ink);grid-column:2;grid-row:1}
.plan.minor{background:var(--field-1);color:var(--field-1-ink);grid-column:1;grid-row:1}
.plan h2{font-size:var(--step-head);max-width:none}
.plan p{max-width:30ch}
.plan .price{margin-top:auto;display:grid;grid-template-columns:1fr;gap:.4rem;padding-top:2rem}
.plan .amount{font-family:var(--font-display);font-size:var(--step-display);line-height:1;overflow-wrap:anywhere}
.plan .period{font-size:var(--step-small)}
.plan .button{justify-self:start;margin-top:.8rem}
.plan.major .button{background:var(--bg);color:var(--ink)}
.plan.major .button:hover{background:#fff}

/* faq */
.faq .qa{columns:1;max-width:60ch;margin-top:1.2rem}
.faq .qa p{break-inside:avoid;margin:0 0 1.1em;line-height:1.55}

/* cta + footer */
.cta{padding-top:30svh;padding-bottom:20svh;display:flex;flex-direction:column;gap:1.5rem}
.cta p:first-child{max-width:34ch;font-size:var(--step-lead)}
.footer{padding-top:8svh;padding-bottom:2rem;font-size:var(--step-small);color:var(--muted)}
.footer .line{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:baseline}
.footer .mid{display:flex;gap:1.2rem;flex-wrap:wrap}
.footer a{color:var(--ink)}
.footer .credits{margin-top:2rem;font-size:var(--step-small);line-height:1.5;max-width:60ch}
.footer .credits a{color:var(--muted)}

/* inner pages */
.page{padding:0 var(--pad) var(--section)}
.report{max-width:72ch;margin:0 auto}
.report-head{padding:3rem 0 2rem}
.report-head .lead{font-size:var(--step-lead);line-height:1.5;margin-top:1.2rem;max-width:40ch}
.report-head .meta{color:var(--muted);font-size:var(--step-small);margin-top:1rem}
.block{padding-top:3.5rem}
.block h2{margin-bottom:1rem}
.page .footer{padding-left:0;padding-right:0}

/* motion */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--ease-out),transform 900ms var(--ease-out)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .ledger tbody tr{opacity:0;transform:translateY(8px);transition:opacity 500ms var(--ease-out),transform 600ms var(--ease-out)}
.js .is-in .ledger tbody tr,.js .ledger.is-in tbody tr{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js [data-reveal],.js .ledger tbody tr{opacity:1;transform:none;transition:none}
  .fixed .photo{transition:none;transform:none}
}

/* phone */
@media (max-width:900px){
  .stage{grid-template-columns:1fr}
  .fixed{position:sticky;top:0;height:38svh;z-index:0;grid-column:1;grid-row:1}
  .scroll{grid-row:2}
  .scroll{position:relative;z-index:1;background:var(--bg)}
  .hero{min-height:auto;padding-top:1rem;padding-bottom:4rem;gap:1.2rem}
  .hero h1{font-size:clamp(2rem,9vw,2.75rem)}
  .nav{padding:1rem var(--pad)}
  .nav .links{gap:.9rem}
  .pricing{grid-template-columns:1fr;min-height:auto}
  .plan.major{grid-column:1;grid-row:1;min-height:60svh}
  .plan.minor{grid-column:1;grid-row:2;min-height:50svh}
  .plan .button{margin-left:0;width:100%;text-align:center}
  .proof .names{grid-template-columns:1fr 1fr;gap:1.4rem}
  .samplelist{columns:1}
  .ledger{font-size:13px}
  .ledger th:nth-child(4),.ledger td:nth-child(4){display:none}
  .finder{grid-template-columns:1fr}
}
details.rest{margin-top:1rem}
details.rest summary{cursor:pointer;color:var(--muted);font-size:var(--step-small);padding:.4em 0}
.askform{margin:1.4rem 0 0;max-width:46ch}.askform label{display:block;font-size:var(--step-small);color:var(--muted);margin-bottom:.5rem}.askform .row{display:grid;grid-template-columns:1fr auto;gap:.6rem}.askform input{font:inherit;font-size:var(--step-body);padding:.8em 1em;border:1px solid rgba(11,12,14,.18);background:#fff;color:var(--ink);border-radius:var(--radius);min-width:0}.askform .small{margin-top:.6rem;color:var(--muted)}
@media(max-width:600px){.askform .row{grid-template-columns:1fr}}

.dlinks{display:flex;flex-wrap:wrap;gap:.5rem .9rem;line-height:1.8}.dlinks a[aria-current]{font-weight:700;text-decoration:none}
.guidelist{list-style:none;padding:0}.guidelist li{margin:0 0 1.2rem}

.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0}.tscroll table{min-width:100%;border-collapse:collapse}.tscroll th,.tscroll td{white-space:nowrap;padding:.4em .8em .4em 0;text-align:left;vertical-align:top}.tscroll th{font-size:var(--step-small);color:var(--muted);border-bottom:1px solid var(--ink)}.tscroll td{border-bottom:1px solid var(--surface)}
.buybox{margin:1rem 0 1.2rem}.buybox .small{margin-top:.5rem;max-width:60ch}.button.is-busy{opacity:.6;pointer-events:none}

a.wordmark{display:inline-flex!important;align-items:center;gap:.45em;white-space:nowrap}.wordmark .mark{display:inline-block;width:1.3em;height:1.3em;flex:none}
