@font-face{font-family:'Charm';font-weight:700;font-display:swap;src:url(/site/fonts/charm-thai-700-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:400;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-thai-400-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:500;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-thai-500-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:600;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-thai-600-normal.woff2) format('woff2');unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:'Charm';font-weight:700;font-display:swap;src:url(/site/fonts/charm-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:400;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:500;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans Thai';font-weight:600;font-display:swap;src:url(/site/fonts/ibm-plex-sans-thai-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --ink:#16110c; --ink2:#211a13; --line:#3d3022; --cloud:#f7efe3; --mist:#cbbca6;
  --gold:#e3b55e; --gold2:#c98e2c; --blossom:#f3a9c0; --lacquer:#e0604d; --jade:#7fd3a4;
  --brush:"Charm",Tahoma,serif; --sans:"IBM Plex Sans Thai",Tahoma,"Leelawadee UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--cloud);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
img{max-width:100%}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 17px/1 var(--sans);text-decoration:none;border-radius:12px;padding:17px 30px;border:0;cursor:pointer;transition:transform .15s,filter .15s,background .15s}
.btn:active{transform:translateY(1px)}
.btn-gold{background:linear-gradient(180deg,#f5cf7c,var(--gold) 45%,var(--gold2));color:#2a1a06;box-shadow:0 10px 30px -8px #e3b55e99,inset 0 1px 0 #fff6}
.btn-gold:hover{filter:brightness(1.06)}
.btn-ghost{background:#16110c8c;color:var(--cloud);border:1px solid #f7efe355;backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--gold);color:#fff}
.btn small{font-weight:400;font-size:13px;opacity:.75}
.btn svg{width:20px;height:20px;flex:none}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;gap:22px;padding:14px clamp(16px,4vw,48px);background:linear-gradient(#16110cd9,#16110c00)}
.mark{font:700 26px/1 var(--brush);color:var(--gold);text-decoration:none;text-shadow:0 2px 12px #000a}
.nav .sp{flex:1}
.nav a.l{color:var(--cloud);text-decoration:none;font-size:15px;opacity:.9}
.nav a.l:hover{opacity:1;color:var(--gold)}
.nav .btn{padding:11px 20px;font-size:15px}
@media(max-width:640px){.nav a.l{display:none}.mark{font-size:22px}}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#16110c00 38%,#16110c99 68%,var(--ink) 100%),linear-gradient(90deg,#16110cb3 0%,#16110c00 55%)}
.hero-in{position:relative;z-index:2;width:100%;padding:0 clamp(16px,6vw,88px) clamp(40px,8vh,84px)}
.hero h1{font:700 clamp(40px,5.4vw,78px)/1.15 var(--brush);margin:0;color:#fff;text-shadow:0 4px 30px #000c}
.hero p.lead{font-size:clamp(17px,1.6vw,20px);color:var(--cloud);max-width:34em;margin:22px 0 28px;text-shadow:0 2px 12px #000}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px;font-size:14px;color:var(--mist)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:1px}
.up .dot{background:var(--jade);box-shadow:0 0 0 4px #7fd3a433}.up{color:var(--jade)}
.down .dot{background:var(--lacquer)}.down{color:var(--lacquer)}
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero p.lead,.cta,.meta{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .hero p.lead{animation-delay:.12s}.cta{animation-delay:.22s}.meta{animation-delay:.3s}
}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* sections */
.sec{max-width:1080px;margin:0 auto;padding:clamp(56px,9vw,104px) clamp(16px,4vw,32px)}
.sec h2{font:700 clamp(34px,4vw,48px)/1.15 var(--brush);color:var(--gold);margin:0 0 8px}
.sec p.sub{color:var(--mist);margin:0 0 40px;max-width:40em}

/* steps: a true sequence */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:linear-gradient(90deg,var(--gold),#e3b55e33)}
.steps li{position:relative;counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ink);border:2px solid var(--gold);color:var(--gold);font:700 26px/1 var(--brush);margin-bottom:16px;position:relative}
.steps b{display:block;color:#fff;font-size:18px;margin-bottom:4px}
.steps span{color:var(--mist);font-size:15px}
@media(max-width:820px){.steps{grid-template-columns:1fr 1fr}.steps::before{display:none}}
@media(max-width:460px){.steps{grid-template-columns:1fr}}

/* systems with real item icons in gold slot frames */
.sys{display:grid;grid-template-columns:1fr 1fr;gap:34px 48px}
.sys div{display:flex;gap:18px;align-items:flex-start}
.slot{flex:none;width:64px;height:64px;padding:5px;border-radius:10px;background:linear-gradient(145deg,#f2cf85,#8a5a1c);box-shadow:0 6px 18px #0008}
.slot img{display:block;width:54px;height:54px;border-radius:6px;border:1px solid #2a1a06}
.sys h3{margin:2px 0 4px;font-size:19px;color:#fff}
.sys p{margin:0;color:var(--mist);font-size:15px}
@media(max-width:700px){.sys{grid-template-columns:1fr}}

.band{background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.req{display:flex;flex-wrap:wrap;gap:12px 40px;color:var(--mist);font-size:15px;margin:0;padding:0;list-style:none}
.req li b{color:var(--cloud);font-weight:600;margin-right:6px}
.note{margin-top:22px;color:var(--mist);font-size:14px;max-width:46em}
footer{text-align:center;color:#8f8170;font-size:13px;padding:36px 16px 44px}

/* toast after sign-up */
.toast{position:fixed;z-index:30;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);width:min(480px,calc(100% - 32px));background:#2a1b20f2;border:1px solid var(--blossom);border-radius:14px;padding:16px 18px 16px 20px;box-shadow:0 20px 50px #000a;display:flex;gap:14px;align-items:center}
.toast b{color:#fff}.toast p{margin:0;font-size:15px;color:#f6dce4;flex:1}
.toast button{background:none;border:0;color:#f6dce4;font-size:22px;cursor:pointer;line-height:1}
@media (prefers-reduced-motion:no-preference){.toast{animation:drop .5s cubic-bezier(.2,.7,.2,1) both}}
@keyframes drop{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ------- sign-up page ------- */
.reg{min-height:100svh;display:grid;grid-template-columns:1fr minmax(380px,520px)}
.reg-art{position:relative;overflow:hidden}
.reg-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 25%}
.reg-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#16110c00 60%,#16110ccc)}
.reg-art .back{position:absolute;z-index:2;top:18px;left:clamp(16px,3vw,32px);font-size:14px;color:var(--cloud);text-decoration:none;background:#16110cb3;border:1px solid #f7efe355;border-radius:999px;padding:7px 16px;backdrop-filter:blur(6px)}
.reg-art .back:hover{border-color:var(--gold);color:#fff}
.panel{background:var(--ink);border-left:1px solid #e3b55e66;padding:clamp(28px,5vw,56px) clamp(22px,4vw,52px);display:flex;flex-direction:column;justify-content:center;box-shadow:-30px 0 60px #0008}
.panel h1{font:700 44px/1.15 var(--brush);color:var(--gold);margin:0}
.panel .sub{color:var(--mist);margin:6px 0 30px;font-size:15px}
.f{margin-bottom:18px}
.f label{display:block;font-size:14px;color:var(--cloud);margin-bottom:7px;font-weight:500}
.inp{position:relative}
.inp svg.i{position:absolute;left:14px;top:50%;width:19px;height:19px;transform:translateY(-50%);color:#9c8b73;pointer-events:none}
.inp input{width:100%;font:16px var(--sans);color:#fff;background:var(--ink2);border:1px solid var(--line);border-radius:11px;padding:14px 46px 14px 44px;transition:border-color .15s,box-shadow .15s}
.inp input::placeholder{color:#7d6f5d}
.inp input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px #e3b55e33}
.f.bad .inp input{border-color:var(--lacquer)}
.f.good .inp input{border-color:#7fd3a499}
.eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:#9c8b73;cursor:pointer;padding:8px;border-radius:8px}
.eye:hover{color:var(--gold)}.eye svg{width:20px;height:20px;display:block}
.hint{font-size:13px;color:#9c8b73;margin-top:6px;min-height:19px}
.f.bad .hint{color:var(--lacquer)}.f.good .hint{color:var(--jade)}
.meter{display:flex;gap:5px;margin-top:8px}
.meter i{flex:1;height:4px;border-radius:2px;background:#3d3022;transition:background .2s}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.panel .btn-gold{width:100%;margin-top:8px;padding:18px}
.panel .btn-gold[disabled]{filter:grayscale(.5) brightness(.8);cursor:wait}
.err{display:none;background:#3a1712;border:1px solid #e0604d88;color:#ffd0c8;border-radius:10px;padding:11px 14px;font-size:14px;margin-bottom:14px}
.alt{margin-top:22px;text-align:center;color:var(--mist);font-size:14px}
.spin{width:18px;height:18px;border:2px solid #2a1a0655;border-top-color:#2a1a06;border-radius:50%;animation:sp .7s linear infinite;display:none}
@keyframes sp{to{transform:rotate(360deg)}}
@media(max-width:860px){
  .reg{grid-template-columns:1fr;grid-template-rows:34svh auto}
  .reg-art::after{background:linear-gradient(180deg,#16110c00 50%,var(--ink))}
  .panel{border-left:0;border-top:1px solid #e3b55e66;box-shadow:none}
}
