@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;700&display=swap');

:root{
  --neon:#69ff69;
  --cyan:#00ffff;
  --ink:#172617;
  --deep:#070d07;
  --gum:#ff69b4;
  --panel:#142514;
  --panel2:#0d1a0d;
  --chrome:linear-gradient(180deg,#f4fff5 0%,#c3ecca 26%,#6d8d76 48%,#eafff1 66%,#9dbfa8 100%);
  --fx:"Noto Sans Thai",ui-sans-serif,system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --r:28px;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  font-family:var(--fx);
  font-size:17px;
  line-height:1.7;
  color:#dcf6e1;
  background:
    radial-gradient(880px 520px at 90% -6%,rgba(0,255,255,.20),transparent 62%),
    radial-gradient(760px 520px at 4% 2%,rgba(105,255,105,.18),transparent 60%),
    radial-gradient(620px 420px at 60% 40%,rgba(255,105,180,.10),transparent 65%),
    linear-gradient(180deg,#0b150b,#070d07 46%,#0b160b);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--neon);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--cyan)}

hr{
  border:0;
  height:2px;
  border-radius:2px;
  margin:0 0 18px;
  background:linear-gradient(90deg,var(--neon),var(--cyan),rgba(0,255,255,0));
}

/* 顶栏 */
.top{
  position:sticky;
  top:0;
  z-index:60;
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 14px;
  background:linear-gradient(180deg,rgba(9,18,9,.97),rgba(9,18,9,.86));
  border-bottom:1px solid rgba(105,255,105,.18);
}

.mark{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:14px;
  background:var(--chrome);
  color:var(--ink);
  text-decoration:none;
  box-shadow:0 0 16px rgba(0,255,255,.35);
}
.mark-glyph{
  display:block;
  width:30px;
  height:30px;
  object-fit:contain;
  font-size:19px;
  font-weight:700;
  line-height:30px;
  text-align:center;
  color:var(--ink);
}

.search{flex:1 1 auto;min-width:0;margin:0}
#q{
  width:100%;
  height:44px;
  padding:0 16px;
  font:inherit;
  font-size:16px;
  color:#eaffee;
  background:rgba(0,255,255,.08);
  border:1px solid rgba(0,255,255,.28);
  border-radius:999px;
  outline:none;
}
#q::placeholder{color:#8fc79b}
#q:focus{border-color:var(--neon);box-shadow:0 0 0 3px rgba(105,255,105,.22)}

/* 汉堡 + 全屏遮罩 */
.menu-wrap{flex:0 0 auto}
.menu-wrap>summary{
  list-style:none;
  cursor:pointer;
  padding:11px 18px;
  min-height:44px;
  display:flex;
  align-items:center;
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--ink);
  border-radius:999px;
  background:var(--chrome);
  box-shadow:0 0 18px rgba(105,255,105,.45);
  user-select:none;
}
.menu-wrap>summary::-webkit-details-marker{display:none}
.menu-wrap[open]>summary{position:relative;z-index:102}
.menu-wrap>menu{
  position:fixed;
  inset:0;
  z-index:100;
  margin:0;
  padding:88px 18px 40px;
  list-style:none;
  display:grid;
  gap:8px;
  align-content:start;
  overflow:auto;
  background:
    radial-gradient(700px 420px at 90% 0,rgba(0,255,255,.24),transparent 60%),
    radial-gradient(620px 420px at 0 100%,rgba(105,255,105,.22),transparent 60%),
    rgba(5,10,5,.97);
}
.menu-wrap>menu li a{
  display:block;
  padding:14px 18px;
  min-height:48px;
  border-radius:20px;
  font-size:clamp(18px,5vw,26px);
  font-weight:500;
  color:#e6ffe9;
  text-decoration:none;
  background:linear-gradient(90deg,rgba(105,255,105,.12),rgba(0,255,255,.06));
}
.menu-wrap>menu li a:hover,
.menu-wrap>menu li a:focus-visible{
  background:linear-gradient(90deg,rgba(0,255,255,.30),rgba(255,105,180,.20));
  color:#fff;
  text-shadow:0 0 14px rgba(0,255,255,.9);
}

/* 搜索面板 */
.sr{
  position:fixed;
  z-index:70;
  top:62px;
  left:50%;
  transform:translateX(-50%);
  width:min(92vw,430px);
  max-height:58vh;
  overflow:auto;
  padding:8px;
  border-radius:18px;
  background:rgba(12,24,12,.98);
  box-shadow:0 0 0 1px rgba(0,255,255,.25),0 22px 50px -20px #000;
}
.sr[hidden]{display:none}
.sr button{
  display:block;
  width:100%;
  text-align:left;
  padding:12px 14px;
  min-height:44px;
  margin:0 0 4px;
  font:inherit;
  font-size:16px;
  color:#dcf6e1;
  background:rgba(105,255,105,.08);
  border:0;
  border-radius:12px;
  cursor:pointer;
}
.sr button:hover{background:rgba(0,255,255,.20);color:#fff}

/* 主区 */
main{
  max-width:1180px;
  margin:0 auto;
  padding:18px clamp(12px,3vw,28px) 44px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 288px;
  gap:18px 22px;
  align-items:start;
}

main>div{
  grid-column:1;
  margin:0;
  padding:clamp(20px,3.4vw,34px);
  border-radius:var(--r);
  background:linear-gradient(180deg,rgba(24,42,24,.94),rgba(13,25,13,.94));
  box-shadow:0 0 0 1px rgba(105,255,105,.10),0 22px 48px -32px rgba(105,255,105,.9);
  scroll-margin-top:86px;
  overflow:hidden;
}

main>div>h2{
  margin:0 0 10px;
  font-size:clamp(22px,3.6vw,31px);
  line-height:1.3;
  color:#edffef;
  text-shadow:0 0 16px rgba(0,255,255,.35);
}
main>div>h2+hr{height:3px;margin:0 0 18px;border-radius:3px}
main>div>h3{
  margin:26px 0 8px;
  font-size:clamp(18px,2.6vw,22px);
  color:#d6ffdc;
}
main>div>h3+hr{height:2px;margin:0 0 14px}
main>div p{margin:0 0 14px;max-width:66ch}
main>div ul,
main>div ol{margin:0 0 16px;padding-left:22px}
main>div li{margin:0 0 8px}
main>div li::marker{color:var(--cyan)}
main>div figure{margin:16px 0}
main>div blockquote{
  margin:16px 0;
  padding:14px 18px;
  border-left:3px solid var(--neon);
  border-radius:0 18px 18px 0;
  background:rgba(105,255,105,.08);
}
main>div blockquote p:last-child{margin:0}
main>div table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:16px}
main>div th,
main>div td{padding:10px 12px;text-align:left;background:rgba(105,255,105,.07)}
main>div th{color:#eaffee;background:rgba(0,255,255,.12)}
main>div img{max-width:100%;height:auto;border-radius:18px;display:block}

/* 主视觉 */
.hero{
  grid-column:1/-1;
  position:relative;
  display:grid;
  grid-template-columns:1.06fr .94fr;
  gap:clamp(16px,3vw,34px);
  align-items:center;
  min-height:70vh;
  padding:clamp(26px,4.6vw,54px);
  border-radius:var(--r);
  background:
    radial-gradient(520px 320px at 84% 20%,rgba(255,105,180,.22),transparent 66%),
    linear-gradient(135deg,rgba(105,255,105,.20),rgba(0,255,255,.16) 56%,rgba(255,105,180,.14));
  box-shadow:0 0 0 1px rgba(0,255,255,.18),0 24px 60px -34px rgba(0,255,255,1);
  overflow:hidden;
  isolation:isolate;
}
.hero::before{
  content:"★";
  position:absolute;
  right:clamp(4px,6vw,40px);
  bottom:clamp(-30px,-2vw,0px);
  z-index:0;
  font-size:clamp(180px,34vw,430px);
  line-height:.8;
  color:transparent;
  -webkit-text-stroke:2px rgba(0,255,255,.35);
  pointer-events:none;
  opacity:.7;
}
.hero-copy{position:relative;z-index:2;text-align:center}
.hero h1{
  margin:0 0 16px;
  font-size:clamp(27px,5.2vw,52px);
  line-height:1.16;
  letter-spacing:.01em;
  background:linear-gradient(180deg,#ffffff,#d6ffdf 34%,#69ff69 64%,#00ffff);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 16px rgba(105,255,105,.55));
}
.lede{
  margin:0 auto;
  max-width:34ch;
  font-size:clamp(16px,1.6vw,18px);
  color:#d8f6df;
  text-shadow:0 0 12px rgba(0,0,0,.55);
}

.hero-art{
  position:relative;
  z-index:1;
  margin:0;
  aspect-ratio:1/1;
  max-height:60vh;
  border-radius:var(--r);
  overflow:hidden;
  background:
    conic-gradient(from 210deg,rgba(0,255,255,.55),rgba(105,255,105,.45),rgba(255,105,180,.45),rgba(0,255,255,.55));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.30),0 0 40px -10px rgba(0,255,255,.7);
}
.hero-img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:luminosity}
.bubble{
  position:absolute;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#ffffff,rgba(105,255,105,.75) 44%,rgba(0,255,255,.55) 74%,rgba(255,105,180,.5));
  box-shadow:0 0 22px rgba(0,255,255,.6);
  opacity:.85;
  pointer-events:none;
}
.b1{width:72px;height:72px;left:8%;top:12%}
.b2{width:38px;height:38px;right:14%;bottom:20%}
.b3{width:22px;height:22px;right:26%;top:16%}

/* 侧栏 */
main>aside{
  grid-column:2;
  grid-row:2/span 40;
  position:sticky;
  top:82px;
  align-self:start;
  padding:18px 16px;
  border-radius:var(--r);
  background:linear-gradient(180deg,rgba(16,30,16,.97),rgba(10,20,10,.97));
  box-shadow:0 0 0 1px rgba(0,255,255,.16);
}
.rail h2{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:.16em;
  color:#d9fdff;
}
.rail ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rail ul a{
  display:block;
  padding:11px 12px;
  min-height:44px;
  border-radius:14px;
  font-size:16px;
  color:#d6f6db;
  text-decoration:none;
  background:rgba(105,255,105,.08);
}
.rail ul a:hover{background:rgba(0,255,255,.20);color:#fff}
.rail-foot{margin:14px 0 0;font-size:16px;text-align:center}
.rail-foot a{padding:8px 0;display:inline-block;min-height:40px;color:#9fe6ae}

/* 页脚 */
footer{
  background:linear-gradient(180deg,rgba(8,16,8,.35),rgba(5,11,5,.96));
  padding:36px clamp(14px,3vw,28px) 26px;
  border-top:1px solid rgba(105,255,105,.16);
}
.f-cols{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.f-cols dl{margin:0}
.f-cols dt{
  margin:0 0 8px;
  font-size:16px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--cyan);
  text-shadow:0 0 12px rgba(0,255,255,.5);
}
.f-cols dd{margin:0}
.f-cols dd a{
  display:inline-block;
  padding:10px 0;
  min-height:44px;
  font-size:16px;
  color:#cfeeda;
  text-decoration:none;
}
.f-cols dd a:hover{color:var(--neon)}
.copy{
  max-width:1180px;
  margin:26px auto 0;
  padding-top:18px;
  text-align:center;
  font-size:16px;
  color:#9dc0a4;
  border-top:1px solid rgba(105,255,105,.14);
}

/* 滚动出现 */
.rv{opacity:0;transform:translateY(20px);transition:opacity .62s ease,transform .62s cubic-bezier(.2,.7,.3,1);transition-delay:calc(var(--i,0) * 70ms)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
}

/* 移动端 */
@media (max-width:880px){
  main{grid-template-columns:minmax(0,1fr)}
  main>div,
  main>aside,
  .hero{grid-column:1}
  main>aside{grid-row:auto;position:static;margin-top:6px}
  .hero{grid-template-columns:1fr;min-height:0;padding:clamp(22px,5vw,30px);text-align:center}
  .hero-art{aspect-ratio:4/3;max-height:280px;margin-top:18px}
  .hero::before{font-size:clamp(150px,42vw,260px);right:auto;left:50%;transform:translateX(-50%);bottom:-26px;opacity:.45}
  .f-cols{grid-template-columns:1fr;gap:16px}
  .rail ul{grid-template-columns:1fr 1fr}
}

@media (max-width:420px){
  body{font-size:16px}
  .mark{width:42px;height:42px}
  .menu-wrap>summary{padding:11px 14px}
  .rail ul{grid-template-columns:1fr}
}

button[aria-expanded]{min-width:44px;min-height:44px}
