@font-face{font-family:Nunito;src:url('./assets/Nunito-Variable.woff2') format('woff2');font-weight:200 1000;font-style:normal;font-display:swap}
:root{color-scheme:light;--cream:#f6f4e6;--forest:#264a32;--muted:#6e8067;--red:#dc5238;--white:#fffef5;font-family:Nunito,system-ui,sans-serif;color:var(--forest);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{height:100svh;min-height:640px;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(0)}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.scene{position:absolute;inset:0;overflow:hidden;touch-action:none}.scene canvas{display:block;width:100%;height:100%;outline:none}.header{position:absolute;top:37px;left:6.25%;right:6.25%;display:flex;align-items:center;justify-content:space-between;z-index:2;pointer-events:none}.brand{font-size:23px;font-weight:950;line-height:1.1;display:flex;align-items:baseline;gap:6px;letter-spacing:-.7px;pointer-events:auto}.brand-home{color:var(--red)}.edition{font-size:12px;font-weight:850;letter-spacing:1.8px}.intro{position:absolute;left:8.1%;top:50%;width:34%;transform:translateY(-52%);pointer-events:none;z-index:2}.eyebrow{font-size:11px;font-weight:850;letter-spacing:2px;margin:0 0 24px}.intro h1{font-size:clamp(54px,5.8vw,91px);font-weight:1000;letter-spacing:-3.6px;line-height:1.015;margin:0 0 26px}.intro h1 span{color:var(--red)}.intro-copy{font-size:clamp(17px,1.34vw,21px);font-weight:650;line-height:1.5;margin:0;max-width:360px}.beat-info{display:flex;align-items:center;gap:10px;margin-top:27px;font-size:12px;font-weight:750;color:var(--muted)}.beat-marker{width:6px;height:6px;background:var(--red);border-radius:50%}.beat-divider{opacity:.5}.controls{position:absolute;bottom:80px;left:69%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;z-index:3;white-space:nowrap}.button{border:0;display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;border-radius:100px;padding:0 24px;transition:transform .18s,background .18s,opacity .18s;font-weight:850;font-size:14px;box-shadow:0 4px 0 rgba(38,74,50,.08)}.button-play{background:var(--forest);color:var(--white);min-width:183px}.button-play:hover:not(:disabled){background:#365b3c}.button-play .icon{width:17px;height:17px;fill:currentColor;stroke-width:1.2}.button-round{background:var(--white);color:var(--forest);width:58px;padding:0}.button-round:hover:not(:disabled){background:#fff}.button-round span{display:none}.button-round[aria-pressed=true]{background:#dde9d2}.footer{position:absolute;bottom:25px;left:6.25%;right:6.25%;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:2;font-size:11px;font-weight:750;color:var(--muted)}.footer a:hover{color:var(--forest);text-decoration:underline;text-underline-offset:4px}.download-link{display:flex;align-items:center;gap:7px}.download-link .icon{width:14px;height:14px}.load-status{position:absolute;left:69%;top:48%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:14px;font-weight:800;z-index:4;max-width:80%;width:max-content}.load-status[hidden],.audio-message[hidden]{display:none}.loader{height:30px;width:30px;border:3px solid #dce3cd;border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}.load-status.error{padding:25px;background:var(--white);border-radius:20px;box-shadow:0 5px 24px #264a3210}.load-status.error .loader{display:none}.load-status button,.audio-message button{background:var(--forest);color:var(--white);border:0;border-radius:20px;padding:9px 16px;font-size:12px;font-weight:800}.audio-message{position:absolute;left:69%;bottom:154px;transform:translateX(-50%);font-size:12px;font-weight:750;display:flex;align-items:center;gap:12px;max-width:420px;width:max-content;padding:11px 15px;background:var(--white);border-radius:14px;z-index:5}.noscript{position:absolute;inset:30% 15%;background:var(--white);padding:25px;border-radius:18px;z-index:9;text-align:center}.noscript a{display:block;margin-top:15px;text-decoration:underline}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1800px){.intro{left:11%}.controls{left:68%}}
@media(max-width:1023px) and (min-width:641px){.header{top:28px}.brand{font-size:21px}.intro{left:6.25%;width:35%;top:45%}.intro h1{font-size:clamp(45px,6.1vw,65px);letter-spacing:-2.2px}.intro-copy{font-size:16px}.controls{left:66%;bottom:83px;gap:8px}.button{min-height:52px}.button-play{padding:0 17px;min-width:167px}.button-round{width:52px}.beat-info{margin-top:20px}.eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:20px}}
@media(max-width:640px){body{min-height:600px}.header{top:max(24px,env(safe-area-inset-top));left:24px;right:24px}.brand{font-size:18px;letter-spacing:-.5px;gap:4px}.edition{font-size:9px;letter-spacing:1.4px}.intro{top:90px;left:24px;right:24px;width:auto;transform:none;text-align:center}.eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:12px}.intro h1{font-size:clamp(44px,11.8vw,64px);line-height:1.02;letter-spacing:-2.2px;margin-bottom:13px}.intro h1 br{display:block}.intro-copy{font-size:13px;line-height:1.55;font-weight:650;max-width:320px;margin:0 auto}.desktop-break{display:none}.beat-info{justify-content:center;margin-top:12px;font-size:10px;gap:8px}.beat-marker{width:5px;height:5px}.controls{left:50%;bottom:calc(69px + env(safe-area-inset-bottom));gap:8px;max-width:calc(100% - 32px)}.button{min-height:52px;font-size:12px;gap:8px}.button-play{padding:0 17px;min-width:153px}.button-round{width:46px;height:52px;min-height:52px}.button-round .icon{width:18px;height:18px}.footer{left:24px;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));font-size:9px;gap:12px}.footer .icon{width:12px;height:12px}.load-status{left:50%;top:57%;font-size:12px}.audio-message{left:50%;bottom:calc(133px + env(safe-area-inset-bottom));font-size:10px;width:calc(100% - 40px);justify-content:space-between;padding:9px 11px;gap:9px}.audio-message button{font-size:10px;padding:7px 10px}}
@media(max-width:370px){.header{left:18px;right:18px}.intro{top:80px;left:18px;right:18px}.intro h1{font-size:40px;margin-bottom:11px}.eyebrow{margin-bottom:10px}.intro-copy{max-width:290px;font-size:12px}.beat-info{margin-top:9px}.controls{gap:6px}.button-play{min-width:145px;padding:0 14px}.button-round{width:44px}.footer{left:18px;right:18px}}
@media(max-height:700px) and (max-width:640px){.intro{top:78px}.intro h1{font-size:42px;margin-bottom:9px}.eyebrow{margin-bottom:9px}.beat-info{margin-top:9px}.controls{bottom:59px}.footer{bottom:19px}.button{min-height:48px}.button-round{height:48px;min-height:48px}}
@media(prefers-reduced-motion:reduce){.loader{animation:none}button{transition:none}}
.credits summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px}.credits summary::-webkit-details-marker{display:none}.credits summary:hover{color:var(--forest)}.credits summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}.credits summary span{font-size:15px;line-height:.8}.credits[open] summary span{transform:rotate(45deg)}.credits-content{position:fixed;left:6.25%;bottom:67px;width:340px;max-height:50svh;overflow:auto;background:var(--white);border-radius:18px;padding:20px 22px;box-shadow:0 8px 35px #264a3220;color:var(--forest);font-size:12px;line-height:1.6;z-index:8}.credits-content p{margin:0}.credits-content p+p{margin-top:14px}.credits-content strong{font-size:12px;font-weight:950}.credits-content a{text-decoration:underline;text-underline-offset:3px}.credit-change{color:var(--muted);font-size:11px}
@media(max-width:640px){.credits-content{left:24px;right:24px;width:auto;bottom:142px;padding:18px 20px;font-size:11px;max-height:45svh}.credit-change{font-size:10px}.credits summary span{font-size:13px}}
@media(max-width:370px){.credits-content{left:18px;right:18px}}
@media(min-width:641px) and (max-width:1023px){.credits-content{bottom:151px}}
