@font-face{font-family:Nunito;font-weight:600;font-display:swap;src:url("fonts/Nunito-SemiBold.ttf") format("truetype")}
@font-face{font-family:Nunito;font-weight:800;font-display:swap;src:url("fonts/Nunito-ExtraBold.ttf") format("truetype")}
:root{--bg:#04070d;--bg2:#0a1424;--text:#fff;--text2:#cfe6f7;--muted:rgba(207,230,247,.74);--card:rgba(255,255,255,.07);--line:rgba(255,255,255,.13);--accent:#7cf2c9;--top:#4fc3f7;--bottom:#0b4fa8;--link:#7cd3ff;--hero:#0b4fa8;color-scheme:dark light}
@media(prefers-color-scheme:light){:root{--bg:#f5faff;--bg2:#e6f2fd;--text:#0b1f33;--text2:#27445f;--muted:#4a6680;--card:#fff;--line:rgba(11,31,51,.12);--accent:#0a8f67;--link:#0b5fb8;--hero:#8fd3fb}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:600 17px/1.6 Nunito,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Noto Sans CJK SC","Hiragino Sans","Noto Sans Devanagari","Noto Sans Thai",sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--link)}
img{max-width:100%;height:auto}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--card);padding:8px 12px;border-radius:8px;z-index:9}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:800;font-size:20px}
.brand img{width:36px;height:36px;border-radius:9px}
.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.nav a{color:var(--text2);text-decoration:none;font-size:15px}
.nav a:hover{color:var(--text)}
details.lang{position:relative}
details.lang summary{cursor:pointer;list-style:none;color:var(--text2);font-size:15px;border:1px solid var(--line);border-radius:999px;padding:4px 12px}
details.lang summary::-webkit-details-marker{display:none}
details.lang ul{position:absolute;right:0;top:36px;z-index:5;margin:0;padding:8px;list-style:none;background:var(--bg2);border:1px solid var(--line);border-radius:14px;min-width:220px;max-height:60vh;overflow:auto;box-shadow:0 12px 36px rgba(0,0,0,.35)}
details.lang li a{display:block;padding:6px 10px;border-radius:8px;color:var(--text);text-decoration:none;font-size:15px}
details.lang li a:hover,details.lang li a[aria-current]{background:var(--card)}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg) 0%,var(--hero) 140%);padding:36px 0 0}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center}
.hero h1{font-size:clamp(38px,6vw,64px);line-height:1.05;margin:0 0 10px;font-weight:800;letter-spacing:-.5px}
.hero .sub{font-size:clamp(19px,2.6vw,25px);color:var(--text2);margin:0 0 14px;font-weight:800}
.hero p{margin:0 0 18px;color:var(--text2);max-width:34em}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 6px;padding:0;list-style:none}
.pills li{border:1px solid var(--line);background:var(--card);padding:5px 14px;border-radius:999px;font-size:15px}
.badges{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.button{display:inline-block;background:#fff;color:#0b4fa8;text-decoration:none;font-weight:800;padding:12px 22px;border-radius:999px}
.hero-shot{justify-self:center;width:min(300px,70vw);border-radius:58px;border:3px solid rgba(255,255,255,.18);background:#000;box-shadow:0 30px 70px rgba(0,0,0,.45);overflow:hidden}
.hero-shot img{display:block;width:100%}
.waves{display:block;width:200%;height:70px;margin-top:-10px;animation:drift 14s linear infinite}
.waves path{fill:var(--bg)}
@keyframes drift{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.waves{animation:none}}

/* sections */
section{padding:44px 0}
h2{font-size:clamp(26px,3.4vw,36px);line-height:1.15;margin:0 0 22px;font-weight:800}
.shots{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px 22px;margin:0 -20px}
.shots figure{flex:0 0 auto;margin:0;scroll-snap-align:center;width:210px;border-radius:40px;overflow:hidden;background:#000;border:2px solid var(--line);box-shadow:0 14px 34px rgba(0,0,0,.28)}
.shots img{display:block;width:100%}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.grid li{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px 16px 52px;position:relative}
.grid li::before{content:"";position:absolute;left:18px;top:19px;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0,var(--top) 35%,var(--bottom) 100%)}
.grid li.strong{border-color:var(--accent)}
ol.steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;counter-reset:s}
ol.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px}
ol.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,var(--top),var(--bottom));color:#fff;font-weight:800;margin-bottom:10px}
.note{color:var(--muted);font-size:15px;max-width:46em}

/* text pages */
.doc{max-width:760px;margin:0 auto;padding:30px 20px 60px}
.doc h1{font-size:clamp(32px,5vw,46px);line-height:1.1;margin:10px 0 6px;font-weight:800}
.doc h2{font-size:24px;margin:34px 0 8px}
.doc p,.doc li{color:var(--text2)}
.doc .lead{font-size:20px;color:var(--text)}
.doc .meta{color:var(--muted);font-size:15px;margin:0 0 20px}
.doc ul{padding-left:22px}
.doc details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:10px 0}
.doc summary{cursor:pointer;font-weight:800;color:var(--text)}
.doc details p{margin:10px 0 2px}
.back{display:inline-block;margin-top:14px;text-decoration:none;font-size:15px}

/* footer */
footer{border-top:1px solid var(--line);padding:28px 0 40px;color:var(--muted);font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between}
footer nav{display:flex;gap:18px;flex-wrap:wrap}
footer a{color:var(--text2)}

@media(max-width:760px){.hero .wrap{grid-template-columns:1fr}.hero-shot{order:-1;width:230px;border-radius:46px}.top{padding:12px 0}}
.pills a{color:inherit;text-decoration:none}
.pills li:has(a):hover{border-color:var(--accent)}
.pills li:has(a){border-color:var(--accent);cursor:pointer}
.pills li a::after{content:" ↗";opacity:.7;font-size:.85em}
