@font-face{font-family:"Gloock";src:url(/fonts/Gloock-Regular.ttf);font-display:swap}
@font-face{font-family:"Cinzel";src:url(/fonts/Cinzel-VariableFont_wght.ttf);font-weight:400 900;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter-VariableFont_opsz,wght.ttf);font-weight:100 900;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 var(--t-base)/var(--lh-body) var(--f-body);overflow-wrap:break-word}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:4px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}
h1,h2,h3{font-family:var(--f-display);font-weight:400;margin:0;letter-spacing:-.01em}
h1{font-size:var(--t-h1);line-height:var(--lh-tight);letter-spacing:-.02em}
h2{font-size:var(--t-h2);line-height:var(--lh-head)}
h3{font-size:var(--t-h3);line-height:1.2}
p{margin:0 0 var(--s3)}
.wrap{max-width:calc(var(--wrap) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px}
.label{font-family:var(--f-label);font-weight:700;font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;line-height:1.5;display:flex;align-items:center;gap:12px;margin:0 0 var(--s4)}
.label::before{content:"";width:32px;height:var(--rule);background:var(--accent);flex:none}
.on-ink .label::before,.on-day .label::before{background:currentColor}
.lede{font-size:var(--t-lg);line-height:1.5;max-width:40ch}
/* announcement */
.announce{background:var(--c-ink);color:var(--c-white);font-size:var(--t-sm);text-align:center;padding:10px var(--gutter)}
.announce b{color:var(--c-daylight);font-weight:600}
/* header */
.hdr{border-bottom:var(--rule) solid var(--c-ink);background:var(--c-white)}
.hdr .wrap{display:flex;align-items:center;gap:var(--s4);min-height:84px}
.logo img{height:52px;width:auto}
.nav{display:flex;gap:4px;margin-left:auto;list-style:none;padding:0;margin-top:0;margin-bottom:0}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;font-weight:500;font-size:16px}
.nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--c-ember);text-decoration-thickness:3px}
.menu{display:none;min-height:44px;min-width:44px;border:2px solid var(--c-ink);background:none;font:600 14px var(--f-body);color:var(--c-ink);padding:0 12px}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:var(--tap);padding:0 24px;background:var(--c-ink);color:var(--c-white);font:600 17px/1.2 var(--f-body);text-decoration:none;border:var(--rule) solid var(--c-ink);transition:transform var(--ease)}
.btn svg{flex:none}
.btn-sm{min-height:44px;padding:0 16px;font-size:16px}
.on-ink .btn{background:var(--c-daylight);color:var(--c-ink);border-color:var(--c-daylight)}
.btn-big{min-height:64px;font-size:19px;padding:0 28px}
.tlink{font-weight:600;display:inline-flex;align-items:center;min-height:44px}
/* sections */
.sec{padding:var(--s8) 0;border-bottom:var(--rule) solid var(--c-ink)}
.sec.alt{background:var(--c-clear)}
.on-day{background:var(--c-daylight);color:var(--c-ink)}
.on-ink{background:var(--c-ink);color:var(--c-white)}
.split{display:grid;grid-template-columns:4fr 8fr;gap:var(--s6) var(--gutter)}
.num{font-family:var(--f-display);font-size:clamp(72px,9vw,128px);line-height:.85;display:block;margin-bottom:var(--s3)}
.body-col{max-width:62ch}
.body-col h2{margin-bottom:var(--s5)}
/* hero */
.hero{padding:var(--s7) 0 0;border-bottom:var(--rule) solid var(--c-ink)}
.hero h1{max-width:13ch;margin-bottom:var(--s5)}
.hero.simple h1{max-width:18ch}
.hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:var(--s6) var(--gutter);align-items:end}
.hero .support{font-size:var(--t-lg);max-width:36ch;margin-bottom:var(--s5)}
.under{font-size:var(--t-sm);line-height:1.55;max-width:44ch;margin:var(--s3) 0 0}
.ticket{border:var(--rule) solid var(--c-ink);padding:var(--s4);background:var(--c-white);position:relative}
.ticket .label{margin-bottom:var(--s2)}
.ticket p{margin:0;font-size:var(--t-lg);line-height:1.45}
.ticket strong{font-family:var(--f-display);font-weight:400;font-size:44px;display:block;line-height:1;margin:6px 0 10px}
.elev{margin-top:var(--s7);display:block;width:100%;height:auto;border-top:0}
.elev-m{display:none}
/* points */
.points{list-style:none;padding:0;margin:var(--s5) 0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:var(--rule) solid var(--c-ink)}
.points li{padding:var(--s4) var(--s4) var(--s4) 0;border-right:1px solid var(--c-ink);padding-left:var(--s4)}
.points li:first-child{padding-left:0}
.points li:last-child{border-right:0}
.points .pn{font-family:var(--f-label);font-weight:700;font-size:12px;letter-spacing:.18em;color:var(--c-ember);display:block;margin-bottom:8px}
.points b{display:block;font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.2;margin-bottom:8px}
/* price board */
.board{border-top:var(--rule) solid var(--c-ink);margin:0 0 var(--s5);padding:0;list-style:none}
.board li{display:flex;align-items:baseline;gap:12px;padding:18px 0;border-bottom:1px solid var(--c-ink)}
.board .item{font-size:var(--t-lg)}
.board .dots{flex:1;border-bottom:2px dotted var(--c-ink);transform:translateY(-6px);min-width:24px}
.board .amt{font-family:var(--f-display);font-size:clamp(28px,3vw,40px);line-height:1;white-space:nowrap}
.board .amt small{font-family:var(--f-body);font-size:15px;margin-left:6px}
/* work */
.stat{font-family:var(--f-display);font-size:var(--t-stat);line-height:.8;color:var(--c-daylight);display:block;letter-spacing:-.04em}
.on-day .stat,.sec:not(.on-ink) .stat{color:var(--c-ink)}
.statcap{font-size:var(--t-base);max-width:34ch;border-top:var(--rule) solid currentColor;padding-top:var(--s3);margin-top:var(--s4)}
.held{border:3px dashed currentColor;aspect-ratio:9/16;max-width:300px;width:100%;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:var(--s4);text-align:left;font-size:var(--t-sm);line-height:1.5}
.held.wide{aspect-ratio:16/10;max-width:none}
.held .tag{font-family:var(--f-label);font-weight:700;letter-spacing:.16em;font-size:12px;text-transform:uppercase}
.note{border:2px dashed var(--c-pewter);background:var(--c-white);color:var(--c-ink);padding:12px 16px;font-size:14px;line-height:1.5;margin:var(--s4) 0}
.note .tag,.held .tag{display:block}
.on-ink .note{background:var(--c-ink);color:var(--c-white);border-color:var(--c-white)}
/* journey */
.recog{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6) var(--gutter);margin-top:var(--s6)}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{position:relative;padding:12px 0 12px 36px;border-bottom:1px solid var(--c-hairline)}
.ticks li::before{content:"";position:absolute;left:0;top:22px;width:18px;height:3px;background:var(--c-ink)}
.recog h3{font-size:24px;margin:0 0 var(--s3)}
.bridge{font-family:var(--f-display);font-size:clamp(24px,2.6vw,34px);line-height:1.25;max-width:30ch;margin:var(--s6) 0 0}
.turn{background:var(--c-ink);color:var(--c-white);padding:var(--s5);margin:var(--s6) 0 0;font-size:var(--t-lg);line-height:1.5}
.steps{list-style:none;padding:0;margin:var(--s7) 0 0;border-top:var(--rule) solid var(--c-ink)}
.step{display:grid;grid-template-columns:200px 1fr 1fr;gap:var(--s5) var(--gutter);padding:var(--s6) 0;border-bottom:var(--rule) solid var(--c-ink)}
.step img{width:160px;height:160px;border:var(--rule) solid var(--c-ink)}
.step .sn{font-family:var(--f-label);font-weight:700;letter-spacing:.18em;font-size:12px;text-transform:uppercase;color:var(--c-ember);margin:0 0 12px}
.step h3{margin-bottom:var(--s3)}
.yw{margin:0;padding:0;list-style:none;border-top:1px solid var(--c-ink)}
.yw li{padding:12px 0;border-bottom:1px solid var(--c-ink)}
.yw b{font-family:var(--f-label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;display:inline-block;min-width:44px}
.aha{background:var(--c-daylight);padding:var(--s4);margin-top:var(--s4);border-left:6px solid var(--c-ink);font-weight:500}
.aha .label{margin-bottom:8px}
.aha .label::before{background:var(--c-ink)}
.reass{font-weight:600;margin-top:var(--s3)}
.pnote{font-size:var(--t-lg);max-width:60ch;margin:var(--s5) 0 0}
.steps.journey .step{grid-template-columns:1fr;gap:var(--s3);padding:var(--s5) 0}
.steps.journey .step h3{margin:0;font-size:clamp(22px,2.4vw,32px);line-height:1.25;max-width:42ch}
.gate-start{margin:var(--s5) 0 0;padding:var(--s4) var(--s5);background:var(--c-daylight);border-left:6px solid var(--c-ink);font-family:var(--f-label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--c-ink)}
.gate{display:inline-block;margin-top:var(--s3);padding:8px 14px;background:var(--c-daylight);border-left:6px solid var(--c-ink);font-family:var(--f-label);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--c-ink)}
.gate.gate-before{margin-top:0;margin-bottom:var(--s3)}
@media (max-width:600px){
 .steps.journey .step{padding:var(--s4) 0}
 .gate-start{padding:var(--s3) var(--s4);letter-spacing:.1em}
}

/* cta */
.cta h2{font-size:clamp(40px,6vw,88px);line-height:1.02;max-width:14ch;margin-bottom:var(--s5)}
.cta .row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4)}
.signoff{font-family:var(--f-display);font-size:28px;margin-top:var(--s6)}
/* form */
.form{border:var(--rule) solid var(--c-ink);background:var(--c-white);padding:var(--s5);display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.form .full{grid-column:1/-1}
.field label,.field legend{display:block;font-weight:600;font-size:16px;margin-bottom:6px}
.field .req{font-weight:400;font-size:14px}
.field input,.field textarea{width:100%;min-height:48px;border:2px solid var(--c-ink);border-radius:0;font:400 17px var(--f-body);padding:10px 12px;background:var(--c-white);color:var(--c-ink)}
.field input::placeholder{color:var(--c-ink);opacity:1}
fieldset{border:0;padding:0;margin:0}
.radios{display:flex;flex-wrap:wrap;gap:12px}
.radios label{display:flex;align-items:center;gap:10px;min-height:48px;border:2px solid var(--c-ink);padding:0 16px;font-weight:500}
.radios input{width:20px;height:20px;accent-color:var(--c-ink)}
.consent{font-size:var(--t-sm);margin:0}
/* faq */
.faq details{border-bottom:1px solid var(--c-ink)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s4);align-items:center;min-height:64px;padding:16px 0;font-family:var(--f-display);font-size:clamp(22px,2.2vw,28px);line-height:1.25}
.faq summary::after{content:"+";font-family:var(--f-body);font-size:28px;flex:none;width:44px;height:44px;display:grid;place-items:center;border:2px solid var(--c-ink)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{max-width:62ch;padding-bottom:var(--s4)}
.faq{border-top:var(--rule) solid var(--c-ink)}
/* lists */
.inlist{list-style:none;padding:0;margin:0;border-top:var(--rule) solid var(--c-ink)}
.inlist li{padding:14px 0 14px 40px;border-bottom:1px solid var(--c-ink);position:relative}
.inlist.yes li::before{content:"";position:absolute;left:4px;top:19px;width:16px;height:9px;border-left:3px solid var(--c-ink);border-bottom:3px solid var(--c-ink);transform:rotate(-45deg)}
.inlist.no li::before{content:"";position:absolute;left:2px;top:27px;width:22px;height:3px;background:var(--c-ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7) var(--gutter)}
.summary{border:var(--rule) solid var(--c-ink);background:var(--c-daylight);padding:var(--s5)}
/* footer */
.ftr{background:var(--c-ink);color:var(--c-white);padding:var(--s7) 0 var(--s5)}
.ftr .top{display:grid;grid-template-columns:5fr 7fr;gap:var(--s6) var(--gutter);padding-bottom:var(--s6);border-bottom:1px solid var(--c-pewter)}
.ftr .so{font-family:var(--f-display);font-size:clamp(44px,6vw,88px);line-height:1;color:var(--c-daylight);margin:var(--s5) 0 0}
.ftr ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0 4px}
.ftr ul a{display:flex;align-items:center;min-height:44px;padding:0 12px 0 0;text-decoration:none;font-weight:500}
.ftr .meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);padding-top:var(--s4);font-size:var(--t-sm)}
.ftr .lock{height:56px;width:auto}
.ftr .end{height:48px;width:auto;margin-top:var(--s4)}
.ftr p{margin:0 0 8px}
.err{color:var(--c-error)}
/* 404 */
.nf{padding:var(--s8) 0}
/* responsive */
@media (max-width:1100px){.nav a{padding:0 8px;font-size:15px}}
@media (max-width:980px){
 .nav{display:none}.menu{display:inline-flex;align-items:center}
 .hdr .wrap{gap:12px}.hdr .btn-sm{margin-left:auto}
 .hero-grid,.split,.two,.ftr .top,.recog{grid-template-columns:1fr}
 .step{grid-template-columns:120px 1fr}.step .c3{grid-column:1/-1}
 .step img{width:120px;height:120px}
 .points{grid-template-columns:1fr}.points li{border-right:0;border-bottom:1px solid var(--c-ink);padding-left:0}
}
@media (max-width:980px){.split>div:empty{display:none}}
/* Open mobile menu: stack full width below the header. Closed state still uses display:none above.
   Inline style display:flex from the existing menu toggle keeps these layout rules. */
@media (max-width:980px){
  /* Beat .bp body>* z-index:1 (home/contact/work/shopfront) so the open menu paints above main. */
  .hdr{position:relative;z-index:20}
  .bp body>header.hdr:not(.bp-bg):not(.skip):not(script):not(style){position:relative;z-index:20}
  .nav{position:absolute;left:0;right:0;top:100%;width:100%;max-width:100%;box-sizing:border-box;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;margin:0;padding:8px 0;background:var(--c-white);border-bottom:var(--rule) solid var(--c-ink);z-index:20}
  .nav a{width:100%;min-height:44px;padding:12px var(--gutter);font-size:16px;box-sizing:border-box}
}
@media (max-width:600px){
 .hdr .wrap{min-height:68px}.logo img{height:40px}
 .hdr .btn-sm span{display:none}
 .elev{display:none}.elev-m{display:block;margin-top:var(--s6);width:100%;height:auto}
 .step{grid-template-columns:1fr}.step img{width:96px;height:96px}
 .form{grid-template-columns:1fr;padding:var(--s4)}
 .board li{flex-wrap:wrap}.board .dots{display:none}.board .amt{width:100%}
 .btn-big{font-size:17px;padding:0 18px;width:100%;justify-content:center}
 .ticket strong{font-size:36px}
 .turn{padding:var(--s4)}
}
@media (max-width:360px){.logo img{height:34px}.hdr .wrap{gap:8px}.menu{padding:0 8px}}
@media (prefers-reduced-motion:no-preference){.btn:hover{transform:translateY(-2px)}}
.two>div:empty{display:none}
.two:has(>div:empty){grid-template-columns:1fr}
.summary .label::before{background:currentColor}
.fbp{width:100%;max-width:300px;height:auto;border:3px solid currentColor}
