:root{color-scheme:dark;font-family:Avenir Next,Avenir,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ivory: #f4f1e8;--mist: rgba(244, 241, 232, .62);--line: rgba(244, 241, 232, .22);--green: #9dc66b;--deep: #07110b}*{box-sizing:border-box}html,body,#app,#scene{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--deep);color:var(--ivory);overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}#app{position:relative;isolation:isolate;background:radial-gradient(circle at 60% 30%,#284534,#07110b 72%)}#scene,#scene canvas{position:absolute;inset:0;display:block;touch-action:none}.vignette,.film-grain{position:absolute;inset:0;z-index:1;pointer-events:none}.vignette{background:linear-gradient(180deg,rgba(3,8,5,.55),transparent 24%,transparent 64%,rgba(3,8,5,.68)),radial-gradient(circle at 52% 45%,transparent 30%,rgba(3,8,5,.48) 100%)}.film-grain{opacity:.035;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.brand{position:absolute;z-index:6;top:max(24px,env(safe-area-inset-top));left:max(26px,env(safe-area-inset-left));display:flex;align-items:center;gap:13px;transition:opacity .6s ease,transform .6s ease}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;backdrop-filter:blur(12px)}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";position:absolute;width:2px;border-radius:2px;background:var(--ivory);transform-origin:bottom}.brand-mark:before{height:18px;transform:translate(-5px,2px) rotate(-24deg)}.brand-mark:after{height:22px;transform:translate(4px,2px) rotate(19deg)}.brand-mark span{height:13px;transform:translateY(4px)}.brand p,.brand h1{margin:0}.brand p{color:var(--mist);font-size:8px;font-weight:700;letter-spacing:.24em}.brand h1{margin-top:2px;font-size:16px;line-height:1;letter-spacing:.09em}.brand h1 b{color:var(--green);font-weight:700}.eyebrow{margin:0 0 9px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.25em}.intro{position:absolute;z-index:5;inset:0;display:flex;align-items:center;padding:clamp(28px,6vw,100px);background:linear-gradient(90deg,#030906e8,#040a0794 42%,#040a070d 76%);transition:opacity .9s ease,visibility .9s}.intro[aria-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}.intro-copy{width:min(670px,64vw);transform:translateY(16px);animation:intro-rise 1.2s .15s cubic-bezier(.2,.75,.2,1) both}.intro h2{margin:0;font-size:clamp(42px,5.5vw,84px);line-height:.98;letter-spacing:-.045em}.intro h2 em{color:var(--green);font-family:Iowan Old Style,Baskerville,Georgia,serif;font-weight:500}.lead{max-width:600px;margin:27px 0 31px;color:#f4f1e8c2;font-size:clamp(14px,1.3vw,18px);line-height:1.65}.start-button{display:inline-flex;align-items:center;gap:13px;min-height:57px;padding:0 24px;color:#0b180e;border:0;border-radius:999px;background:var(--ivory);box-shadow:0 18px 50px #00000047;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.16em;transition:transform .25s ease,background .25s ease}.start-button:hover{transform:translateY(-2px) scale(1.015);background:#fff}.play-icon{width:0;height:0;margin-left:2px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor}.intro-note{margin:15px 0 0 5px;color:#f4f1e87a;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.hole-hud{position:absolute;z-index:4;top:50%;left:max(34px,4vw);min-width:210px;opacity:0;transform:translateY(-42%);transition:opacity .7s ease,transform .7s ease;pointer-events:none}.tour-started .hole-hud{opacity:1;transform:translateY(-50%)}.hole-title-row{display:flex;align-items:baseline;gap:13px}.hole-title-row>span{font-size:14px;font-weight:500;letter-spacing:.18em}.hole-title-row strong{font-size:clamp(72px,8vw,128px);font-weight:600;line-height:.8;letter-spacing:-.08em;text-shadow:0 8px 40px rgba(0,0,0,.35)}.hole-facts{display:flex;align-items:center;gap:12px;margin-top:18px;color:#f4f1e8ad;font-size:9px;font-weight:700;letter-spacing:.13em}.hole-facts b{color:var(--ivory)}.hole-facts i{width:3px;height:3px;border-radius:50%;background:var(--green)}.mini-map{position:absolute;z-index:4;top:max(70px,11vh);right:max(28px,3.2vw);width:142px;height:174px;opacity:0;transform:translate(15px);transition:opacity .7s ease,transform .7s ease}.tour-started .mini-map{opacity:.85;transform:translate(0)}.mini-map svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 10px 30px rgba(0,0,0,.35))}.mini-map .hole-line{stroke:#f4f1e845;stroke-width:2.2;stroke-linecap:round;transition:stroke .35s ease,stroke-width .35s ease}.mini-map .hole-dot{fill:#f4f1e88c;stroke:#07110bb3;stroke-width:2;transition:fill .35s ease,r .35s ease}.mini-map .active{stroke:var(--green);fill:var(--green);stroke-width:4}.north{position:absolute;top:-2px;right:-4px;display:grid;place-items:center;gap:4px;color:#f4f1e894;font-size:8px;font-weight:800}.north i{width:1px;height:15px;background:currentColor}.controls{position:absolute;z-index:6;left:50%;bottom:max(31px,calc(env(safe-area-inset-bottom) + 18px));display:grid;grid-template-columns:auto auto auto minmax(240px,1fr) auto;align-items:center;width:min(1080px,calc(100% - 56px));gap:10px;opacity:0;transform:translate(-50%,15px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}.skip-button{min-width:118px;height:42px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 15px;color:#f4f1e8db;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#050d086b;backdrop-filter:blur(14px);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.skip-button span{font-size:18px;line-height:1}.skip-button b{font-size:8px;font-weight:800;letter-spacing:.12em}.skip-button:hover{transform:translateY(-1px);border-color:#ffffff6b;background:#ffffff1f}.tour-started .controls{opacity:1;transform:translate(-50%);pointer-events:auto}.round-button{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;padding:0 0 3px;color:var(--ivory);border:1px solid rgba(255,255,255,.23);border-radius:50%;background:#050d085c;backdrop-filter:blur(12px);cursor:pointer;font-size:25px;line-height:1;transition:transform .2s ease,background .2s ease}.round-button:hover{transform:scale(1.06);background:#ffffff24}.round-button.primary{width:48px;height:48px;color:#0a160d;border-color:var(--ivory);background:var(--ivory)}.pause-icon{width:10px;height:13px;border-left:3px solid currentColor;border-right:3px solid currentColor}.round-button.is-paused .pause-icon{width:0;height:0;margin-left:3px;border:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor}.timeline-wrap{min-width:0;margin:0 9px}.speed-control{display:flex;align-items:center;gap:3px;height:36px;padding:3px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#050d0870;backdrop-filter:blur(14px)}.speed-control>span{padding:0 7px 0 9px;color:#f4f1e880;font-size:7px;font-weight:800;letter-spacing:.11em}.speed-control button{min-width:33px;height:28px;padding:0 7px;color:#f4f1e89e;border:0;border-radius:999px;background:transparent;cursor:pointer;font-size:8px;font-weight:800;transition:color .2s ease,background .2s ease}.speed-control button:hover,.speed-control button.active{color:#102016;background:var(--green)}.timeline-labels{display:flex;justify-content:space-between;margin-bottom:9px;color:#f4f1e899;font-size:8px;font-weight:700;letter-spacing:.13em}.timeline{position:relative;height:18px;cursor:pointer}.timeline:before{content:"";position:absolute;top:8px;right:0;left:0;height:1px;background:#f4f1e83d}.timeline-progress{position:absolute;z-index:1;top:8px;left:0;width:0;height:1px;background:var(--green);box-shadow:0 0 8px #9dc66b99}.hole-ticks{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:space-between}.hole-tick{width:17px;height:17px;display:grid;place-items:center;color:#f4f1e87a;border:0;border-radius:50%;background:#19261d;cursor:pointer;font-size:7px;font-weight:800;transition:color .25s ease,background .25s ease,transform .25s ease}.hole-tick:hover,.hole-tick.active{color:#0b160d;background:var(--green);transform:scale(1.22)}.credits{position:absolute;z-index:3;right:max(20px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));display:flex;gap:8px;color:#f4f1e859;font-size:7px;font-weight:500;letter-spacing:.04em}.credits a{color:inherit;text-decoration:none}.loader{position:absolute;z-index:10;inset:0;display:grid;place-content:center;justify-items:center;background:#07110b;transition:opacity .7s ease,visibility .7s}.loader.hidden{opacity:0;visibility:hidden}.loader-ring{width:52px;height:52px;margin-bottom:20px;border:1px solid rgba(157,198,107,.2);border-top-color:var(--green);border-radius:50%;animation:spin 1.1s linear infinite}.loader p,.loader span{margin:0;letter-spacing:.2em}.loader p{font-size:10px;font-weight:800}.loader span{margin-top:8px;color:#f4f1e87a;font-size:8px}.error-message{position:absolute;z-index:20;inset:0;place-content:center;padding:30px;text-align:center;background:#07110b}.error-message:not([hidden]){display:grid}.error-message h2{margin:0 0 12px}.error-message p{max-width:500px;color:var(--mist)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes intro-rise{0%{opacity:0;transform:translateY(38px)}to{opacity:1;transform:translateY(16px)}}@media(max-width:720px){.brand{top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left))}.brand-mark{width:32px;height:32px}.intro{align-items:flex-end;padding:26px 22px max(46px,calc(env(safe-area-inset-bottom) + 28px));background:linear-gradient(0deg,#030906f0 4%,#030906a6,#0309061f)}.intro-copy{width:100%}.intro h2{font-size:clamp(38px,11vw,58px)}.lead{max-width:520px;margin:19px 0 23px;font-size:13px;line-height:1.55}.start-button{min-height:53px}.hole-hud{top:max(92px,calc(env(safe-area-inset-top) + 72px));left:max(20px,env(safe-area-inset-left));transform:translateY(-8px)}.tour-started .hole-hud{transform:translateY(0)}.hole-title-row strong{font-size:68px}.hole-title-row>span{font-size:11px}.hole-facts{margin-top:13px}.mini-map{top:max(82px,calc(env(safe-area-inset-top) + 62px));right:max(13px,env(safe-area-inset-right));width:86px;height:108px}.controls{grid-template-columns:36px 44px 36px minmax(0,1fr);width:calc(100% - 26px);bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px));gap:7px;row-gap:9px}.skip-button{min-width:0;width:36px;height:36px;padding:0;border-radius:50%}.skip-button b{display:none}.skip-button span{font-size:17px}.round-button{width:36px;height:36px}.round-button.primary{width:44px;height:44px}.timeline-wrap{margin:0 0 0 3px}.speed-control{grid-row:2;grid-column:1 / -1;justify-self:center;height:30px}.speed-control>span{padding-left:7px;font-size:6px}.speed-control button{min-width:30px;height:24px;padding:0 6px;font-size:7px}.timeline-labels{margin-bottom:5px}.hole-tick{width:14px;height:14px;font-size:6px}.credits{right:auto;left:max(15px,env(safe-area-inset-left));bottom:max(7px,env(safe-area-inset-bottom))}.credits span:not(:last-child),.credits a{display:none}}@media(max-height:560px)and (orientation:landscape){.intro-copy{width:min(660px,73vw)}.intro h2{font-size:43px}.lead{margin:12px 0 16px;line-height:1.4}.intro-note,.mini-map{display:none}.hole-hud{top:48%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
