@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900;1000&family=Noto+Sans+Thai:wght@400;500;600;700;800&display=swap');
:root{--ink:#293c56;--muted:#65758b;--paper:#fffdf5;--blue:#377fa6;--lavender:#e9e4fa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans Thai',Tahoma,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #a17ad3;outline-offset:5px}p{line-height:1.8;color:var(--muted)}.preview{background:#293c56;color:#e4e7f1;text-align:center;font:700 10px 'Nunito',sans-serif;letter-spacing:2px;padding:8px}.preview span{font-family:'Noto Sans Thai',sans-serif;letter-spacing:0;margin-left:15px;font-weight:400}header{height:92px;display:flex;align-items:center;gap:45px;padding:0 5.5%;background:#fffdf7;position:relative;z-index:5;border-bottom:1px solid #ece9dc}.brand{font:1000 36px/1 'Nunito',sans-serif;letter-spacing:-2px;color:#f4ce70;-webkit-text-stroke:1.3px #263d59;text-shadow:1px 3px 0 #263d59;display:inline-block}.brand small{display:block;letter-spacing:3px;font:800 9px/2 'Nunito',sans-serif;text-shadow:none;-webkit-text-stroke:0;text-align:center;color:#435c78}nav{display:flex;gap:32px;margin-left:auto;font-size:14px;font-weight:600}nav a:hover,.text-link:hover{color:var(--blue)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;background:#387fa6;color:white;border:1px solid #2d6c90;border-radius:9px;min-height:52px;padding:13px 25px;font-weight:700;box-shadow:0 4px 0 #245b7e;transition:transform .2s,background .2s}.button:hover{background:#286c94;transform:translateY(-2px)}.button.small{font-size:13px;min-height:43px;padding:10px 19px;gap:17px}.menu{display:none}.hero{position:relative;min-height:640px;height:calc(100vh - 120px);max-height:830px;overflow:hidden;background:#dbeff5}.hero-art{position:absolute;inset:0;background:linear-gradient(90deg,#f6f5eafa 0%,#f6f5eae8 21%,#f6f5ea6e 45%,transparent 65%),linear-gradient(0deg,#fffdf5 0%,transparent 14%),url('assets/town-statue-v2.webp') center 58%/cover}.hero-content{position:relative;padding:103px 5.5% 110px;max-width:820px}.eyebrow{display:block;font:800 10px/1.5 'Nunito',sans-serif;letter-spacing:2.3px;color:#5b7a8a}.hero h1{font-size:clamp(44px,4.5vw,69px);line-height:1.22;letter-spacing:-1.5px;margin:24px 0;color:#293e59;font-weight:800}.hero h1 span{color:#428cb3}.hero p{font-size:17px;color:#53657a;margin:0 0 29px}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.text-link{font-size:13px;font-weight:600;display:inline-flex;gap:13px;align-items:center}.hero-note{display:flex;align-items:center;gap:9px;font-size:11px;color:#6e7d87;margin-top:28px}.hero-note span{color:#8f7ba9;font-size:20px}.postcard{position:absolute;right:6%;bottom:83px;display:flex;flex-direction:column;background:#fffdf0ed;padding:20px 28px;border:1px solid #fff9e3;box-shadow:0 8px 30px #24364724;transform:rotate(-3deg);border-radius:3px}.postcard span{font:800 9px 'Nunito';letter-spacing:3px;color:#77838e}.postcard strong{font-size:25px;margin:4px 0}.postcard small{font-size:11px;color:#748194}.scroll{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1px;color:#788897}.wrap{width:min(1180px,89%);margin:auto}.intro{padding-top:85px;padding-bottom:70px}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}h2{font-size:30px;line-height:1.45;margin:10px 0 0;letter-spacing:-.7px}.section-top p{font-size:13px;margin:0}.world-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:23px}.world-grid article{border-radius:16px;overflow:hidden;position:relative;height:330px;background:#d2e3e5}.world-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.world-grid article:hover img{transform:scale(1.035)}.world-grid article:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#172e49d9)}.world-grid article>div{position:absolute;z-index:1;bottom:25px;left:28px;color:white}.world-grid span{font:800 10px 'Nunito';letter-spacing:2px;color:#c7e9ef}.world-grid h3{font-size:23px;margin:8px 0 3px}.world-grid p{color:#e0e7ed;font-size:12px;margin:0}.news{padding:22px 0 85px}.news-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px}.news-cover{min-height:300px;border-radius:13px;background:linear-gradient(90deg,#314664ed,#31466470),url('assets/town-statue-v2.webp') center/cover;display:flex;flex-direction:column;justify-content:center;padding:35px;color:#fff8e6}.news-cover>span{font:800 10px 'Nunito';letter-spacing:3px;color:#efce82}.news-cover strong{font-size:29px;line-height:1.5;margin:19px 0 30px}.news-cover small{font-size:10px;color:#e0e7f0}.filters{display:flex;gap:9px;border-bottom:1px solid #e4e7e8;padding-bottom:14px}.filters button{border:0;background:transparent;border-radius:7px;padding:10px 20px;color:#61718a;font-size:12px;min-height:44px}.filters .active{background:#e3eff4;color:#285e7b;font-weight:700}.news-list article{padding:21px 0 17px;border-bottom:1px solid #e4e7e8}.tag{background:#e4f0ef;color:#3c797c;font-size:9px;padding:3px 9px;border-radius:4px}.tag.lavender{background:#ede7f8;color:#7d659d}.news-list h3{font-size:15px;margin:10px 0 4px}.news-list h3 a{display:flex;justify-content:space-between}.news-list p{font-size:11px;margin:0}.editor-note{font-size:10px!important;color:#7b8091;margin-top:15px!important}.journey{background:linear-gradient(115deg,#e9f2f4,#f0ecf7);overflow:hidden}.journey-inner{display:grid;grid-template-columns:1fr 1fr;min-height:600px;align-items:center;padding:64px 0}.journey-copy>p{font-size:13px}.journey ol{padding:0;list-style:none;margin:29px 0}.journey li{display:flex;align-items:center;gap:17px;margin:17px 0}.journey li>b{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:50%;border:1px solid #c5d5e1;background:#faffff90;font:800 12px 'Nunito';color:#6d87a3}.journey h3{font-size:14px;margin:0}.journey li p{margin:3px 0 0;font-size:11px}.journey .actions{gap:20px}.journey .button{font-size:13px}.characters{height:480px;position:relative;isolation:isolate}.characters:before{content:'';position:absolute;width:370px;height:370px;border-radius:50%;background:#fffaf2b5;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;border:1px solid #fff}.characters img{position:absolute;object-fit:contain;filter:drop-shadow(0 15px 9px #424c6820)}.fighter{width:63%;height:100%;left:20%;bottom:0;z-index:2}.ranger{width:50%;height:85%;left:-6%;bottom:15px;transform:rotate(-8deg)}.caster{width:50%;height:90%;right:-7%;bottom:12px;transform:rotate(8deg)}.character-label{position:absolute;right:12px;top:8px;letter-spacing:3px;font:800 9px 'Nunito';color:#7e799a}.character-caption{position:absolute;z-index:3;bottom:-8px;left:50%;transform:translateX(-50%) rotate(-4deg);white-space:nowrap;background:#fffbee;padding:11px 20px;border-radius:5px;font-size:12px;box-shadow:0 6px 20px #58557a15}.community{margin-top:65px;margin-bottom:65px;padding:36px 38px;display:flex;align-items:center;gap:25px;border:1px solid #e4dff0;border-radius:16px;background:#f3effa}.community-symbol{font-size:55px;color:#a58bbd}.community h2{font-size:25px}.community p{font-size:12px;margin:7px 0 0}.community .button{margin-left:auto;font-size:12px;white-space:nowrap}.purple{background:#7d6caa;border-color:#72619b;box-shadow:0 4px 0 #5f5285}.purple:hover{background:#695894}footer{border-top:1px solid #e7e6e0;padding:30px 0 35px;display:flex;align-items:center;gap:28px}footer .brand{font-size:29px}footer p{font-size:11px;margin:0}footer p span{font-size:9px;color:#939aa4}footer>a:last-child{margin-left:auto;font-size:10px}dialog{width:min(520px,calc(100% - 32px));border:1px solid #d3dce4;border-radius:19px;background:var(--paper);color:var(--ink);padding:40px;text-align:center;box-shadow:0 25px 100px #182a4150;max-height:90dvh;overflow:auto}dialog::backdrop{background:#24375091;backdrop-filter:blur(5px)}dialog h2{font-size:24px}dialog p{font-size:13px}.close{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#66778c;font-size:28px;width:44px;height:44px}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}
@media(min-width:1500px){.hero-content{padding-left:max(5.5vw,calc((100vw - 1180px)/2))}}
@media(max-width:1000px){header{gap:20px}nav{gap:18px;font-size:12px}.hero-content{padding-top:85px}.news-layout{gap:25px}.journey-inner{grid-template-columns:1.1fr 1fr}.characters{height:400px}.characters:before{width:280px;height:280px}.community{padding:25px}.community h2{font-size:22px}.community-symbol{display:none}}
@media(max-width:700px){html{scroll-padding-top:20px}.preview{font-size:8px;letter-spacing:1px}.preview span{font-size:9px;margin-left:8px}header{height:78px;padding:0 5%;gap:15px}.brand{font-size:30px}.brand small{font-size:7px}.menu{display:block;border:0;background:#eef0f7;color:var(--ink);border-radius:7px;width:44px;height:44px;margin-left:auto;order:2}header>.button{margin-left:auto;font-size:11px;gap:10px;padding:9px 12px;order:1}nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:18px 6%;border-bottom:1px solid #d8e0e8;box-shadow:0 8px 15px #27395510}nav.open{display:flex;flex-direction:column;gap:0}nav a{padding:13px;font-size:14px}.hero{min-height:690px;height:calc(100svh - 110px);max-height:850px}.hero-art{background:linear-gradient(180deg,#f9f7ed 0%,#f9f7edd9 30%,#f9f7ed0a 65%,#fffdf5 100%),url('assets/town-statue-v2.webp') 57% bottom/auto 78% no-repeat}.hero-content{padding:44px 6% 0;max-width:100%}.hero .eyebrow{font-size:8px;letter-spacing:1.4px}.hero h1{font-size:47px;margin:18px 0}.hero p{font-size:14px;margin-bottom:22px}.actions{gap:20px}.hero .button{font-size:13px;gap:17px;padding:12px 17px}.hero .text-link{font-size:11px}.hero-note{margin-top:20px;font-size:10px}.postcard{right:8%;bottom:66px;padding:13px 18px}.postcard strong{font-size:20px}.postcard small{font-size:9px}.wrap{width:88%}.intro{padding-top:50px;padding-bottom:42px}.section-top{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:24px}h2{font-size:25px}.section-top p{font-size:12px}.eyebrow{font-size:9px}.world-grid{grid-template-columns:1fr;gap:17px}.world-grid article{height:250px}.world-grid h3{font-size:21px}.world-grid article>div{left:22px;bottom:22px}.news{padding:10px 0 48px}.news-layout{grid-template-columns:1fr;gap:23px}.news-cover{min-height:240px;padding:27px}.news-cover strong{font-size:26px;margin:16px 0 23px}.news-list h3{font-size:14px}.journey-inner{grid-template-columns:1fr;padding:45px 0 30px;gap:24px}.journey-copy>p{font-size:12px}.journey h2{font-size:26px}.journey .actions{gap:23px}.characters{height:380px;width:100%;max-width:440px;margin:auto}.characters:before{width:280px;height:280px}.character-label{right:4px;top:0}.character-caption{bottom:0;font-size:10px}.community{margin-top:42px;margin-bottom:38px;flex-direction:column;align-items:flex-start;padding:28px 23px;gap:22px}.community h2{font-size:22px}.community .button{margin-left:0}.community p{font-size:11px}footer{flex-wrap:wrap;gap:18px;padding-top:24px}footer p{font-size:10px}footer>a:last-child{width:100%;margin:0}dialog{padding:40px 23px 25px}dialog h2{font-size:22px}dialog p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

#gateway{position:fixed;inset:0;z-index:100;background:radial-gradient(circle,#fffbed,#e4eff7);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .65s,visibility .65s}
.gateway-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:30px;color:#354962;transform:translateY(15px);transition:transform .7s}
.gateway-star{font-size:70px;color:#c7a260}.gateway-content strong{font-size:27px}.gateway-content>span:last-child{font-size:14px;color:#61718b}
body.entering #gateway{opacity:1;visibility:visible}body.entering .gateway-content{transform:translateY(0)}
@media(max-width:700px){.hero-art{background-position:43% bottom}.gateway-content strong{font-size:23px}}

.hero{background:var(--paper)}@media(min-width:701px){.hero-art{left:24%;background-position:left center;background-image:linear-gradient(90deg,#fffdf5,transparent 26%),linear-gradient(0deg,#fffdf5,transparent 14%),url('assets/town-statue-v2.webp')}}
