
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --paper:#f6f1e7;
  --ink:#111111;
  --blue:#1d2eff;
  --red:#ff5c35;
  --mint:#aef4dd;
  --yellow:#ffe35b;
  --white:#fffdf8;
  --muted:#6b665e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.wrap{width:min(1240px,calc(100% - 40px));margin:auto}

/* asymmetrical ticket header */
.header{
  position:sticky;top:0;z-index:80;background:rgba(246,241,231,.93);backdrop-filter:blur(14px);
  border-bottom:2px solid var(--ink)
}
.header-grid{min-height:88px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.logo-text{font-weight:900;letter-spacing:-.03em}
.header-center{font:600 10px/1 "IBM Plex Mono";letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--ink);padding:10px 14px;background:var(--yellow)}
.nav{justify-self:end;display:flex;gap:8px}
.nav a{border:1.5px solid var(--ink);padding:10px 14px;font:600 10px "IBM Plex Mono";text-transform:uppercase;background:var(--white)}
.nav a:hover{background:var(--mint)}
.menu{display:none}

/* Hero = travel bureau poster */
.hero{border-bottom:2px solid var(--ink);padding:0}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;min-height:760px}
.hero-copy{padding:72px 58px 62px 0;border-right:2px solid var(--ink);display:flex;flex-direction:column;justify-content:space-between}
.hero-topline{font:600 11px "IBM Plex Mono";text-transform:uppercase;color:var(--blue);letter-spacing:.15em}
.hero h1{
  font-size:clamp(76px,9.6vw,150px);line-height:.8;letter-spacing:-.075em;text-transform:uppercase;
  margin:28px 0 30px;font-weight:900
}
.hero h1 span{display:inline-block;background:var(--red);color:white;padding:0 .04em}
.hero p{max-width:680px;font-size:18px;line-height:1.72;color:var(--muted)}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ticket-btn{display:inline-flex;gap:18px;align-items:center;background:var(--blue);color:white;border:2px solid var(--ink);padding:15px 18px;font-weight:800}
.ticket-btn.alt{background:var(--white);color:var(--ink)}
.hero-meta{font:500 10px/1.65 "IBM Plex Mono";text-transform:uppercase;color:var(--muted);margin-left:auto;text-align:right}

.hero-media{position:relative;background:var(--mint);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:36px}
.hero-media:before{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:var(--yellow);top:-110px;right:-80px;border:2px solid var(--ink)}
.hero-media:after{content:"";position:absolute;width:220px;height:220px;background:var(--red);bottom:-80px;left:-60px;transform:rotate(18deg);border:2px solid var(--ink)}
.hero-media img{width:92%;position:relative;z-index:2;border:2px solid var(--ink);box-shadow:20px 20px 0 var(--ink);animation:float 6s ease-in-out infinite}
.hero-label{position:absolute;top:24px;left:24px;z-index:3;background:var(--white);border:2px solid var(--ink);padding:10px 12px;font:600 10px "IBM Plex Mono";text-transform:uppercase}

/* ticker */
.ticker{background:var(--blue);color:white;border-bottom:2px solid var(--ink);overflow:hidden}
.ticker-run{display:flex;width:max-content;animation:marquee 22s linear infinite}
.ticker span{padding:14px 28px;font:600 10px "IBM Plex Mono";letter-spacing:.12em;text-transform:uppercase}

/* studio capabilities = horizontal offset panels */
section{padding:100px 0}
.headline{display:grid;grid-template-columns:170px 1fr;gap:30px;align-items:end;margin-bottom:48px}
.code{font:600 11px "IBM Plex Mono";text-transform:uppercase;color:var(--muted)}
.headline h2{font-size:clamp(50px,7vw,94px);line-height:.86;letter-spacing:-.065em;text-transform:uppercase;margin:0}

.cap-stack{display:flex;flex-direction:column;gap:12px}
.cap{
  display:grid;grid-template-columns:90px 1fr 1fr;gap:25px;padding:26px 30px;border:2px solid var(--ink);
  background:var(--white);align-items:start;transition:.25s
}
.cap:nth-child(2){margin-left:7%;background:var(--mint)}
.cap:nth-child(3){margin-left:14%;background:var(--yellow)}
.cap:nth-child(4){margin-left:21%;background:#ffd3c7}
.cap:hover{transform:translateX(8px)}
.cap .num{font:600 11px "IBM Plex Mono"}.cap h3{font-size:30px;margin:0;letter-spacing:-.03em}.cap p{margin:0;color:var(--muted);line-height:1.65}

/* product = brochure spread */
.product{background:var(--white);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.product-top{display:grid;grid-template-columns:.9fr 1.1fr;gap:45px;align-items:end}
.product-title{font-size:clamp(60px,8vw,112px);line-height:.84;letter-spacing:-.07em;text-transform:uppercase;margin:0}
.product-copy p{color:var(--muted);line-height:1.72;margin:0}
.pills{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.pills span{border:1.5px solid var(--ink);padding:8px 10px;font:500 10px "IBM Plex Mono";background:var(--paper)}
.store{display:inline-block;background:var(--red);color:white;border:2px solid var(--ink);padding:14px 17px;font-weight:800}
.screens{margin-top:48px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.screen-card{border:2px solid var(--ink);background:var(--paper);padding:14px;display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start}
.screen-card:nth-child(2){background:var(--mint)}.screen-card:nth-child(3){background:var(--yellow)}.screen-card:nth-child(4){background:#ffd3c7}
.screen-card img{width:110px;height:220px;object-fit:cover;object-position:top;border:1.5px solid var(--ink)}
.screen-card small{font:600 10px "IBM Plex Mono";text-transform:uppercase;color:var(--muted)}.screen-card h4{font-size:27px;margin:18px 0 8px}.screen-card p{margin:0;color:var(--muted);line-height:1.55;font-size:13px}

/* banner */
.banner{padding:0;background:var(--blue);border-bottom:2px solid var(--ink)}
.banner img{width:100%;max-height:520px;object-fit:cover;mix-blend-mode:normal}

/* method = numbered boarding passes */
.method{background:var(--paper)}
.boarding{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.pass{min-height:300px;border:2px solid var(--ink);background:var(--white);padding:24px;position:relative;display:flex;flex-direction:column;justify-content:space-between}
.pass:before,.pass:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);top:48%;transform:translateY(-50%)}
.pass:before{left:-13px}.pass:after{right:-13px}
.pass:nth-child(2){background:var(--mint)}.pass:nth-child(3){background:var(--yellow)}.pass:nth-child(4){background:#ffd3c7}
.pass span{font:600 10px "IBM Plex Mono";text-transform:uppercase}.pass h3{font-size:30px;line-height:1.05;margin:0}.pass p{font-size:13px;line-height:1.55;color:var(--muted);margin:0}

/* contact = split terminal */
.contact{padding:0}
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;background:var(--ink);color:white;border-top:2px solid var(--ink)}
.contact-left{padding:58px 48px}.contact-left h2{font-size:clamp(54px,7vw,100px);line-height:.85;letter-spacing:-.07em;text-transform:uppercase;margin:0}
.contact-right{background:var(--blue);padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.contact-line{display:grid;grid-template-columns:100px 1fr;gap:18px;border-bottom:1px solid rgba(255,255,255,.5);padding:13px 0}.contact-line span{font:600 10px "IBM Plex Mono";text-transform:uppercase}.contact-line strong{font-size:14px}

/* footer */
footer{background:var(--yellow);border-top:2px solid var(--ink);padding:40px 0 22px}
.footer-top{display:grid;grid-template-columns:1.2fr .7fr .7fr;gap:30px}.footer-logo{max-width:370px}.footer-top p,.footer-top a,.footer-top span{font-size:12px;line-height:1.7;color:#4f4b43}
.footer-col strong{display:block;font:600 10px "IBM Plex Mono";text-transform:uppercase;margin-bottom:10px;color:var(--ink)}
.footer-bottom{margin-top:26px;padding-top:16px;border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:20px;font-size:11px}.footer-bottom a{text-decoration:underline}

/* privacy */
.policy-shell{padding:78px 0 110px}
.policy-hero{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:end;margin-bottom:44px}.policy-hero h1{font-size:clamp(66px,8vw,110px);line-height:.82;text-transform:uppercase;letter-spacing:-.07em;margin:0}.policy-hero p{margin:0;line-height:1.7;color:var(--muted)}
.policy-grid{display:grid;grid-template-columns:250px minmax(0,820px);gap:42px}.toc{position:sticky;top:110px;align-self:start;border:2px solid var(--ink);background:var(--mint);padding:18px}.toc strong{font:600 10px "IBM Plex Mono";text-transform:uppercase}.toc a{display:block;padding:8px 0;border-bottom:1px solid var(--ink);font-size:12px}
.policy-copy{border:2px solid var(--ink);background:var(--white);padding:34px}.policy-copy section{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid #bbb}.policy-copy section:last-child{border:0;margin:0}.policy-copy h2{font-size:24px;margin:0 0 10px}.policy-copy p{line-height:1.78;color:#5c574f;margin:0}.policy-copy a{color:var(--blue);text-decoration:underline}

.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}.reveal.on{opacity:1;transform:none}
@keyframes float{50%{transform:translateY(-14px) rotate(.5deg)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:980px){
  .header-grid{grid-template-columns:1fr auto}.header-center,.nav{display:none}.menu{display:block;border:1.5px solid;background:var(--white);width:44px;height:44px}
  .hero-grid,.headline,.product-top,.contact-grid,.policy-hero,.policy-grid{grid-template-columns:1fr}.hero-copy{border-right:0;border-bottom:2px solid var(--ink);padding-right:0}.hero-media{min-height:600px}
  .cap:nth-child(n){margin-left:0}.screens{grid-template-columns:1fr}.boarding{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1fr 1fr}.toc{position:static}
}
@media(max-width:640px){
  .wrap{width:calc(100% - 24px)}.hero h1{font-size:58px}.hero-meta{display:none}.hero-media{min-height:430px;padding:24px}
  .cap{grid-template-columns:55px 1fr}.cap p{grid-column:2}.screen-card{grid-template-columns:90px 1fr}.screen-card img{width:90px;height:180px}
  .boarding{grid-template-columns:1fr}.contact-left,.contact-right{padding:32px 22px}.contact-line{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.policy-copy{padding:22px}
}
