:root{--white:#f7e8d8;--red:#b50908}*{box-sizing:border-box}body{margin:0;color:var(--white);background:var(--red);font-family:Helvetica,Arial,sans-serif;min-height:100svh;background-image:radial-gradient(ellipse at 48% 45%,#c60c09 0%,#b50908 65%,#9c0808 100%)}button,input{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:12px 0;text-align:left}button:focus-visible{outline:1px solid currentColor;outline-offset:5px}header,footer{height:72px;position:relative;z-index:4;margin:0 38px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.06em}header{opacity:.75}header button:first-child{font-weight:700;letter-spacing:-.02em;font-size:13px}header>span{margin-right:26px;font-size:8px;letter-spacing:.18em}header button:last-child{font-size:10px}footer{height:64px;font-size:9px;opacity:.75}footer>span{font-size:8px;letter-spacing:.1em}#scenes{position:absolute;left:50%;transform:translateX(-50%);font-variant-numeric:tabular-nums;letter-spacing:.12em}#frame{height:calc(100svh - 136px);min-height:480px;position:relative;overflow:hidden}#art{position:absolute;inset:0;width:100%;height:100%;overflow:visible}#drawing{fill:none;stroke:var(--white);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;opacity:.91}#drawing path{vector-effect:non-scaling-stroke}.film{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}#credit{position:absolute;width:310px;z-index:3;left:38%;top:42%;transition:opacity .32s,transform .55s;transform:translateY(0)}#credit.leaving{opacity:0;transform:translateY(9px);pointer-events:none}.rule{height:1px;width:100%;background:currentColor;margin-bottom:11px;transform-origin:left;animation:rule 1s both}.credit-title,h1,h2{font-size:clamp(23px,2.15vw,33px);line-height:1.03;font-weight:500;letter-spacing:-.055em;margin:0}.sub{font-size:12px;line-height:1.5;margin:22px 0 0;letter-spacing:-.01em}.meta{font-size:10px;line-height:1.6;margin-top:22px;opacity:.75}.next{display:flex;align-items:center;gap:42px;justify-content:space-between;min-width:145px;font-size:12px;margin-top:26px;padding:12px 0;border-bottom:1px solid #f7e8d86b;width:max-content}.next:hover .arrow{transform:translateX(7px)}.arrow{display:inline-block;transition:transform .25s;font-size:17px}.answers{display:flex;gap:30px;margin-top:22px}.answers button{font-size:19px;letter-spacing:-.03em;border-bottom:1px solid #f7e8d866;min-width:72px;display:flex;justify-content:space-between;gap:14px}.answers button:hover,.answers button[aria-pressed=true]{border-color:var(--white)}.answers button[aria-pressed=true]:after{content:'•'}label{display:block;font-size:11px;margin:25px 0 7px}input{width:100%;background:none;border:0;border-bottom:1px solid #f7e8d88c;padding:8px 0 10px;border-radius:0;outline:none;font-size:24px;letter-spacing:-.035em}input::placeholder{color:#f7e8d86e}input:focus{border-bottom:2px solid var(--white);padding-bottom:9px}.error{font-size:11px;min-height:15px;margin:8px 0 0}.footnote{font-size:9px;line-height:1.5;opacity:.68;margin-top:19px}.summary{font-size:12px;line-height:1.6;margin-top:20px}.summary div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #f7e8d833;padding:8px 0}.summary span:last-child{max-width:70%;text-align:right;overflow-wrap:anywhere}.scene-name{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.16em;opacity:.45;white-space:nowrap}#back[hidden]{display:block;visibility:hidden}.balloon{transform-box:fill-box;transform-origin:center bottom;animation:drift 7s ease-in-out infinite alternate}.balloon:nth-child(even){animation-delay:-3s}.orbit{transform-origin:760px 410px;animation:turn 35s linear infinite}.door-open{transform-origin:870px 400px;animation:openDoor 2s .2s both}body.still *{animation:none!important;transition:none!important}dialog{width:min(470px,90vw);border:1px solid #f7e8d888;background:#ac0807;color:var(--white);padding:28px}dialog::backdrop{background:#340000bb;backdrop-filter:blur(8px)}.menu-top{display:flex;align-items:center;justify-content:space-between;font-size:12px}.menu-top button{font-size:10px}nav{margin:20px 0}nav button{border-top:1px solid #f7e8d855;width:100%;display:flex;justify-content:space-between;padding:17px 0;font-size:18px;letter-spacing:-.04em}nav button small{font-size:10px;opacity:.6}dialog p{font-size:10px;line-height:1.5;opacity:.7}.end-name{overflow-wrap:anywhere}#frame[data-scene="0"] #credit{left:38%;top:35%}#frame[data-scene="1"] #credit{left:10%;top:39%}#frame[data-scene="2"] #credit{left:9%;top:13%}#frame[data-scene="3"] #credit{left:66%;top:60%;width:300px}#frame[data-scene="4"] #credit{left:67%;top:32%}#frame[data-scene="5"] #credit{left:15%;top:18%;width:300px}#frame[data-scene="6"] #credit{left:15%;top:28%}#frame[data-scene="7"] #credit{left:38%;top:36%}@keyframes rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes drift{from{transform:rotate(-2deg) translateY(0)}to{transform:rotate(2deg) translateY(-10px)}}@keyframes turn{to{transform:rotate(360deg)}}@keyframes openDoor{from{transform:scaleX(1)}to{transform:scaleX(.12)}}@media(min-width:1700px){#credit{width:360px}.sub{font-size:14px}.next{font-size:14px}#frame[data-scene="3"] #credit,#frame[data-scene="5"] #credit{width:350px}}@media(max-width:700px){header,footer{margin:0 22px;height:60px}header>span{font-size:7px;margin:0}footer{height:58px}#frame{height:calc(100svh - 118px);min-height:570px}#art{height:65%;width:140%;left:-20%;top:0;opacity:.8}#credit,#frame[data-scene] #credit{left:9%;top:49%;width:82%;max-width:340px}.credit-title,h1,h2{font-size:27px}.rule{width:100%}.sub{margin-top:15px}.meta{margin-top:15px}.next{margin-top:18px}.answers{margin-top:16px}#frame[data-scene="0"] #credit,#frame[data-scene="7"] #credit{top:32%;left:14%;width:72%}#frame[data-scene="0"] #art{opacity:.18;top:30%}#frame[data-scene="3"] #credit{top:48%}#frame[data-scene="5"] #credit{top:38%}#frame[data-scene="5"] #art{top:-18%;left:0%;opacity:.55}#frame[data-scene="6"] #credit{top:50%}#frame[data-scene="6"] #art{left:0;top:-13%;height:70%}.summary{margin-top:12px}.summary div{padding:5px 0}.scene-name{bottom:8px;font-size:7px}.footnote{margin-top:12px}label{margin-top:18px}.balloon{animation-duration:9s}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:701px){#frame{min-height:600px}#frame[data-scene="3"] #credit{top:51%}}h1:focus,h2:focus{outline:none}
/* A single navigation point; the stage owns the whole screen. */
#frame{height:calc(100svh - 74px);min-height:650px}footer{height:74px;margin:0;justify-content:center;opacity:1}.controls{display:flex;align-items:center;gap:12px;color:#f7e8d8bb}.controls button{min-height:44px;font-size:10px}.controls #back{width:30px;text-align:center;font-size:17px}.controls #back[hidden]{display:none}#scenes{position:static;transform:none;min-width:92px;text-align:center;letter-spacing:.12em}#scene-name{display:none}.menu-tools{display:flex;justify-content:space-between;border-top:1px solid #f7e8d855;padding-top:10px;font-size:11px}.byline{margin-top:28px;font-size:8px;letter-spacing:.15em;opacity:.55}#frame[data-scene="0"] #credit{left:18%;top:36%}#frame[data-scene="1"] #credit{left:15%;top:39%}#frame[data-scene="2"] #credit{left:13%;top:29%}#frame[data-scene="3"] #credit{left:66%;top:53%}#frame[data-scene="4"] #credit{left:67%;top:34%}#frame[data-scene="5"] #credit{left:15%;top:25%}#frame[data-scene="6"] #credit{left:15%;top:33%}#frame[data-scene="7"] #credit{left:18%;top:36%}.breathe{transform-box:fill-box;transform-origin:center;animation:resonate 9s ease-in-out infinite alternate}.signature-art{transform-box:fill-box;transform-origin:center;animation:signature-breathe 11s ease-in-out infinite alternate}@keyframes resonate{from{transform:scale(1,.94)}to{transform:scale(1,1.06)}}@keyframes signature-breathe{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}@media(max-width:700px){#frame{height:calc(100svh - 62px);min-height:630px}footer{height:62px}#art{width:200%;height:57%;left:-83%;top:0}#frame[data-scene] #credit{left:12%;top:46%;width:76%;max-width:340px}#frame[data-scene="0"] #art,#frame[data-scene="7"] #art{opacity:.8;top:-4%;left:-83%}#frame[data-scene="0"] #credit,#frame[data-scene="7"] #credit{top:48%;left:12%;width:76%}#frame[data-scene="3"] #art{left:-50%;width:200%;height:53%;top:-6%}#frame[data-scene="3"] #credit{top:45%}#frame[data-scene="4"] #art{left:-8%;width:150%;height:55%}#frame[data-scene="5"] #art,#frame[data-scene="6"] #art{left:-83%;width:200%;height:55%;top:-9%;opacity:.8}#frame[data-scene="5"] #credit{top:42%}#frame[data-scene="6"] #credit{top:47%}.sub{font-size:12px}}
/* Full-bleed architecture with an SVG exclusion zone for all text. */
#frame{height:100svh;min-height:740px;overflow:hidden}#art,#frame[data-scene] #art{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;opacity:.82}#drawing{stroke-width:1.1;opacity:.85}footer{position:fixed;bottom:10px;left:0;right:0;height:44px;margin:0;z-index:5}.controls{height:44px}.scene-name{display:none}#frame[data-scene] #credit{width:320px;max-width:36vw}#frame[data-scene="0"] #credit{left:20%;top:34%}#frame[data-scene="1"] #credit{left:43%;top:39%}#frame[data-scene="2"] #credit{left:17%;top:29%}#frame[data-scene="3"] #credit{left:61%;top:35%}#frame[data-scene="4"] #credit{left:42%;top:35%}#frame[data-scene="5"] #credit{left:17%;top:26%}#frame[data-scene="6"] #credit{left:58%;top:35%}#frame[data-scene="7"] #credit{left:24%;top:38%}.architectural-drift{transform-origin:720px 405px;animation:architecturalPan 22s ease-in-out infinite alternate}.drift-1{animation-name:architecturalRise;animation-duration:26s}.drift-2{animation-name:architecturalZoom;animation-duration:24s}@keyframes architecturalPan{from{transform:translate(-26px,-12px) scale(1.04)}to{transform:translate(30px,14px) scale(1.08)}}@keyframes architecturalRise{from{transform:translate(8px,35px) scale(1.08)}to{transform:translate(-15px,-35px) scale(1.08)}}@keyframes architecturalZoom{from{transform:translate(-10px,0) scale(1.01)}to{transform:translate(15px,-12px) scale(1.13)}}@media(max-width:700px){#frame{min-height:740px;height:100svh}#frame[data-scene] #art{width:100%;height:100%;inset:0;opacity:.72}#frame[data-scene] #credit{left:15%;top:31%;width:70%;max-width:360px}#frame[data-scene="1"] #credit{top:40%}#frame[data-scene="5"] #credit{top:27%}#frame[data-scene="6"] #credit{top:32%}#drawing{stroke-width:1px}footer{bottom:8px}.credit-title,h1,h2{font-size:27px}}

/* Pass — QR drawn by drafting lines on a warm-white sheet */
#pass{margin-top:22px;display:flex;flex-wrap:wrap;gap:18px 22px;align-items:flex-end}
.pass-qr{width:min(150px,44vw);height:auto;display:block;flex:none}
.pass-sheet{fill:#f7e8d8;opacity:0;animation:pass-fade 600ms ease 500ms forwards}
.pass-frame{fill:none;stroke:#f7e8d8;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:pass-draw 900ms ease forwards}
.pass-lines path{stroke:#b50908;fill:none;stroke-linecap:butt}
.pass-static .pass-sheet{opacity:1;animation:none}.pass-static .pass-frame{stroke-dashoffset:0;animation:none}
.pass-actions{display:flex;flex-direction:column;gap:4px;flex:1;min-width:150px}
.pass-link{color:inherit;text-decoration:none;font-size:14px;letter-spacing:.01em;padding:7px 0;border-bottom:1px solid rgba(247,232,216,.45);display:flex;justify-content:space-between;gap:24px;opacity:0;animation:pass-fade 500ms ease forwards}
.wallet-badges{animation-delay:1.9s}.pass-link{animation-delay:2.2s}
.pass-link:hover,.pass-link:focus-visible{border-bottom-color:#f7e8d8}
.pass-link:focus-visible{outline:1px solid #f7e8d8;outline-offset:4px}
body.still .pass-link{opacity:1;animation:none}
@keyframes pass-draw{to{stroke-dashoffset:0}}
@keyframes pass-fade{to{opacity:1}}

/* Keep the confirmed scene + pass fully on screen */
#frame[data-scene="6"]:has(.pass-qr) .sub{display:none}
@media (min-width:768px){#frame[data-scene="6"]:has(.pass-qr) #credit{top:max(5vh,calc(50% - 260px))}}
@media (max-width:767px){
#frame[data-scene="6"]:has(.pass-qr){height:auto;min-height:100svh;overflow:hidden}
#frame[data-scene="6"]:has(.pass-qr) #credit{position:relative;top:auto;left:auto;width:auto;max-width:none;margin:34svh 9% calc(96px + env(safe-area-inset-bottom))}
}

/* Wallet badges (black, per Apple / Google badge guidance) */
.wallet-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px;opacity:0;animation:pass-fade 500ms ease 1.9s forwards}
.wallet-badge{display:inline-flex;align-items:center;gap:8px;background:#000;color:#fff;border:1px solid #a6a6a6;border-radius:8px;padding:6px 12px 6px 10px;text-decoration:none;font-family:-apple-system,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.05;font-weight:500}
.wallet-badge svg{width:20px;height:20px;flex:none}
.wallet-badge small{display:block;font-size:9px;font-weight:400;opacity:.9}
.wallet-badge:focus-visible{outline:1px solid #f7e8d8;outline-offset:3px}
body.still .wallet-badges{opacity:1;animation:none}
/* Legal consent */
.legal-checks{margin-top:14px}
.check{display:flex;gap:10px;align-items:flex-start;margin:6px 0}
.check input{width:15px;height:15px;margin:2px 0 0;accent-color:#f7e8d8;flex:none}
.check label{margin:0;font-size:11px;line-height:1.45}
.doc-link{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
#legal{width:min(620px,92vw);max-height:80svh;overflow:auto}
.legal-body{font-size:12px;line-height:1.6}
.legal-body h2,.legal-body h3,.legal-body h4{font-size:14px;font-weight:500;margin:18px 0 6px}
.legal-body a{color:inherit}
.next.quiet{font-size:11px;opacity:.7;margin-top:22px}
.next.quiet:hover,.next.quiet:focus-visible{opacity:1}
