*{box-sizing:border-box}
:root{--blue:#1647ff;--orange:#ff6a2a;--yellow:#ffe500;--paper:#f7f5ee;--black:#090909;--line:2px solid var(--black)}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--black);font-family:"Anuphan",sans-serif;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
::selection{background:var(--yellow);color:var(--black)}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--yellow);padding:1rem;border:var(--line);font-weight:700}.skip-link:focus{top:1rem}
.demo-bar{height:38px;padding:0 18px;background:var(--black);color:white;display:flex;align-items:center;justify-content:space-between;font:500 10px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;position:relative;z-index:100}
.demo-picker,.demo-contact{padding:7px 0}.demo-styles{display:flex;height:100%}.demo-styles a{display:grid;place-items:center;width:42px;border-left:1px solid #555}.demo-styles a:last-child{border-right:1px solid #555}.demo-styles .active{background:var(--yellow);color:var(--black)}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--line);padding:0 3vw;position:relative;z-index:90;background:var(--paper)}
.wordmark,.footer-mark{font:400 clamp(1.7rem,3vw,2.8rem)/1 "Archivo Black",sans-serif;letter-spacing:-.07em}.wordmark span,.footer-mark span{font:600 .35em/1 "IBM Plex Mono";vertical-align:top;margin-left:.3em}
.site-nav{display:flex;align-items:center;gap:2.2vw;font:600 11px/1 "IBM Plex Mono",monospace;letter-spacing:.04em}.site-nav a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.nav-book{background:var(--blue);color:white;padding:16px 20px;border:2px solid var(--blue)}.nav-book:hover{background:var(--yellow);color:var(--black);border-color:var(--black);text-decoration:none!important}
.menu-toggle{display:none;background:none;border:0;font:600 12px "IBM Plex Mono";cursor:pointer}
.hero{min-height:calc(100vh - 120px);display:grid;grid-template-columns:44% 56%;grid-template-rows:1fr 60px;border-bottom:var(--line);position:relative}
.hero-copy{background:var(--orange);padding:4vw;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden}
.eyebrow,.section-code,.mono{font:600 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.hero h1{font:400 clamp(4rem,9vw,9rem)/.76 "Archivo Black",sans-serif;letter-spacing:-.085em;margin:auto 0 2rem;color:var(--paper);position:relative;z-index:1}.hero h1 span{display:block}.hero h1 span:nth-child(2){color:var(--yellow);margin-left:22%}
.hero-thai{font-weight:700;font-size:clamp(1.2rem,2.2vw,2rem);line-height:1.3;margin:0 0 2rem}.arrow-link{font-weight:700;border-bottom:2px solid;padding-bottom:5px}.arrow-link span{margin-left:3rem}
.hero-visual{position:relative;min-height:640px;overflow:hidden}.hero-visual img{filter:saturate(1.15);transition:transform 1s cubic-bezier(.2,.8,.2,1)}.hero-visual:hover img{transform:scale(1.025)}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 60%,rgba(255,229,0,.2));pointer-events:none}
.burst{position:absolute;width:170px;height:170px;right:8%;top:9%;background:var(--yellow);color:var(--black);clip-path:polygon(50% 0,61% 20%,79% 7%,81% 29%,100% 27%,88% 48%,100% 63%,78% 69%,79% 91%,59% 80%,48% 100%,38% 79%,18% 93%,20% 69%,0 64%,13% 48%,1% 29%,23% 28%,25% 7%,40% 21%);display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(8deg);font:400 22px/1 "Archivo Black"}.burst span:last-child{font-size:15px}
.vertical-tag{position:absolute;left:0;bottom:0;background:var(--blue);color:white;padding:14px 20px;font:500 10px "IBM Plex Mono";writing-mode:vertical-rl;transform:rotate(180deg)}
.hero-ticker{grid-column:1/-1;background:var(--yellow);border-top:var(--line);display:flex;overflow:hidden;align-items:center;font:400 24px/1 "Archivo Black";white-space:nowrap}.hero-ticker div{animation:marquee 25s linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}
.intro{display:grid;grid-template-columns:20% 45% 35%;padding:8vw 4vw;align-items:start;border-bottom:var(--line)}.intro h2,.gear h2,.packages h2,.process h2,.booking h2{font:400 clamp(3.2rem,7vw,7.5rem)/.85 "Archivo Black","Anuphan",sans-serif;letter-spacing:-.07em;margin:0}.intro h2 span{color:var(--blue)}.intro-copy{font-size:clamp(1rem,1.5vw,1.35rem);line-height:1.65;max-width:36ch;margin:1rem 0}
.set-card{display:grid;min-height:670px;border-bottom:var(--line);position:relative;overflow:hidden}.set-number{position:absolute;top:2.5vw;right:3vw;font:400 clamp(4rem,9vw,9rem)/1 "Archivo Black";z-index:2;letter-spacing:-.08em}.set-image{overflow:hidden}.set-image img{transition:transform .8s}.set-card:hover .set-image img{transform:scale(1.04)}.set-content{padding:5vw;display:flex;flex-direction:column;justify-content:center}.set-content h3{font-family:"Anuphan";font-weight:700;font-size:clamp(2.6rem,5.8vw,6rem);line-height:.98;letter-spacing:-.06em;margin:3rem 0 2rem}.set-content>p:not(.mono){max-width:44ch;line-height:1.7}.set-content dl{display:grid;grid-template-columns:repeat(3,1fr);border-top:var(--line);margin:3rem 0 0}.set-content dl div{padding:1rem 1rem 0 0}.set-content dt{font:500 9px "IBM Plex Mono";margin-bottom:.5rem}.set-content dd{margin:0;font:600 clamp(.85rem,1.5vw,1.2rem) "IBM Plex Mono"}
.set-blue{grid-template-columns:53% 47%;background:var(--blue);color:white}.set-blue .set-image{order:0;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.set-blue .set-content{order:1}.set-blue dl{border-color:white}
.set-yellow{grid-template-columns:65% 35%;background:var(--yellow)}.set-yellow .set-content{padding-left:10vw}.set-shape{background:var(--black);clip-path:polygon(38% 0,100% 0,100% 100%,0 100%);position:relative}.set-shape:after{content:"";position:absolute;width:260px;height:260px;background:var(--orange);border-radius:50%;left:5%;top:28%}
.set-orange{grid-template-columns:48% 52%;background:var(--orange)}.set-orange .set-image{order:1;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}.set-orange .set-content{order:0}
.set-white{grid-template-columns:68% 32%;min-height:590px}.set-white .set-content{padding-left:12vw}.set-stamp{background:var(--blue);color:white;display:grid;place-items:center;text-align:center;font:400 clamp(3.4rem,6vw,6rem)/.86 "Archivo Black";letter-spacing:-.08em;transform:rotate(5deg) scale(1.12)}
.gear{display:grid;grid-template-columns:38% 62%;background:var(--black);color:white;border-bottom:var(--line)}.gear-heading{background:var(--blue);padding:7vw 4vw}.gear-heading p:last-child{max-width:30ch;line-height:1.65;margin-top:3rem}.gear-list>div{display:grid;grid-template-columns:7% 26% 1fr auto;align-items:center;gap:1rem;padding:1.6rem 3vw;border-bottom:1px solid #666}.gear-list>div:last-child{border:0}.gear-list span,.gear-list strong{font:500 11px "IBM Plex Mono"}.gear-list h3{font:400 clamp(1rem,2vw,1.6rem) "Archivo Black";margin:0}.gear-list p{font-size:.9rem;color:#bdbdbd}.gear-list strong{background:var(--yellow);color:var(--black);padding:.65rem}
.work{padding:8vw 4vw;background:var(--paper)}.work-title{display:flex;align-items:start;justify-content:space-between;margin-bottom:4vw}.work-title h2{font:400 clamp(3rem,9vw,9rem)/.78 "Archivo Black";letter-spacing:-.08em;text-align:right;color:var(--blue)}.mosaic{display:grid;grid-template-columns:1.35fr .65fr 1fr;grid-template-rows:360px 300px;gap:16px}.mosaic figure{margin:0;position:relative;overflow:hidden}.mosaic figcaption{position:absolute;bottom:0;left:0;background:var(--yellow);padding:.8rem;font:600 10px "IBM Plex Mono"}.mosaic-a{grid-row:1/3}.mosaic-b{grid-column:3;grid-row:1}.mosaic-quote{background:var(--orange);padding:2rem;display:flex;align-items:center;position:relative}.mosaic-quote span{font:400 8rem/1 "Archivo Black";position:absolute;top:.2rem;left:1rem}.mosaic-quote p{font-size:clamp(1.3rem,2vw,2rem);font-weight:700;line-height:1.3;position:relative;margin-top:4rem}.mosaic-type{grid-column:2/4;background:var(--yellow);font:400 clamp(5rem,10vw,10rem)/.67 "Archivo Black";letter-spacing:-.08em;padding:2rem;overflow:hidden}
.packages{background:var(--orange);padding:8vw 4vw;border-block:var(--line)}.packages-head{display:grid;grid-template-columns:30% 70%;margin-bottom:5vw}.package-grid{display:grid;grid-template-columns:repeat(3,1fr);border:var(--line)}.package{background:var(--paper);padding:2.5vw;min-height:520px;display:flex;flex-direction:column;border-right:var(--line)}.package:last-child{border:0}.package-featured{background:var(--yellow);transform:translateY(-20px);box-shadow:10px 10px 0 var(--black)}.package-label{font:600 10px "IBM Plex Mono"}.package h3{font:400 clamp(2rem,4vw,4rem) "Archivo Black";margin:2rem 0 0}.price{font:600 clamp(1.6rem,3vw,2.8rem) "IBM Plex Mono";margin:.4rem 0 2rem}.package ul{list-style:none;padding:0;margin:0 0 2rem}.package li{border-top:1px solid;padding:.65rem 0;font-size:.9rem}.package li:before{content:"＋";margin-right:.6rem}.package a{margin-top:auto;font-weight:700;border-bottom:2px solid;padding-bottom:.5rem}
.process{display:grid;grid-template-columns:40% 60%;background:var(--yellow);border-bottom:var(--line)}.process-title{padding:7vw 4vw;border-right:var(--line)}.steps{list-style:none;padding:0;margin:0}.steps li{min-height:180px;border-bottom:var(--line);display:grid;grid-template-columns:25% 75%;align-items:center;padding:2vw 4vw}.steps span{font:400 3rem "Archivo Black"}.steps h3{font:400 2rem "Archivo Black";margin:0 0 .5rem}.steps p{margin:0}.rules{grid-column:1/-1;background:var(--blue);color:white;padding:4vw;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2vw}.rules h3{font:400 clamp(2rem,4vw,4rem) "Archivo Black";margin:0}.rules div{border-left:1px solid white;padding-left:1.5rem}.rules span{font:500 10px "IBM Plex Mono"}.rules p{font-size:.85rem;line-height:1.6}
.testimonials{background:var(--paper);padding:7vw 4vw}.testimonial-track{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3rem;border:var(--line)}blockquote{margin:0;padding:3vw;border-right:var(--line);min-height:360px;display:flex;flex-direction:column}blockquote:last-child{border:0}blockquote>p{font-size:clamp(1.1rem,1.8vw,1.5rem);line-height:1.6;margin:0}blockquote footer{margin-top:auto;display:flex;flex-direction:column;font:500 10px/1.6 "IBM Plex Mono"}blockquote footer span{color:#666}
.booking{display:grid;grid-template-columns:40% 60%;background:var(--blue);color:white}.booking-copy{padding:7vw 4vw}.booking-copy h2{color:var(--yellow);margin:2rem 0}.booking-copy>p:not(.section-code){max-width:38ch;line-height:1.7}.contact-block{display:grid;margin-top:4rem}.contact-block span{font:500 9px "IBM Plex Mono";margin-top:1.5rem}.contact-block a{font:600 clamp(1rem,2vw,1.5rem) "IBM Plex Mono"}
.booking-form{background:var(--paper);color:var(--black);padding:5vw}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.booking-form label,.booking-form legend{display:block;font-size:.8rem;font-weight:700;margin-bottom:1.2rem}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:0;border-bottom:2px solid var(--black);border-radius:0;background:transparent;padding:.8rem 0;outline:none}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--blue);box-shadow:0 3px 0 var(--yellow)}.booking-form fieldset{border:0;padding:0;margin:1.5rem 0}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-grid label{margin:0;position:relative}.check-grid input{position:absolute;opacity:0}.check-grid span{display:block;border:2px solid;padding:1rem;font:600 11px "IBM Plex Mono";cursor:pointer}.check-grid input:checked+span{background:var(--yellow);box-shadow:4px 4px 0 var(--black)}.check-grid input:focus-visible+span{outline:3px solid var(--blue)}.consent{display:flex!important;align-items:center;gap:.7rem}.consent input{width:auto}.booking-form button{width:100%;border:var(--line);background:var(--orange);padding:1.2rem;text-align:left;font:400 clamp(1.2rem,2vw,1.7rem) "Archivo Black";cursor:pointer;display:flex;justify-content:space-between;box-shadow:7px 7px 0 var(--black)}.booking-form button:hover{background:var(--yellow)}.form-status{font-weight:700;min-height:1.5em;margin:1.5rem 0 0}
.site-footer{background:var(--black);color:white;padding:5vw 4vw}.footer-mark{font-size:clamp(4rem,12vw,12rem);color:var(--yellow);white-space:nowrap}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;border-top:1px solid #777;margin-top:3rem;padding-top:2rem;gap:2rem;font:500 10px/1.7 "IBM Plex Mono"}.footer-grid nav,.footer-grid div{display:flex;flex-direction:column}.footer-grid a:hover{color:var(--yellow)}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){
  .demo-contact{font-size:0}.demo-contact:after{content:"CONTACT";font-size:10px}
  .site-header{height:68px}.menu-toggle{display:flex;align-items:center;gap:10px}.menu-icon{width:22px;height:12px;border-block:2px solid}
  .site-nav{position:absolute;top:68px;left:0;right:0;background:var(--yellow);border-bottom:var(--line);display:none;flex-direction:column;align-items:stretch;gap:0;padding:1rem 3vw}.site-nav.open{display:flex}.site-nav a{font-size:1.2rem;padding:1rem;border-bottom:1px solid}.nav-book{margin-top:.5rem}
  .hero{grid-template-columns:1fr;grid-template-rows:auto 58vh 50px}.hero-copy{min-height:560px;padding:2rem}.hero-visual{min-height:0}.hero-ticker{grid-row:3}
  .intro{grid-template-columns:1fr;padding:5rem 1.5rem;gap:2rem}.intro h2{font-size:clamp(3.5rem,15vw,7rem)}
  .set-card,.set-blue,.set-yellow,.set-orange,.set-white{grid-template-columns:1fr;min-height:0}.set-image{height:55vh;clip-path:none!important}.set-card .set-content{order:2;padding:5rem 1.5rem}.set-card .set-image{order:1}.set-number{top:1rem;right:1.5rem}.set-content dl{grid-template-columns:1fr}.set-content dl div{display:flex;justify-content:space-between;border-bottom:1px solid;padding:1rem 0}.set-shape{height:320px}.set-stamp{min-height:320px;transform:none}
  .gear{grid-template-columns:1fr}.gear-heading{padding:5rem 1.5rem}.gear-list>div{grid-template-columns:8% 1fr auto;padding:1.5rem}.gear-list p{grid-column:2/4;margin:0}.gear-list strong{grid-column:3;grid-row:1}
  .work{padding:5rem 1rem}.work-title{display:block}.work-title h2{margin-top:2rem;text-align:left}.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:450px 300px 260px}.mosaic-a{grid-column:1/3;grid-row:1}.mosaic-b{grid-column:2;grid-row:2}.mosaic-type{grid-column:1/3;grid-row:3}
  .packages{padding:5rem 1rem}.packages-head{grid-template-columns:1fr;gap:2rem}.package-grid{grid-template-columns:1fr}.package{padding:2rem;min-height:460px;border-right:0;border-bottom:var(--line)}.package-featured{transform:none;box-shadow:none}
  .process{grid-template-columns:1fr}.process-title{padding:5rem 1.5rem;border-right:0;border-bottom:var(--line)}.steps li{padding:2rem 1.5rem}.rules{grid-template-columns:1fr;padding:4rem 1.5rem}.rules div{padding:1rem 0;border-left:0;border-top:1px solid}
  .testimonial-track{grid-template-columns:1fr}.testimonials{padding:5rem 1rem}blockquote{min-height:290px;border-right:0;border-bottom:var(--line);padding:2rem}
  .booking{grid-template-columns:1fr}.booking-copy,.booking-form{padding:5rem 1.5rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-mark{font-size:16vw}
}
@media(max-width:540px){
  .demo-bar{padding:0 10px}.demo-styles a{width:34px}.hero h1{font-size:23vw}.hero-copy{min-height:510px}.hero-visual{height:52vh}.burst{width:120px;height:120px;font-size:16px}
  .set-content h3{font-size:14vw}.gear-list h3{font-size:.85rem}.mosaic{grid-template-columns:1fr;grid-template-rows:400px 280px 300px 220px}.mosaic-a,.mosaic-b,.mosaic-quote,.mosaic-type{grid-column:1;grid-row:auto}
  .form-row,.check-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-mark{font-size:15vw}.hero-ticker{font-size:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
