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

:root{
  --neon:#87ff71;
  --mustard:#ffce5c;
  --ink:#192617;
  --deep:#101a0f;
  --paper:#f2f7ec;
  --dim:#c6d9bd;
  --line:rgba(135,255,113,.3);
  --radius:18px;
  --mast:72px;
  --gut:clamp(14px,4vw,32px);
}

*,*::before,*::after{box-sizing:border-box}

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

body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:'Open Sans','PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,sans-serif;
  font-size:17px;
  line-height:1.7;
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.16;
  background-image:
    repeating-linear-gradient(48deg,rgba(135,255,113,.45) 0 1.5px,transparent 1.5px 24px),
    radial-gradient(circle at 84% 4%,rgba(255,206,92,.32),transparent 46%);
}

header,main,footer{position:relative;z-index:1}

h1,h2,h3,h4{
  font-family:'Poppins','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  line-height:1.2;
  margin:0 0 .55em;
  letter-spacing:-.012em;
}

p{margin:0 0 1em}
img{max-width:100%;height:auto;display:block}
a{color:var(--neon)}
:focus-visible{outline:3px dashed var(--mustard);outline-offset:3px}

.masthead{
  position:sticky;
  top:0;
  z-index:60;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:var(--mast);
  padding:10px var(--gut);
  background:rgba(25,38,23,.9);
  backdrop-filter:blur(10px);
  border-bottom:2px dashed var(--line);
}

.mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:44px;
  height:44px;
  border:2px solid var(--neon);
  border-radius:50%;
  background:rgba(135,255,113,.12);
  color:var(--neon);
  text-decoration:none;
  transform:rotate(-6deg);
  transition:transform .25s ease,background .25s ease;
}
.mark:hover{transform:rotate(6deg) scale(1.06);background:rgba(135,255,113,.22)}
.mark__art{width:30px;height:30px;object-fit:contain;display:block}
.mark__art--glyph{
  width:auto;height:auto;
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:19px;
  line-height:1;
}

.jump{margin-left:auto;min-width:0}
.jump__row{
  margin:0;
  display:flex;
  align-items:center;
  gap:4px;
  overflow-x:auto;
  scrollbar-width:none;
}
.jump__row::-webkit-scrollbar{display:none}
.jump__row a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0 11px;
  white-space:nowrap;
  color:var(--paper);
  font-size:16px;
  text-decoration:none;
  border:1px dashed transparent;
  border-radius:999px;
  transition:color .2s,background .2s,border-color .2s;
}
.jump__row a::before{
  content:"";
  flex:0 0 auto;
  width:7px;
  height:7px;
  margin-right:7px;
  background:var(--neon);
  clip-path:polygon(50% 0,100% 100%,0 100%);
}
.jump__row a:hover,.jump__row a.is-now{
  color:var(--ink);
  background:var(--neon);
  border-color:var(--ink);
}
.jump__row a:hover::before,.jump__row a.is-now::before{background:var(--ink)}

.page{
  max-width:1180px;
  margin:0 auto;
  padding:clamp(18px,4vw,38px) var(--gut) 48px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 264px;
  gap:clamp(18px,3vw,34px);
  align-items:start;
}

.sheet{min-width:0}

.hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(16px,3vw,30px);
  align-items:center;
  min-height:45vh;
  margin:0 0 clamp(22px,3vw,34px);
  padding:clamp(16px,3vw,26px);
  overflow:hidden;
  border:2px solid var(--neon);
  border-radius:var(--radius);
  background:linear-gradient(150deg,rgba(135,255,113,.16),rgba(255,206,92,.12) 72%);
  box-shadow:10px 10px 0 rgba(255,206,92,.4);
}

.hero__art{
  position:relative;
  min-height:190px;
  align-self:stretch;
  overflow:hidden;
  background:var(--mustard);
  clip-path:polygon(0 8%,95% 0,100% 86%,7% 100%);
  transition:transform .4s ease;
}
.hero:hover .hero__art{transform:rotate(-1.2deg) scale(1.02)}
.hero__img{width:100%;height:100%;object-fit:cover}
.hero__blob{
  position:absolute;
  inset:0;
  background:conic-gradient(from 40deg,var(--mustard) 0 25%,var(--neon) 0 50%,var(--mustard) 0 75%,var(--neon) 0);
  opacity:.85;
}

.hero__copy{position:relative;z-index:2;text-align:center}
.hero__h1{font-size:clamp(26px,4.3vw,42px);margin:0 0 .5em}
.hero__h1 span{
  padding:0 .12em;
  background:linear-gradient(transparent 64%,rgba(255,206,92,.5) 0);
}
.hero__lead{margin:0 auto;max-width:40ch;color:var(--dim);font-size:16.5px}

.hero__ghost{
  position:absolute;
  left:8px;
  bottom:-10px;
  z-index:1;
  pointer-events:none;
  white-space:nowrap;
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:clamp(46px,8vw,104px);
  line-height:.85;
  color:rgba(135,255,113,.12);
  -webkit-text-stroke:1.5px rgba(135,255,113,.35);
}

.sheet > div:not(.hero){
  position:relative;
  margin:0 0 clamp(18px,2.5vw,26px);
  padding:clamp(18px,3vw,30px) clamp(16px,2.6vw,28px);
  border:1px dashed var(--line);
  border-radius:var(--radius);
  background:rgba(242,247,236,.05);
  backdrop-filter:blur(6px);
  scroll-margin-top:calc(var(--mast) + 18px);
  transition:border-color .25s,box-shadow .25s,background .25s;
}
.sheet > div:not(.hero):hover{
  border-color:var(--mustard);
  background:rgba(242,247,236,.075);
  box-shadow:6px 6px 0 rgba(135,255,113,.16);
}
.sheet > div:not(.hero)::after{
  content:"";
  position:absolute;
  top:-1px;
  right:16px;
  width:36px;
  height:36px;
  background:var(--mustard);
  opacity:.5;
  border-radius:0 16px 0 0;
  clip-path:polygon(0 0,100% 0,100% 100%);
  pointer-events:none;
}

.sheet h2{font-size:clamp(21px,2.9vw,29px)}
.sheet h2 span{display:inline-block;padding-bottom:.06em;border-bottom:3px solid var(--neon)}
.sheet h3{font-size:clamp(18px,2.2vw,22px);color:var(--mustard)}
.sheet h3 span{display:inline-block;padding-bottom:.1em;border-bottom:2px dotted var(--mustard)}
.sheet p,.sheet li{color:#dde8d6}
.sheet ul,.sheet ol{margin:0 0 1em;padding-left:1.3em}
.sheet li{margin:.35em 0}
.sheet li::marker{color:var(--neon)}
.sheet a{
  color:var(--neon);
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:4px;
}
.sheet a:hover{background:var(--neon);color:var(--ink);text-decoration:none}
.sheet strong{color:var(--neon)}
.sheet blockquote{
  margin:1.2em 0;
  padding:.7em 1em;
  border-left:4px solid var(--mustard);
  border-radius:0 var(--radius) var(--radius) 0;
  background:rgba(255,206,92,.09);
}
.sheet blockquote p:last-child{margin:0}
.sheet hr{margin:1.4em 0;border:0;border-top:2px dotted var(--line)}
.sheet figure{margin:1.2em 0}
.sheet figcaption{font-size:16px;color:var(--dim)}
.sheet table{
  width:100%;
  border-collapse:collapse;
  margin:1.1em 0;
  font-size:16.5px;
}
.sheet th,.sheet td{padding:.5em .7em;border:1px dashed var(--line);text-align:left}
.sheet th{background:rgba(135,255,113,.12);color:var(--neon)}
.sheet code{
  padding:.1em .35em;
  border-radius:6px;
  background:rgba(135,255,113,.14);
  font-size:.94em;
}

.aside{
  position:sticky;
  top:calc(var(--mast) + 16px);
  align-self:start;
  padding:16px 16px 20px;
  border:2px dashed var(--mustard);
  border-radius:var(--radius);
  background:rgba(255,206,92,.07);
}
.aside__title{font-size:17px;margin:0 0 .8em;letter-spacing:.06em}
.aside__title span{display:inline-block;padding-bottom:.15em;border-bottom:3px solid var(--mustard)}
.aside__list{list-style:none;margin:0;padding:0;display:grid}
.aside__list a{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:4px 0;
  color:var(--paper);
  font-size:16px;
  text-decoration:none;
  transition:transform .2s,color .2s;
}
.aside__list a::before{
  content:"";
  flex:0 0 auto;
  width:8px;
  height:8px;
  margin-right:9px;
  background:var(--neon);
  transform:rotate(45deg);
}
.aside__list a:hover{color:var(--neon);transform:translateX(4px)}

.foot{
  margin-top:clamp(26px,5vw,54px);
  border-top:3px solid var(--neon);
  background:linear-gradient(180deg,rgba(135,255,113,.08),transparent 72%);
}
.foot__top{padding:clamp(14px,3vw,22px) var(--gut) 0;overflow:hidden}
.foot__word{
  margin:0;
  font-size:clamp(46px,12.5vw,140px);
  line-height:.85;
  letter-spacing:-.03em;
  white-space:nowrap;
  color:rgba(135,255,113,.16);
  -webkit-text-stroke:2px rgba(135,255,113,.55);
}
.foot__base{
  display:flex;
  flex-wrap:wrap;
  gap:10px 20px;
  justify-content:space-between;
  align-items:center;
  padding:14px var(--gut) 26px;
  border-top:2px dotted var(--line);
}
.foot__copy{margin:0;font-size:16px;color:var(--dim)}
.foot__links{margin:0;display:flex;flex-wrap:wrap;gap:2px}
.foot__links a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 10px;
  font-size:16px;
  color:var(--dim);
  text-decoration:none;
  border-radius:999px;
  border-bottom:2px dotted transparent;
}
.foot__links a:hover{color:var(--ink);background:var(--mustard);border-bottom-color:var(--ink)}

.reveal .sheet > div:not(.hero),
.reveal .aside,
.reveal .foot__word{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1);
}
.reveal .sheet > div:not(.hero).is-in,
.reveal .aside.is-in,
.reveal .foot__word.is-in{opacity:1;transform:none}

@media (max-width:940px){
  .page{grid-template-columns:minmax(0,1fr)}
  .aside{position:static;margin-top:6px}
  .aside__list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 12px}
}

@media (max-width:720px){
  .hero{
    grid-template-columns:minmax(0,1fr);
    min-height:0;
    box-shadow:6px 6px 0 rgba(255,206,92,.4);
  }
  .hero__copy{order:1}
  .hero__art{
    order:2;
    min-height:150px;
    aspect-ratio:16/8;
    clip-path:polygon(0 6%,96% 0,100% 92%,4% 100%);
  }
  .hero__ghost{bottom:-6px;font-size:clamp(38px,12vw,74px)}
  .sheet > div:not(.hero)::after{width:28px;height:28px}
  .foot__base{justify-content:flex-start}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal .sheet > div:not(.hero),
  .reveal .aside,
  .reveal .foot__word{transition:none;opacity:1;transform:none}
  .hero__art,.mark,.jump__row a,.aside__list a{transition:none}
}

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