﻿:root{
  --navy:#0B2540; --navy-d:#06172A; --gold:#E8B04B; --gold-l:#F6D58E;
  --ink:#FFFFFF; --body:#DCE4EE; --en:#E9EEF5;
  --f-zh:"Noto Sans TC",sans-serif;
  --f-en:Inter,"Noto Sans","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--navy-d);color:var(--body);font:400 16px/1.8 var(--f-zh);}
html[lang="en"] body{font-family:var(--f-en);line-height:1.65}
img{max-width:100%;display:block}
a{color:var(--gold-l)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--gold-l);outline-offset:2px}

/* shared type */
.tag{display:inline-block;font:300 12px/1.4 var(--f-en);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-l);border:1px solid rgba(246,213,142,.55);border-radius:99px;padding:4px 12px}
.big{font:900 clamp(28px,7.2vw,52px)/1.25 var(--f-zh);color:var(--ink);margin:14px 0 18px;letter-spacing:.01em}
html[lang="en"] .big{font-family:var(--f-en);font-weight:400;letter-spacing:.02em;text-transform:none}
.en{font:300 13px/1.5 var(--f-en);letter-spacing:.2em;text-transform:uppercase;color:var(--en);margin:6px 0 0}
p{margin:0 0 14px}

/* top bar */
.bar{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:linear-gradient(to bottom,rgba(6,23,42,.85),rgba(6,23,42,0))}
.brand{font:900 20px/1 var(--f-zh);color:var(--ink);text-decoration:none;letter-spacing:.06em;padding:10px 4px}
html[lang="en"] .brand{font-family:var(--f-en);font-weight:400;letter-spacing:.3em}
.lang{font:400 14px var(--f-en);letter-spacing:.14em;color:var(--ink);background:rgba(6,23,42,.55);border:1px solid rgba(246,213,142,.7);border-radius:99px;padding:8px 16px;min-height:44px;min-width:56px;cursor:pointer}
.lang:hover{background:rgba(232,176,75,.25)}

/* hero */
.hero{position:relative;background:var(--navy-d);min-height:100svh;display:flex;flex-direction:column;padding:70px 20px 28px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0 0 auto 0;height:64svh;z-index:-4;background:url(/assets/bg-01.webp) 90% 50%/cover no-repeat;will-change:transform}
@media (min-aspect-ratio:1/1){.hero-bg{height:100%;background-position:50% 50%}}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,23,42,1) 0%,rgba(6,23,42,.92) 38%,rgba(6,23,42,.35) 58%,rgba(6,23,42,0) 74%)}
.hero>.tag{position:absolute;top:78px;right:18px}
.hero-space{flex:1 0 30svh}
.chat{max-width:640px;width:100%;margin:0 auto 18px;background:rgba(6,23,42,.62);border:1px solid rgba(246,213,142,.5);border-radius:22px;padding:18px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.chat h2{font:900 clamp(22px,5.6vw,30px)/1.3 var(--f-zh);color:var(--ink);margin:0 0 12px}
html[lang="en"] .chat h2{font-family:var(--f-en);font-weight:400;font-size:clamp(20px,5vw,26px)}
#chatForm{display:flex;gap:8px}
#chatInput{flex:1;min-width:0;font:400 16px var(--f-zh);color:#0B2540;background:#F4F7FB;border:2px solid transparent;border-radius:14px;padding:12px 14px;min-height:48px}
#chatInput:focus{border-color:var(--gold)}
#chatForm button{font:900 15px var(--f-zh);color:#06172A;background:var(--gold);border:0;border-radius:14px;padding:0 18px;min-height:48px;cursor:pointer}
#chatForm button:disabled{opacity:.6}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{font:400 14px var(--f-zh);color:var(--ink);background:rgba(232,176,75,.16);border:1px solid rgba(246,213,142,.7);border-radius:99px;padding:8px 14px;min-height:44px;cursor:pointer}
.chip:hover{background:rgba(232,176,75,.34)}
.log{margin-top:12px;display:flex;flex-direction:column;gap:10px;max-height:46svh;overflow:auto}
.log:empty{display:none}
.msg-u{align-self:flex-end;background:rgba(246,213,142,.18);color:var(--ink);border-radius:14px 14px 4px 14px;padding:8px 12px;max-width:88%}
.msg-a{align-self:flex-start;background:rgba(11,37,64,.92);color:var(--body);border-left:3px solid var(--gold);border-radius:4px 14px 14px 14px;padding:10px 14px;max-width:96%;white-space:pre-wrap}
.disclosure{margin:12px 0 0;font-size:12.5px;color:var(--en);opacity:.95}
.hero-head{max-width:640px;width:100%;margin:0 auto}
.hero-head h1{font:900 clamp(44px,13vw,84px)/1.05 var(--f-zh);color:var(--ink);margin:0 0 6px;letter-spacing:.02em}
html[lang="en"] .hero-head h1{font-family:var(--f-en);font-weight:400;letter-spacing:.18em;font-size:clamp(34px,10vw,64px)}
.hero-head .sub{font:900 clamp(17px,4.6vw,24px)/1.4 var(--f-zh);color:var(--ink);margin:0 0 4px}
html[lang="en"] .hero-head .sub{font-family:var(--f-en);font-weight:400}
.hero-head .small{font-size:14px;margin:8px 0 0;color:var(--body)}

/* waves: gold light shimmering on water */
.waves{position:absolute;left:0;right:0;top:44%;bottom:0;z-index:-3;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30%,#000);mask-image:linear-gradient(to bottom,transparent,#000 30%,#000)}
.w{position:absolute;left:0;width:200%;height:36px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='36' viewBox='0 0 240 36'%3E%3Cpath d='M0 18 Q30 6 60 18 T120 18 T180 18 T240 18' fill='none' stroke='%23F6D58E' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x;animation:drift 16s linear infinite}
.w1{top:8%;opacity:.55}
.w2{top:34%;opacity:.38;animation-duration:24s;animation-direction:reverse}
.w3{top:62%;opacity:.26;animation-duration:34s}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-240px)}}

/* sections */
.sec{position:relative;padding:84px 20px 72px;margin-top:-1px;background:transparent;isolation:isolate;min-height:56svh;display:flex;align-items:flex-end}
.sec::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,23,42,.88) 0%,rgba(6,23,42,.55) 50%,rgba(6,23,42,.12) 100%)}
/* each picture dissolves into the shared night-blue at top and bottom, so the page reads as one continuous scene */
.sec::after{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--bg,none);background-position:var(--pos,50% 50%);background-size:cover;background-repeat:no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 76%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 76%,transparent 100%)}
.sec.dark::before{background:linear-gradient(to top,rgba(6,23,42,.9),rgba(6,23,42,.45))}
.inner{max-width:760px;width:100%;margin:0 auto;text-align:left}
.pills{list-style:none;margin:18px 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.pills li{color:var(--ink);background:rgba(232,176,75,.16);border:1px solid rgba(246,213,142,.65);border-radius:99px;padding:8px 16px}
.foot{margin-top:20px;color:var(--ink)}
.plain{list-style:none;padding:0;margin:0}
.plain li{padding:8px 0 8px 18px;position:relative;border-bottom:1px solid rgba(246,213,142,.18)}
.plain li::before{content:"";position:absolute;left:0;top:1.05em;width:7px;height:7px;border-radius:50%;background:var(--gold)}
h3{font:900 18px/1.4 var(--f-zh);color:var(--gold-l);margin:0 0 8px}
html[lang="en"] h3{font-family:var(--f-en);font-weight:400}
.cols{display:grid;gap:24px;margin-top:10px}
@media(min-width:720px){.cols{grid-template-columns:1fr 1fr}}

/* cycle */
.cycle{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;margin:20px 0 6px;padding:8px 0}
.cycle .ring{position:absolute;inset:0;margin:auto;width:min(100%,420px);height:100%;max-height:100%;opacity:.85;z-index:0;pointer-events:none}
.node{position:relative;z-index:1;background:rgba(6,23,42,.72);border:1px solid rgba(246,213,142,.55);border-radius:16px;padding:12px 14px}
.node b{font:900 30px/1.1 var(--f-zh);color:var(--gold-l);margin-right:8px}
html[lang="en"] .node b{font-family:var(--f-en);font-weight:400;font-size:22px}
.node .en{display:inline}
.node p{margin:6px 0 0;font-size:14.5px;line-height:1.6}
.n1{grid-area:1/1}.n2{grid-area:1/2}.n3{grid-area:2/2}.n4{grid-area:2/1}

.steps{list-style:none;margin:16px 0;padding:0;counter-reset:s;display:grid;gap:10px}
.steps li{counter-increment:s;position:relative;padding:10px 12px 10px 54px;background:rgba(6,23,42,.6);border:1px solid rgba(246,213,142,.35);border-radius:14px}
.steps li::before{content:counter(s);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--gold);color:#06172A;font:900 15px/30px var(--f-en);text-align:center}
.steps b{color:var(--ink);margin-right:6px}

.cards{display:grid;gap:16px;margin:12px 0}
@media(min-width:900px){.cards{grid-template-columns:repeat(3,1fr)}.inner{max-width:1040px}.sec .inner>p,.sec .inner>h2{max-width:760px}}
.card{background:rgba(11,37,64,.88);border:1px solid rgba(246,213,142,.4);border-radius:18px;overflow:hidden}
.card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.card>div{padding:14px 16px 16px}
.card h3{color:var(--ink)}
.card p{font-size:14.5px;line-height:1.65;margin-bottom:8px}
.card .need{color:var(--gold-l)}
.badge{display:inline-block;font:400 12px var(--f-zh);color:#06172A;background:var(--gold);border-radius:99px;padding:2px 10px;margin-bottom:8px}

.name{font:900 20px var(--f-zh);color:var(--gold-l);margin:14px 0 0}
html[lang="en"] .name{font-family:var(--f-en);font-weight:400}
.bullets{margin:14px 0}
blockquote{margin:22px 0 0;padding:4px 0 4px 16px;border-left:3px solid var(--gold);font:900 clamp(18px,4.6vw,26px)/1.6 var(--f-zh);color:var(--ink)}
html[lang="en"] blockquote{font-family:var(--f-en);font-weight:400}

.ladder{list-style:none;margin:18px 0 8px;padding:0;display:grid;gap:10px}
.ladder li{display:flex;flex-direction:column;padding:10px 14px;background:rgba(6,23,42,.62);border-left:3px solid var(--gold);border-radius:0 14px 14px 0}
.ladder li:nth-child(2){margin-left:12px}.ladder li:nth-child(3){margin-left:24px}.ladder li:nth-child(4){margin-left:36px}
.ladder b{font:900 20px var(--f-zh);color:var(--ink)}
html[lang="en"] .ladder b{font-family:var(--f-en);font-weight:400}
.ladder .en{margin:0 0 2px;color:var(--gold-l)}

/* form */
.waters{margin:10px 0 18px}
.dropform{display:grid;gap:14px;background:rgba(6,23,42,.74);border:1px solid rgba(246,213,142,.5);border-radius:20px;padding:18px;margin:8px 0 24px}
.f{display:grid;gap:6px;color:var(--ink);border:0;padding:0;margin:0}
.f legend{padding:0;margin-bottom:6px;color:var(--ink)}
.f em,.consent em{font-style:normal;font-size:12px;color:var(--gold-l);margin-left:4px}
.dropform input[type=text],.dropform select,.dropform textarea{width:100%;font:400 16px var(--f-zh);color:#0B2540;background:#F4F7FB;border:2px solid transparent;border-radius:12px;padding:11px 13px;min-height:46px}
.dropform input:focus,.dropform select:focus,.dropform textarea:focus{border-color:var(--gold)}
.r{display:flex;gap:10px;align-items:flex-start;color:var(--body);min-height:36px;padding:4px 0}
.r input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--gold);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.go{font:900 17px var(--f-zh);color:#06172A;background:var(--gold);border:0;border-radius:14px;min-height:50px;cursor:pointer}
.go:disabled{opacity:.6}
.msg{margin:0;min-height:1.6em;color:var(--gold-l)}
.msg.err{color:#FFD2C9}
.end{font:900 clamp(24px,6.4vw,44px)/1.3 var(--f-zh);color:var(--ink);margin:10px 0 0}
html[lang="en"] .end{font-family:var(--f-en);font-weight:400}

.foot-bar{padding:26px 20px 34px;background:var(--navy-d);text-align:center;font-size:14px;color:var(--body)}
.foot-bar p{margin:0 0 8px}
.foot-bar .priv{max-width:620px;margin:10px auto;text-align:left;font-size:13.5px;border:1px solid rgba(246,213,142,.3);border-radius:12px;padding:12px 14px}
.foot-bar .ai{font-size:12.5px;color:var(--en)}

/* motion: only when allowed */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
.js .reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .w{animation:none!important}
  .hero-bg{transform:none!important}
  .js .reveal{opacity:1;transform:none;transition:none}
}
@media(min-width:900px){
  .hero{padding-left:6vw;padding-right:6vw}
  .chat,.hero-head{margin-left:0;margin-right:0}
  .hero-space{flex-basis:30svh}
}

