/* Passion campaign: full-width city premiere, editorial stories, photo collage. */
.landing{--bg:#faf3f4;--ink:#0e1116;--muted:#66515a;--faint:#66515a;--pink:#bb2649;--brand:#bb2649;--line:#d8a4ad;--font-body:'Montserrat','Anuphan',sans-serif;--font-display:'Montserrat','Anuphan',sans-serif;background:var(--bg);color:var(--ink);overflow-x:clip}
.landing::before,.landing::after,.landing .site-bg{display:none}
.landing *{box-sizing:border-box}
.landing .container{width:calc(100% - 112px);max-width:1320px;margin-inline:auto;padding-inline:0}
.landing h1,.landing h2,.landing h3,.landing p{margin:0}
.landing h2{font-weight:600;line-height:1.3;font-size:clamp(2rem,3.5vw,3.2rem);letter-spacing:-.025em;text-wrap:balance}
.landing p{line-height:1.85}
.landing a{text-decoration:none}
.landing :focus-visible{outline:3px solid #bb2649;outline-offset:5px}
.landing ::selection{background:#bb2649;color:white}
.landing [id]{scroll-margin-top:105px}
.landing .skip-link{position:absolute;top:0;left:24px;transform:translateY(-150%);background:white;color:#0e1116;padding:14px;z-index:100}
.landing .skip-link:focus{transform:none}
.landing .nav{position:relative;top:auto;background:#faf3f4;border:0;border-bottom:1px solid #d8a4ad;backdrop-filter:none;box-shadow:none;z-index:50}
.landing .nav-inner{height:88px}
.landing .logo-img{width:90px;height:65px;object-fit:contain;filter:none}
.landing .brand{flex-shrink:0}
.landing .nav .brand{display:inline-flex;align-items:center;gap:10px}
.brand-wordmark{font:700 1.9rem/1 'Montserrat','Anuphan',sans-serif;letter-spacing:.04em;color:#bb2649}
@media(max-width:1100px) and (min-width:881px){.landing .nav .logo-img{width:65px}.landing .nav .brand{gap:5px}.landing .nav .brand-wordmark{font-size:1.4rem}.landing .nav .nav-links{gap:12px}.landing .nav .nav-login{padding:12px}}
@media(max-width:600px){.landing .nav .brand{gap:5px}.brand-wordmark{font-size:1.6rem}}
.landing .nav-links{display:flex;gap:28px;align-items:center}
.landing .nav-links a{font-size:.88rem;color:#0e1116;font-weight:500}
.landing .nav-links a:hover,.landing .nav-links a.active{color:#bb2649}
.landing .nav-login{padding:12px 18px;background:#bb2649;border:1px solid #bb2649;border-radius:8px;color:white!important;display:flex;align-items:center;gap:9px;box-shadow:none}
.landing .dc-ico{width:21px;height:21px}
.landing .menu-btn{display:none}
.landing .city-hero{position:relative;min-height:780px;height:calc(100svh - 88px);max-height:980px;background:#0e1116;isolation:isolate;overflow:hidden;color:#fff;border-bottom:1px solid #d0636e}
.hero-media,.hero-shade{position:absolute;inset:0;z-index:-2}
.hero-media img,.hero-media video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 55%}
.hero-media video{opacity:0}.hero-media video.is-ready{opacity:1}
.hero-shade{z-index:-1;background:linear-gradient(180deg,#0e1116b8,#0e111638 48%,#0e1116e8)}
.hero-layout{height:100%;min-height:inherit;display:flex;justify-content:center;align-items:center;text-align:center;position:relative;padding:40px 0 150px}
.hero-copy{max-width:950px;width:100%;}
.city-word{font:700 clamp(5rem,11.5vw,10.8rem)/.82 'Montserrat','Anuphan',sans-serif;letter-spacing:-.04em;display:block}
.city-word-second{display:block;font-size:.34em;line-height:1.5;letter-spacing:.18em;margin-top:9px}
.city-period{color:#bb2649}.hero-copy .city-period{color:#f3aeba}
.hero-thai{display:block;font:500 clamp(1.4rem,2.2vw,2rem)/1.5 'Montserrat','Anuphan',sans-serif;margin:24px 0 12px}
.hero-description{font-size:1rem;color:#fff;max-width:55ch;margin-inline:auto!important}
.city-actions{display:flex;justify-content:center;gap:12px;margin-top:28px}
.city-button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:18px 25px;border-radius:8px;border:1px solid #bb2649;font-size:1rem;font-weight:500;min-height:58px;transition:background .2s,color .2s}
.city-button svg,.text-link svg,.gallery-photo svg,.hub-links svg{width:23px;height:23px;flex-shrink:0}
.city-button.primary{background:#bb2649;color:#fff}.city-button.primary:hover{background:#971d3a}
.city-button.secondary{background:#eeeeee;color:#0e1116;border-color:#eee}.city-button.secondary:hover{background:#f0d6db}
.hero-platform{display:flex;gap:20px;justify-content:center;margin-top:25px!important;font-size:.75rem;color:#f1dce1}
.hero-bottom{position:absolute;bottom:40px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;text-align:left;border-top:1px solid #ffffff55;padding-top:20px}
.explore-link{color:#fff;font-size:.85rem;display:flex;gap:35px;align-items:center}.explore-link span{font-size:1.7rem}
.motion-toggle{font:inherit;font-size:.75rem;color:#fff;border:1px solid #ffffff80;border-radius:6px;padding:12px 16px;background:#0e111699;cursor:pointer}
.getting-started{display:grid;grid-template-columns:1fr 2.4fr;gap:50px;padding-block:70px 80px;border-bottom:1px solid #d8a4ad}
.start-heading h2{font-size:2.2rem}.start-heading p{font-size:.9rem;color:#66515a;margin-top:18px}
.join-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.join-steps li{border-top:1px solid #bb2649;padding-top:13px;position:relative}
.step-number{font:700 4rem/1.2 'Montserrat','Anuphan',sans-serif;color:#bb2649;display:block;margin-bottom:15px}
.join-steps h3{font-size:1.15rem;font-weight:500;margin-bottom:12px}
.join-steps p{font-size:.9rem;color:#66515a;margin-bottom:22px}
.text-link{display:inline-flex;align-items:center;gap:18px;color:#bb2649;font-weight:500;font-size:.9rem;min-height:44px}.text-link:hover{text-decoration:underline}
.city-section{padding-block:110px}
.city-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:45px}
.city-heading>p{font-size:.94rem;color:#66515a;max-width:42ch}
.community-explorer{display:grid;grid-template-columns:260px 1fr;border:1px solid #d8a4ad;border-radius:16px;overflow:hidden;background:#f0d6db}
.explorer-controls{padding:34px 22px;display:flex;flex-direction:column;justify-content:space-between}
.explorer-tabs{display:flex;flex-direction:column;gap:8px}
.explorer-tabs button{font:500 1rem/1.5 'Montserrat','Anuphan',sans-serif;border:1px solid transparent;background:transparent;color:#66515a;padding:19px 15px;cursor:pointer;text-align:left;border-radius:8px}
.explorer-tabs button[aria-selected=true]{background:#bb2649;color:#fff;border-color:#bb2649}
.explorer-tabs button:hover:not([aria-selected=true]){border-color:#bb2649;color:#bb2649}
.explorer-note{font-size:.75rem;color:#66515a;padding:15px}
.explorer-panel{display:grid;grid-template-columns:1.2fr 1fr;background:#0e1116;color:#eee;min-width:0}
.explorer-visual{overflow:hidden;min-width:0}.explorer-visual img{height:530px;width:100%;object-fit:cover;object-position:55%;min-width:0;transform:scale(1.2)}
.explorer-copy{align-self:center;padding:35px}
.explorer-copy h3{font-size:1.85rem;line-height:1.45;font-weight:500;margin-bottom:20px}
.explorer-copy p{font-size:.93rem;color:#dfcbd1;margin-bottom:26px}
.explorer-copy .city-button{font-size:.8rem;gap:15px;padding:16px}
.community-promises{display:flex;gap:80px;padding-top:28px;justify-content:flex-end}
.community-promises p{font-size:.85rem;color:#66515a}.community-promises strong{display:block;color:#0e1116;font-weight:500;font-size:1rem}
.gallery-section{padding:95px 0;background:#0e1116;color:#eee;overflow:hidden}
.gallery-section .city-heading>p{color:#cfb6bf}
.gallery-display{display:block;font:700 clamp(3.5rem,6vw,6rem)/1 'Montserrat','Anuphan',sans-serif;color:#f0aab7;margin-bottom:15px}
.gallery-section h2{font-size:1.8rem}
.city-gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:310px 230px 250px;gap:20px}
.gallery-photo{display:block;position:relative;overflow:hidden;border:1px solid #93606d;border-radius:12px;background:#231b20;min-width:0}
.gallery-photo img{transform:scale(1.2);width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.gallery-photo:hover img{transform:scale(1.24)}
.gallery-photo span{position:absolute;bottom:0;left:0;right:0;padding:40px 23px 20px;background:linear-gradient(transparent,#0e1116ed);display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:.88rem;gap:15px}
.photo-1{grid-column:1/8;grid-row:1/3}.photo-2{grid-column:8/13;grid-row:1}.photo-3{grid-column:8/13;grid-row:2}.photo-4{grid-column:1/5;grid-row:3}.photo-5{grid-column:5/9;grid-row:3}.photo-6{grid-column:9/13;grid-row:3}
.connection-band{padding:45px 0;background:#f0d6db;border-block:1px solid #d8a4ad}
.connection-layout{display:grid;grid-template-columns:1fr 1.25fr 1.25fr;gap:30px;align-items:center}
.connection-intro h2{font-size:1.7rem;margin-bottom:15px}
.status-pill{font-size:.75rem;background:transparent;border:0;padding:0;box-shadow:none;white-space:normal}.status-pill b{color:#0e1116}
.connection-server{border-left:1px solid #d8a4ad;padding-left:25px;min-width:0}
.connection-server h3{font:700 1.5rem 'Montserrat','Anuphan',sans-serif;margin-bottom:9px}
.server-code{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.server-code code{font-size:.75rem;overflow-wrap:anywhere;color:#66515a}
.server-code button{background:#faf3f4;border:1px solid #bb2649;border-radius:5px;color:#bb2649;min-height:44px;padding:9px 14px;font:500 .8rem 'Montserrat','Anuphan',sans-serif;cursor:pointer}
.connection-help{font-size:.8rem;color:#66515a;margin-top:22px!important}
.community-faq{padding-block:100px;display:grid;grid-template-columns:1fr 1.15fr;gap:90px}
.faq-intro h2{font-size:2.3rem}.faq-intro p{color:#66515a;font-size:.95rem;margin:20px 0}
.faq-questions{border-top:1px solid #d8a4ad}.faq-questions details{border-bottom:1px solid #d8a4ad}
.faq-questions summary{list-style:none;position:relative;cursor:pointer;padding:23px 35px 23px 0;font-size:1rem;font-weight:500}.faq-questions summary::-webkit-details-marker{display:none}
.faq-questions summary::after{content:'+';position:absolute;right:4px;top:17px;font-size:1.5rem;color:#bb2649}.faq-questions details[open] summary::after{content:'−'}
.faq-questions p{color:#66515a;font-size:.95rem;padding:0 25px 25px 0}.faq-questions a{color:#bb2649;text-decoration:underline}
.community-close{background:#bb2649;color:#fff;padding:85px 0;border-block:1px solid #9d1f3d}
.community-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;align-items:center}
.community-display{display:block;font:700 clamp(4rem,7vw,6rem)/1 'Montserrat','Anuphan',sans-serif;color:#f4c9d2;margin-bottom:12px}
.community-layout h2{font-size:2rem}.community-layout p{margin:22px 0;color:#fff;font-size:.95rem}
.community-close .city-button.primary{background:#eee;color:#bb2649;border-color:#eee}
.community-info{padding-left:45px;border-left:1px solid #e6a0b0;position:relative}
.community-art{display:none}.community-info h3{font-size:1.3rem;color:#fff}
.community-stats{display:flex;gap:30px;margin:18px 0;color:#f6d4dc;font-size:.9rem}.community-stats b{display:block;font:700 2.5rem 'Montserrat','Anuphan',sans-serif;color:#fff}
.city-age{border-top:1px solid #e6a0b0;padding-top:15px;font-size:.9rem}.city-age p{margin:0 0 9px}.city-age b{font-size:1.3rem}
.discord-hub{padding-block:40px;display:grid;grid-template-columns:1fr 2fr;gap:50px}
.hub-heading h2{font-size:1.3rem}.hub-heading p{font-size:.8rem;color:#66515a;margin-top:10px}
.hub-links{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.hub-links a{display:flex;gap:15px;color:#0e1116;border-left:1px solid #d8a4ad;padding-left:20px}.hub-links small{display:block;color:#66515a;font-size:.75rem;margin-top:8px}.hub-links strong{font-size:.88rem;font-weight:500}.hub-links svg{color:#bb2649;width:18px}
.landing .footer{background:#0e1116;color:#eee;border-top:1px solid #d0636e;padding-top:50px}.landing .footer h4{color:#eee}.landing .footer a,.landing .footer .desc,.landing .footer-bottom{color:#d6bec6}.landing .footer-bottom{border-color:#543641}
@media(min-width:1700px){.landing .container{max-width:1480px}}
@media(max-width:1100px){.landing .container{width:calc(100% - 64px)}.landing .nav-links{gap:18px}.landing .nav-links a{font-size:.8rem}.community-explorer{grid-template-columns:210px 1fr}.explorer-panel{grid-template-columns:1fr}.explorer-visual{overflow:hidden;min-width:0}.explorer-visual img{height:300px}.explorer-copy{padding:25px}.explorer-copy h3{font-size:1.6rem}.getting-started{gap:30px}.join-steps{gap:20px}.community-faq{gap:45px}.community-layout{gap:40px}.discord-hub{grid-template-columns:1fr}.city-gallery{grid-template-rows:240px 210px 220px}}
@media(max-width:880px){.landing .nav-inner{height:76px}.landing .menu-btn{display:block;border:1px solid #bb2649;border-radius:6px;background:transparent;color:#bb2649;width:44px;height:44px;font-size:1.3rem}.landing .nav-links{position:absolute;left:0;right:0;top:76px;background:#faf3f4;border-bottom:1px solid #bb2649;padding:20px 32px;display:flex;flex-direction:column;align-items:stretch;gap:0;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-10px)}.landing .nav-links.open{visibility:visible;opacity:1;pointer-events:auto;transform:none}.landing .nav-links a{padding:12px;font-size:.95rem}.landing .nav-login{margin-top:10px}.getting-started{grid-template-columns:1fr}.start-heading{display:flex;justify-content:space-between;gap:30px}.city-heading{align-items:flex-start;gap:25px}.connection-layout{grid-template-columns:1fr 1fr}.connection-intro{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.connection-server{padding:0;border:0}.community-layout{grid-template-columns:1fr 1fr}.community-info{padding-left:25px}}
@media(max-width:600px){.landing .container{width:calc(100% - 40px)}.landing .logo-img{height:55px;width:76px}.landing .city-hero{height:780px;min-height:780px}.hero-layout{padding:0 0 125px}.city-word{font-size:clamp(4.2rem,20vw,6.8rem)}.city-word-second{font-size:.33em;letter-spacing:.13em}.hero-thai{font-size:1.3rem;margin-top:24px}.hero-description{font-size:.9rem}.hero-description br{display:none}.city-actions{flex-direction:column;gap:10px;max-width:310px;margin:25px auto 0}.city-button{font-size:.95rem;padding:17px 22px}.hero-bottom{bottom:25px;padding-top:18px;gap:20px}.explore-link{font-size:.7rem;gap:12px}.motion-toggle{font-size:.65rem;padding:10px;max-width:130px}.hero-platform{gap:12px;font-size:.68rem}.getting-started{padding-block:45px;gap:30px}.start-heading{display:block}.start-heading h2{font-size:2rem}.start-heading h2 br{display:none}.start-heading p{margin-top:14px}.start-heading p br{display:none}.join-steps{grid-template-columns:1fr;gap:0}.join-steps li{display:grid;grid-template-columns:55px 1fr;gap:20px;padding-block:25px}.step-number{font-size:3.3rem}.join-steps p{margin-bottom:8px}.city-section{padding-block:55px}.city-heading{display:block;margin-bottom:28px}.city-heading h2{font-size:2.1rem}.city-heading>p{margin-top:20px}.community-explorer{grid-template-columns:1fr}.explorer-controls{padding:12px}.explorer-tabs{flex-direction:row;gap:4px}.explorer-tabs button{flex:1;padding:12px 6px;font-size:.75rem;text-align:center}.explorer-note{display:none}.explorer-visual{overflow:hidden;min-width:0}.explorer-visual img{height:270px}.explorer-copy{padding:26px}.explorer-copy h3{font-size:1.7rem}.community-promises{flex-direction:column;gap:20px;padding-top:24px}.gallery-section{padding-block:55px}.gallery-display{font-size:4rem}.city-gallery{grid-template-columns:1fr 1fr;grid-template-rows:280px 190px 190px 230px;gap:12px}.photo-1{grid-column:1/3;grid-row:1}.photo-2{grid-column:1;grid-row:2}.photo-3{grid-column:2;grid-row:2}.photo-4{grid-column:1;grid-row:3}.photo-5{grid-column:2;grid-row:3}.photo-6{grid-column:1/3;grid-row:4}.gallery-photo span{font-size:.7rem;padding:35px 12px 12px}.gallery-photo svg{width:16px}.connection-layout{grid-template-columns:1fr;gap:25px}.connection-intro{display:block}.connection-intro h2{margin-bottom:15px}.connection-server{border-top:1px solid #d8a4ad;padding-top:20px}.community-faq{grid-template-columns:1fr;gap:25px;padding-block:55px}.faq-intro h2{font-size:2rem}.faq-questions summary{font-size:.95rem}.community-close{padding-block:55px}.community-layout{grid-template-columns:1fr;gap:35px}.community-display{font-size:4.3rem}.community-info{padding:25px 0 0;border-left:0;border-top:1px solid #e6a0b0}.community-layout h2{font-size:1.8rem}.community-layout p br{display:none}.discord-hub{padding-block:35px;gap:25px}.hub-links{grid-template-columns:1fr;gap:20px}.hub-links a{border-left:0;border-top:1px solid #d8a4ad;padding:20px 0 0;justify-content:space-between}.hub-links strong{font-size:1rem}.landing .footer-grid{grid-template-columns:1fr 1fr}.landing .footer-grid>div:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.landing *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Transparent mascot guides; decorative pixels never intercept a click. */
.pus-guide{display:block;object-fit:contain;pointer-events:none;user-select:none;border:0;border-radius:0;background:none;max-width:none}
.guided-action{position:relative;isolation:isolate}
.guided-point{display:flex;align-items:center;gap:8px;margin-top:18px;min-height:132px}
.guided-point .pus-point{width:94px;height:auto;flex-shrink:0}
.guided-point .text-link{white-space:nowrap;gap:10px}
.guided-peek{display:inline-block;padding-top:116px;margin-top:12px}
.guided-peek .pus-peek{position:absolute;bottom:calc(100% - 121px);left:16px;width:116px;height:auto;z-index:2}
.guided-peek .text-link{position:relative;z-index:1;padding:12px 23px;min-width:180px;border:1px solid #bb2649;border-radius:8px;background:#faf3f4;justify-content:space-between}
.guided-cheer{display:flex;align-items:center;gap:16px;max-width:520px;margin-top:15px}
.guided-cheer .pus-cheer{width:125px;height:auto;flex-shrink:0}
.guided-cheer .city-button{flex:1}
@media(max-width:1100px){.guided-point{gap:4px}.guided-point .pus-point{width:70px}.guided-point .text-link{font-size:.8rem;white-space:normal}}
@media(max-width:600px){.start-heading{display:block}.start-heading h2 br{display:block}.guided-point{margin-top:8px;min-height:105px}.guided-point .pus-point{width:78px}.guided-point .text-link{font-size:.9rem}.guided-cheer{gap:8px}.guided-cheer .pus-cheer{width:83px}.guided-cheer .city-button{font-size:.82rem;padding:16px 18px;gap:12px}}
