:root{
  --y:#ffd43b; --y2:#fff6d0; --g:#1f4d2b; --g2:#2f7a3e; --ink:#101410; --mut:#5f665c;
  --line:#e8e6df; --bg:#ffffff;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6;
  font-family:'Instrument Sans',system-ui,-apple-system,sans-serif;font-size:16.5px;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}

/* header */
.top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:14px 32px;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600}
.brand img{height:26px}
.x{color:#b9bdb5}
.dcg{letter-spacing:.01em}
nav{display:flex;gap:20px;flex-wrap:wrap}
nav a{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);text-decoration:none;position:relative;padding:4px 0;transition:color .25s var(--ease)}
nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--g2);transition:right .3s var(--ease)}
nav a:hover{color:var(--g)}
nav a:hover::after{right:0}

/* layout */
.wrap{max-width:1180px;margin:0 auto;padding:96px 32px}
section.band{background:#fbfaf5}
section.band .wrap{padding:96px 32px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.mt{margin-top:56px}
h1{font-size:clamp(40px,6vw,74px);line-height:1.02;margin:.16em 0 .4em;font-weight:700;letter-spacing:-.025em}
h2{font-size:clamp(27px,3.3vw,41px);line-height:1.13;margin:.22em 0 .7em;font-weight:700;letter-spacing:-.02em;max-width:920px}
h3{font-size:18.5px;margin:.3em 0 .45em;font-weight:600;letter-spacing:-.01em}
.hand{font-family:'Caveat',cursive;color:var(--g2);font-weight:700;font-size:1.12em}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--g2);font-weight:600;margin:0}
.num{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--g2);font-weight:600;margin:0 0 .2em}
.lead{font-size:19.5px;color:#333a30;max-width:590px}
.note{background:#fff;border-left:3px solid var(--y);border-radius:10px;padding:14px 18px;font-size:15px;line-height:1.55}
section.band .note{background:#fff}
.small{font-size:13.5px;color:var(--mut);line-height:1.55}
figure{margin:0}
figure img{border-radius:18px}
figcaption{font-size:13.5px;color:var(--mut);margin-top:10px;line-height:1.5}

/* hero */
.hero{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:64px 32px 84px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0 34px}
.stats div{border-top:2px solid var(--y);padding-top:12px}
.stats b{display:block;font-size:23px;letter-spacing:-.02em}
.stats span{font-size:13px;color:var(--mut);line-height:1.4;display:block;margin-top:2px}
.btn{display:inline-block;background:var(--g);color:#fff;text-decoration:none;padding:15px 26px;border-radius:999px;font-weight:600;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(31,77,43,.7);background:#173c21}
.hero-img img{box-shadow:0 40px 70px -40px rgba(0,0,0,.4)}

/* cards */
.scope{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.scope div,.cards3 div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.scope div:hover,.cards3 div:hover{transform:translateY(-4px);box-shadow:0 22px 40px -30px rgba(0,0,0,.45);border-color:#dfe3d6}
.scope p,.cards3 p{margin:0;color:#3d443b;font-size:14.8px;line-height:1.55}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}

/* image grids */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.grid4 img{height:300px;width:100%;object-fit:cover}
.grid3 img{height:260px;width:100%;object-fit:cover}
.varied img{height:340px;object-position:top center}
.layered img{height:280px}
figure.zoom{overflow:hidden;border-radius:18px}
figure.zoom img{transition:transform .6s var(--ease)}
figure.zoom:hover img{transform:scale(1.04)}
.grid4 figure,.grid3 figure{overflow:hidden;border-radius:18px}
.grid4 figure img,.grid3 figure img{transition:transform .6s var(--ease)}
.grid4 figure:hover img,.grid3 figure:hover img{transform:scale(1.035)}

/* venues */
.venues{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:8px}
.venues article{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.venues article:hover{transform:translateY(-4px);box-shadow:0 26px 50px -36px rgba(0,0,0,.5)}
.venues article img{height:270px;width:100%;object-fit:cover;border-radius:0}
.venues article h3,.venues article p,.venues article ul{margin-left:24px;margin-right:24px}
.venues ul{padding-left:18px;margin-bottom:24px}
.venues li{margin-bottom:6px;font-size:15px}
.addr{color:var(--mut);font-size:14px;margin-top:0}

/* flow */
.flow{display:grid;grid-template-columns:1fr 400px;gap:44px;align-items:start;margin-top:26px}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.steps button{width:100%;text-align:left;display:flex;gap:15px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:15px 18px;font:inherit;cursor:pointer;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.steps button:hover{transform:translateX(3px)}
.steps button .n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--y2);display:grid;place-items:center;font-weight:700;color:var(--g);font-size:14px;transition:background .25s var(--ease),color .25s var(--ease)}
.steps button.on{border-color:var(--g);box-shadow:0 0 0 2px var(--g) inset}
.steps button.on .n{background:var(--g);color:#fff}
.steps b{display:block;font-size:16px}
.steps small{color:var(--mut);font-size:14px;line-height:1.5;display:block;margin-top:2px}
.device{background:#151714;border-radius:30px;padding:16px;position:sticky;top:94px;box-shadow:0 40px 70px -46px rgba(0,0,0,.8)}
.screen{aspect-ratio:820/1180;border-radius:16px;overflow:hidden;position:relative;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:22px;gap:12px;background:linear-gradient(165deg,#fff8d4,#ffd43b)}
.screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.screen .t1{font-family:'Caveat',cursive;font-size:48px;line-height:.95;color:var(--g);font-weight:700}
.screen .sub{color:var(--g);font-size:14px;line-height:1.45;max-width:86%}
.screen .b{background:var(--g);color:#fff;border-radius:999px;padding:11px 28px;font-weight:600;font-size:14px}
.screen .b2{background:#fff;color:var(--g);border:2px solid var(--g)}
.screen .ghost{border:2px solid var(--g);color:var(--g);border-radius:999px;padding:9px 24px;font-weight:600;font-size:14px;background:transparent}
.screen .field{background:#fff;border-radius:10px;padding:13px;width:86%;color:#9aa196;font-size:14px;letter-spacing:.22em}
.screen .opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.screen .opt{background:#fff;border-radius:12px;padding:8px;font-size:12px;color:var(--g);border:2px solid transparent}
.screen .opt.sel{border-color:var(--g)}
.screen .opt img{position:static;width:100%;height:96px;object-fit:cover;border-radius:8px;margin-bottom:6px}
.screen .stickers{display:flex;gap:8px;justify-content:center}
.screen .st{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:11.5px;font-weight:600;color:var(--g);padding:8px 14px;border-radius:999px;border:1px solid #ecdfa6;background:#fff}
.screen .st1{background:#fff3c9}
.screen .st2{background:#e3f5e2}
.screen .st3{background:#fff}
.screen .cam{width:86%;aspect-ratio:3/4;border-radius:14px;background:#2a2d29 url(assets/output-portrait.jpg) center/cover;position:relative;overflow:hidden}
.screen .cd{position:absolute;inset:0;display:grid;place-items:center;font-size:82px;color:#fff;font-weight:700;text-shadow:0 6px 26px rgba(0,0,0,.45)}
.screen .qr{width:104px;height:104px;background:repeating-conic-gradient(#1f4d2b 0 25%,#fff 0 50%) 0 0/20px 20px;border:7px solid #fff;border-radius:10px}
.caption{color:#e6e9df;font-size:14px;margin:14px 4px 2px;line-height:1.5;min-height:42px}
.insight{margin-top:32px;background:var(--y2);border-radius:18px;padding:20px 24px;font-size:15.5px}

/* lists */
.big,.redeem{padding-left:20px;margin:0}
.big li{margin-bottom:12px;font-size:17px}
.redeem li{margin-bottom:15px;font-size:16px}
.stack{display:grid;gap:18px}
.check{list-style:none;padding:0;margin:.4em 0 0}
.check li{padding:9px 0 9px 30px;position:relative;border-bottom:1px dashed var(--line);font-size:15.5px}
.check li::before{content:"✓";position:absolute;left:5px;color:var(--g2);font-weight:700}
.mini{border-collapse:collapse;margin-top:10px}
.mini td{padding:9px 20px 9px 0;border-bottom:1px solid var(--line);font-size:15px}
.mini td:first-child{color:var(--mut);padding-right:28px}

/* table */
.table-wrap{overflow-x:auto;margin-top:36px;border-radius:18px}
.spec{width:100%;border-collapse:collapse;background:#fff;font-size:15px;min-width:720px}
.spec th{background:var(--g);color:#fff;text-align:left;padding:14px 16px;font-weight:600;font-size:13.5px;letter-spacing:.04em}
.spec td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.spec tr{transition:background .2s var(--ease)}
.spec tbody tr:hover{background:#fcfbf6}

/* timeline */
.tl{list-style:none;padding:0;margin:30px 0 0;border-left:3px solid var(--y)}
.tl li{display:grid;grid-template-columns:170px 1fr 210px;gap:18px;padding:15px 0 15px 24px;position:relative;border-bottom:1px solid var(--line)}
.tl li::before{content:"";position:absolute;left:-10px;top:21px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--y);transition:transform .3s var(--ease)}
.tl li:hover::before{transform:scale(1.25)}
.tl li.key::before{background:var(--g);border-color:var(--g)}
.tl li.key b{color:var(--g)}
.tl time{font-weight:600}
.tl span{color:var(--mut);font-size:14px}

/* proof */
.proof{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.proof div{border-top:3px solid var(--g);padding-top:14px}
.proof b{font-size:38px;display:block;letter-spacing:-.03em}
.proof span{font-size:14px;color:var(--mut);line-height:1.45;display:block;margin-top:4px}

.nextlist li{font-size:17.5px;margin-bottom:12px}
.next{padding-top:84px;padding-bottom:110px}

footer{border-top:1px solid var(--line);padding:40px 32px;text-align:center;color:var(--mut);font-size:14px}
footer img{height:28px;margin:0 auto 12px}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{scroll-behavior:auto!important}
}

@media (max-width:980px){
  .hero,.two,.flow,.venues{grid-template-columns:1fr}
  .scope,.grid4,.proof,.stats{grid-template-columns:1fr 1fr}
  .cards3,.grid3{grid-template-columns:1fr}
  .tl li{grid-template-columns:1fr;gap:4px}
  nav{display:none}
  .device{position:static;max-width:400px}
  .wrap,section.band .wrap,.hero{padding-left:20px;padding-right:20px}
  .top{padding:12px 20px}
}
