@import url('assets/fonts/fonts.css');
:root{--paper:#eeece5;--ink:#273029;--muted:#7b8277;--line:#d5d9cd;--orange:#e07742;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--sans:'DM Sans',Arial,sans-serif;--mono:'Courier New',monospace;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button{border:0;color:inherit;font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--orange);outline-offset:5px}.page-wrap{width:calc(100% - 96px);max-width:1440px;margin:auto}.site-header{height:98px;display:flex;align-items:center;gap:23px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand strong{font:800 36px/1 var(--display);letter-spacing:-.4px}.brand strong span{color:var(--orange)}.brand-symbol{display:grid;place-items:center;background:var(--orange);width:35px;height:35px;border-radius:3px}.brand-symbol svg{width:24px;height:24px;fill:none;stroke:#fff5e8;stroke-width:1.7}.series-label{border-left:1px solid #c8cec0;padding-left:23px;font:9px/1.6 var(--mono);letter-spacing:.7px}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:31px;font:700 10px var(--sans);letter-spacing:.8px}.site-header nav button{background:none;padding:0;font:inherit;letter-spacing:inherit}.site-header nav button span{color:var(--orange);font-size:16px;margin-left:7px}.volume-label{font:9px var(--mono);letter-spacing:.6px;color:#87907f;margin-left:27px}.page-intro{display:flex;align-items:end;justify-content:space-between;padding:33px 0 29px;gap:25px}.eyebrow{font:700 9px/1.4 var(--mono);letter-spacing:1.4px}.eyebrow i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--orange);margin-right:8px;vertical-align:2px}.page-intro h1{font:700 clamp(43px,4.4vw,65px)/1.05 var(--display);letter-spacing:-.7px;margin:9px 0 0}.page-intro h1>span{color:var(--orange)}.page-intro>p{font-size:11px;line-height:1.85;color:#7d8576;margin:0 0 3px}.game-shell{position:relative;width:100%;height:min(680px,68vw);min-height:480px;overflow:hidden;border-radius:5px;background:#a1bfd0;box-shadow:0 6px 24px #263b2820;isolation:isolate}.game-shell canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0b1d291f 0%,transparent 24%,transparent 65%,#0a161c38 100%);z-index:1}.game-cover{position:absolute;inset:0;z-index:5;background:linear-gradient(90deg,#162b29c9 0%,#1c302b70 35%,#15271e00 72%),linear-gradient(0deg,#11231d69,transparent 60%);display:flex;align-items:center;padding:58px 64px;color:#fff9e9}.cover-copy{max-width:470px}.light{color:#d9e1d3}.cover-copy h2{font:800 clamp(90px,10vw,144px)/.86 var(--display);letter-spacing:-2px;margin:28px 0 23px}.cover-copy h2>span{color:#ed9c66}.cover-copy>p{font-size:15px;line-height:1.8;color:#d9e0d2;margin:0 0 29px}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 22px;min-height:54px;background:var(--orange);color:#fff7e9;border-radius:2px;letter-spacing:1px;font-size:10px;font-weight:700;transition:background .18s,transform .18s}.primary-button:hover{background:#ec8850;transform:translateY(-1px)}.primary-button>svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.cover-copy .primary-button{width:294px}.cover-details{display:flex;gap:19px;font:8px var(--mono);letter-spacing:.5px;color:#d2dcc9;margin-top:17px}.cover-details>span+span{border-left:1px solid #bccbb94d;padding-left:19px}.cover-notes{position:absolute;right:52px;bottom:41px;max-width:290px;color:#eef0df}.cover-rule{display:block;width:29px;height:2px;background:#e5bd89;margin-bottom:13px}.cover-notes>strong{font:600 20px var(--display);letter-spacing:1.2px}.cover-notes>p{font-size:10px;line-height:1.8;color:#d5dfd1}.menu-best{display:block;font:8px var(--mono);letter-spacing:1px;margin-top:15px;color:#c3cfbc}.menu-best b{color:#fff2d6;font-weight:400;margin-left:10px}.game-toolbar{position:absolute;top:18px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;z-index:30;pointer-events:none;color:#fff7e6}.game-toolbar>div{display:flex;gap:13px;margin-left:auto}.icon-button{background:#142b242b;color:inherit;display:flex;align-items:center;gap:6px;padding:8px;min-height:34px;font:8px var(--mono);letter-spacing:.6px;border-radius:2px;text-shadow:0 1px 6px #0006;pointer-events:auto}.icon-button:hover{background:#15282065}.icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.leave-button{visibility:hidden}.game-shell[data-phase=menu] .game-toolbar{top:16px}.game-shell[data-phase=menu] .game-toolbar .icon-button span{display:none}.hud{position:absolute;inset:0;z-index:4;pointer-events:none;color:#fff8e6;text-shadow:0 2px 14px #13232380;opacity:0;transition:opacity .2s}.hud-score,.hud-course,.hud-time{position:absolute;top:68px;display:flex;flex-direction:column}.hud-score{left:38px}.hud-course{left:50%;transform:translateX(-50%);text-align:center}.hud-time{right:38px;text-align:right}.hud-score>span,.hud-course>span,.hud-time>span{font:10px var(--mono);letter-spacing:2px;color:#eef2e0}.hud-score>strong,.hud-time>strong{font:600 42px/1.1 var(--display);letter-spacing:1px;margin-top:3px}.hud-course>strong{font:500 34px/1.1 var(--display);letter-spacing:2px;margin-top:5px}.hud-course>strong i{font-style:normal;font-weight:400;font-size:21px;opacity:.55;padding:0 3px}.hud-course>small,.hud-time>small{font:8px var(--mono);letter-spacing:1px;margin-top:5px;color:#e1e9d8}.hud-time.urgent{color:#ffb18c}.hud-time.urgent>span{color:#ffc8a9}.hud-score>small{position:absolute;top:56px;font:600 15px var(--display);color:#f2c48a;opacity:0;transition:opacity .12s}.hud-score>small.visible{opacity:1}.hud-secondary{position:absolute;left:38px;bottom:27px;display:flex;align-items:end;gap:27px}.hud-secondary>div{display:flex;flex-direction:column;gap:4px}.hud-secondary span{font:8px var(--mono);letter-spacing:1.2px;color:#dae4d1}.hud-secondary strong{font:500 24px/1 var(--display);letter-spacing:.5px}.hud-secondary strong small{font-size:14px;padding-left:2px}.hud-combo strong{color:#f4c48a}.hud.combo-hot .hud-combo strong{color:#ffdb9d;text-shadow:0 0 18px #e4a95680}.hud-piece{position:absolute;right:38px;bottom:29px;display:flex;align-items:end;gap:8px;flex-direction:column}#nail-progress{display:flex;align-items:center;gap:6px}#nail-progress i{display:block;width:5px;height:5px;border-radius:50%;border:1px solid #dfe8d0}#nail-progress i.seated{background:#f2c284;border-color:#f2c284}#nail-progress b{font:9px var(--mono);font-weight:400;letter-spacing:1px;margin-left:5px}.hud-piece>small{font:8px var(--mono);letter-spacing:1px;color:#dbe5d1}.intro-title{position:absolute;z-index:12;left:50%;top:41%;text-align:center;transform:translate(-50%,-50%);pointer-events:none;color:#fff7e8;opacity:0;text-shadow:0 3px 35px #182b2799}.intro-title>span{font:9px var(--mono);letter-spacing:5px;display:block;margin-bottom:10px}.intro-title>strong{font:700 clamp(55px,8vw,92px)/1 var(--display);letter-spacing:1px}.intro-title>strong>span{color:#f2b781}.game-shell[data-phase=intro] .intro-title{animation:intro-title 1.1s both}.game-shell.quick-intro[data-phase=intro] .intro-title{animation-duration:.35s}@keyframes intro-title{0%{opacity:0;transform:translate(-50%,-45%)}25%,72%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-52%)}}.shot-feedback{position:absolute;pointer-events:none;z-index:14;font:500 16px var(--display);letter-spacing:.8px;color:#fff4d8;text-shadow:0 2px 9px #182c28;opacity:0;transform:translate(-50%,-100%);white-space:nowrap}.shot-feedback.visible{opacity:1}.shot-feedback.error{color:#efb18c}.shot-feedback small{font:8px var(--mono);display:block;letter-spacing:1px;color:#f2d4a6;margin-top:1px;text-align:center}.course-feedback{position:absolute;left:50%;top:24%;transform:translateX(-50%);pointer-events:none;z-index:15;font:500 21px var(--display);letter-spacing:3px;text-shadow:0 2px 14px #153123;color:#fff8e5;opacity:0;transition:opacity .12s;white-space:nowrap}.course-feedback.visible{opacity:1}.course-feedback.perfect{color:#f6dda9}.control-status{position:absolute;left:50%;bottom:20px;z-index:5;pointer-events:none;transform:translateX(-50%);font:7px var(--mono);letter-spacing:1px;color:#e1e9d1;text-shadow:0 1px 7px #0006;display:none;white-space:nowrap}.mobile-controls{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0}.aim-pad{display:none;position:absolute;left:max(16px,env(safe-area-inset-left));bottom:calc(43px + var(--safe-bottom));width:43%;height:29%;max-height:210px;min-height:94px;touch-action:none;pointer-events:auto;outline:none;color:#fff6df;user-select:none}.aim-zone-corner{position:absolute;width:17px;height:17px;border-color:#fff8e529;border-style:solid;pointer-events:none}.aim-zone-corner.a{left:0;bottom:0;border-width:0 0 1px 1px}.aim-zone-corner.b{right:0;top:0;border-width:1px 1px 0 0}.aim-zone-label{position:absolute;left:9px;bottom:7px;font:7px var(--mono);letter-spacing:1.3px;color:#fff4df8c;pointer-events:none}.aim-pad.is-aiming{background:#fff0ca05}.aim-pad.is-aiming .aim-zone-corner{border-color:#fff5dc66}#aim-knob{position:absolute;width:12px;height:12px;border:1px solid #fff0c169;border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none} .aim-pad.is-aiming #aim-knob{opacity:.75}#fire-button{position:absolute;right:max(27px,env(safe-area-inset-right));bottom:calc(78px + var(--safe-bottom));width:64px;height:64px;border-radius:50%;border:1px solid #f2e4c789;background:#142b2c24;color:#fff6dd;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:auto;touch-action:none;box-shadow:0 0 0 6px #152a1f12;text-shadow:0 1px 7px #163b29;user-select:none}#fire-button>svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.3}#fire-button>strong{font:600 13px var(--display);letter-spacing:1px}#fire-button>small{font:5px var(--mono);letter-spacing:.5px;color:#e7ead8}#fire-button.is-active,#fire-button:active{background:#e7b17a6b;box-shadow:0 0 0 6px #e7b17a13;transform:scale(.97)}#fire-button:disabled{opacity:.32;cursor:default} .portrait-hint{position:absolute;z-index:5;top:130px;left:50%;transform:translateX(-50%);font:6px var(--mono);letter-spacing:1px;color:#edf0dd99;text-shadow:0 1px 6px #132821;pointer-events:none;white-space:nowrap;display:none}.game-shell[data-phase=playing] .hud,.game-shell[data-phase=intro] .hud{opacity:1}.game-shell[data-phase=playing] .mobile-controls{opacity:1}.game-shell[data-phase=ending] .hud{opacity:0;transition:opacity .7s}.game-shell[data-phase=ending] .game-toolbar,.game-shell[data-phase=results] .game-toolbar{opacity:.65}.game-shell[data-phase=menu] .game-toolbar .leave-button{visibility:hidden}.game-shell:not([data-phase=menu]) .leave-button{visibility:visible}.game-shell[data-phase=menu] #fire-button,.game-shell[data-phase=intro] #fire-button,.game-shell[data-phase=ending] #fire-button,.game-shell[data-phase=results] #fire-button{pointer-events:none}.game-shell:not([data-phase=menu]) .game-cover{display:none}.game-shell[data-phase=playing] canvas{cursor:none}.game-shell[data-phase=intro] canvas{cursor:none}.results-screen{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#142820e8,#142820c7 45%,#14282080);color:#f7f4e8;overflow:auto;padding:34px 22px}.results-inner{width:min(590px,100%);padding:10px 0}.results-inner h2{font:600 54px/1 var(--display);margin:12px 0 9px;letter-spacing:-.3px}.results-inner>p{font-size:10px;line-height:1.8;color:#b8c6b3;margin:0 0 20px}.record-badge{font:8px var(--mono);letter-spacing:1px;color:#f2c58e;padding:5px 8px;border:1px solid #d5b17c66;float:right;margin-top:-2px}.final-score-block{display:flex;flex-direction:column;border-top:1px solid #b2c3a82e;border-bottom:1px solid #b2c3a82e;padding:16px 0 19px}.final-score-block>span{font:9px var(--mono);letter-spacing:2px;color:#c7d4bd}.final-score-block>strong{font:500 75px/1 var(--display);letter-spacing:1px;margin-top:7px}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 26px;margin:21px 0 27px}.report-stats>div{display:flex;flex-direction:column;gap:7px}.report-stats span{font:7px var(--mono);letter-spacing:1px;color:#bccbb3;text-transform:uppercase}.report-stats strong{font:500 27px/1 var(--display);color:#f2efdd;letter-spacing:.5px}.report-stats strong small{font-size:13px}.result-actions{display:flex;align-items:center;gap:26px}.result-actions>.primary-button{width:245px}.text-button{background:none;color:#c5d1bd;font:8px var(--mono);letter-spacing:.8px;padding:12px 0}.text-button:hover{color:#fff4dd}.game-error{position:absolute;z-index:40;background:#21372fef;color:#fff0d4;padding:20px;left:20px;right:20px;top:20px;font-size:13px}.field-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;border-bottom:1px solid var(--line)}.field-strip-title{display:flex;align-items:center;gap:10px}.field-strip-title strong{font:700 9px var(--sans);letter-spacing:.7px;white-space:nowrap}.detail-mark{font-size:25px;color:var(--orange);line-height:1}.field-strip>p{font-size:10px;color:#818a79;margin-right:auto}.field-strip>button{background:none;font:8px var(--mono);letter-spacing:.8px;white-space:nowrap}.field-strip>button>span{color:var(--orange);font-size:16px;margin-left:10px}.field-notes-preview{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:42px;padding:45px 0 42px}.field-notes-preview h2{font:600 39px/1.05 var(--display);margin:10px 0 0;letter-spacing:-.3px}.note-number{font:9px var(--mono);color:#b17c56}.field-notes-preview h3{font-size:11px;margin:11px 0 8px}.field-notes-preview p{font-size:10px;line-height:1.8;color:#858c7d;margin:0}footer{display:flex;justify-content:space-between;padding:22px 0 28px;border-top:1px solid var(--line);font:7px var(--mono);letter-spacing:.7px;color:#8a9280}footer>span:first-child{color:#53624c}footer i{font-style:normal;margin-left:10px;color:#909786}dialog{background:var(--paper);color:var(--ink);border:1px solid #b2bfa8;border-radius:4px;width:min(510px,calc(100% - 32px));max-height:calc(100dvh - 36px);overflow:auto;padding:31px;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#142c24b8;backdrop-filter:blur(5px)}dialog h2{font:600 46px/1 var(--display);margin:12px 0 17px}dialog>p{font-size:11px;line-height:1.8;color:#7b8672}dialog ol{padding-left:17px;font-size:10px;line-height:1.8;color:#7b8672}dialog li{padding-left:3px;margin:13px 0}dialog li strong{color:#364731}.close-dialog{position:absolute;right:15px;top:9px;background:none;font-size:28px;color:#819174}.fine-print{font-size:9px!important;line-height:1.7!important;margin:23px 0}.close-guide{width:100%}.guide-toggle{display:flex;position:relative;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid #d0d8c7;border-bottom:1px solid #d0d8c7;margin:21px 0;cursor:pointer}.guide-toggle strong{display:block;font-size:10px}.guide-toggle small{display:block;font-size:9px;color:#7e8c72;margin-top:4px}.guide-toggle input{position:absolute;right:0;width:32px;height:20px;opacity:0}.guide-toggle i{width:32px;height:18px;background:#a9b39d;border-radius:20px;position:relative}.guide-toggle i:after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:#f7f3e6;border-radius:50%;transition:transform .2s}.guide-toggle input:checked+i{background:#72835c}.guide-toggle input:checked+i:after{transform:translateX(14px)}.hidden{display:none!important}html.scroll-lock,body.immersive{overflow:hidden!important;overscroll-behavior:none;touch-action:none}body.immersive{position:fixed;width:100%;left:0;user-select:none;-webkit-user-select:none}body.immersive .game-shell{position:fixed!important;inset:0;width:100%;height:100vh;height:100dvh;min-height:0;border-radius:0;z-index:1000;box-shadow:none}body.immersive .game-shell canvas{height:100%;width:100%;touch-action:none}body.immersive .game-shell .hud-score,body.immersive .game-shell .hud-course,body.immersive .game-shell .hud-time{top:max(29px,env(safe-area-inset-top))}body.immersive .game-toolbar{top:auto;bottom:20px;left:38px;right:38px}body.immersive .game-toolbar .leave-button{position:absolute;left:0;bottom:64px}body.immersive .game-toolbar>div{margin-left:auto}body.immersive .hud-secondary{bottom:35px}body.immersive .hud-piece{bottom:91px;right:40px}body.immersive .mobile-controls #fire-button{bottom:155px}.game-shell:fullscreen{width:100%;height:100%;min-height:0;border-radius:0}.game-shell:fullscreen .hud-score,.game-shell:fullscreen .hud-course,.game-shell:fullscreen .hud-time{top:max(29px,env(safe-area-inset-top))}
@media(min-width:1600px){.game-shell{height:720px}.page-intro{padding:41px 0 35px}}
@media(max-width:1100px){.page-wrap{width:calc(100% - 60px)}.volume-label{display:none}.cover-copy h2{font-size:110px}.game-cover{padding:45px}.cover-notes{right:35px;bottom:32px}.field-notes-preview{gap:27px}.game-shell{height:610px}.cover-details{font-size:7px;gap:12px}.cover-details>span+span{padding-left:12px}.field-strip>p{font-size:9px}}
@media(max-width:800px){.page-wrap{width:calc(100% - 36px)}.site-header{height:80px}.site-header nav{gap:23px}.site-header nav a{display:none}.page-intro{padding:26px 0}.page-intro>p{display:none}.game-shell{height:620px}.game-cover{padding:34px}.cover-copy h2{font-size:106px}.cover-notes{bottom:29px;right:28px;max-width:225px}.cover-notes>p{font-size:9px}.field-strip>p{display:none}.field-strip>button{margin-left:auto}.field-notes-preview{grid-template-columns:repeat(3,1fr);gap:25px}.field-notes-preview>div:first-child{grid-column:1/-1;display:flex;gap:28px;align-items:start}.field-notes-preview h2{margin:0;font-size:35px}.field-notes-preview h2 br{display:none}.hud-score{left:24px}.hud-time{right:24px}.hud-secondary{left:24px}.hud-piece{right:24px}}
@media(pointer:coarse){.aim-pad{display:block}.mobile-controls #fire-button{width:84px;height:84px;right:max(26px,env(safe-area-inset-right));bottom:calc(49px + var(--safe-bottom));background:#1c352a35;border-color:#f3e6c7b3;box-shadow:0 0 0 7px #142c231f}.mobile-controls #fire-button>strong{font-size:17px}.mobile-controls #fire-button>svg{width:23px;height:23px}.mobile-controls #fire-button>small{font-size:6px}.hud-piece{bottom:156px;right:29px}.hud-secondary{left:50%;transform:translateX(-50%);gap:20px;bottom:22px;white-space:nowrap}.hud-secondary strong{font-size:20px}.hud-secondary span{font-size:7px}.control-status{display:none!important}body.immersive .game-toolbar{bottom:auto;top:calc(95px + env(safe-area-inset-top));left:20px;right:20px}body.immersive .game-toolbar .leave-button{position:static}.game-toolbar .icon-button span{display:none}body.immersive .hud-secondary{bottom:calc(19px + var(--safe-bottom));left:50%}body.immersive .hud-piece{bottom:calc(152px + var(--safe-bottom));right:28px}body.immersive .mobile-controls #fire-button{bottom:calc(47px + var(--safe-bottom))}}
@media(max-width:600px){.page-wrap{width:calc(100% - 24px)}.site-header{height:67px;gap:15px}.brand strong{font-size:30px}.brand-symbol{width:29px;height:29px}.brand-symbol svg{width:20px;height:20px}.brand{gap:8px}.series-label{font-size:6px;padding-left:15px;letter-spacing:.6px}.site-header nav{font-size:8px;letter-spacing:.4px}.site-header nav button span{font-size:12px;margin-left:3px}.page-intro{padding:23px 0 24px}.page-intro h1{font-size:43px;margin-top:7px}.eyebrow{font-size:7px;letter-spacing:1px}.game-shell{height:610px;min-height:0}.game-cover{padding:28px;align-items:start}.cover-copy{padding-top:41px}.cover-copy h2{font-size:106px;margin:26px 0 21px}.cover-copy>p{font-size:12px}.cover-copy .primary-button{width:256px}.cover-details{flex-direction:column;gap:6px;font-size:7px}.cover-details>span+span{border:0;padding:0}.cover-notes{bottom:26px;left:28px;right:auto;max-width:280px}.cover-notes>strong{font-size:17px}.cover-notes>p{font-size:9px}.cover-rule{margin-bottom:11px}.menu-best{font-size:7px}.game-toolbar{left:15px;right:15px;top:12px}.icon-button{padding:6px}.hud-score,.hud-course,.hud-time{top:56px}.hud-score{left:19px}.hud-time{right:19px}.hud-score>span,.hud-course>span,.hud-time>span{font-size:8px;letter-spacing:1px}.hud-score>strong,.hud-time>strong{font-size:34px}.hud-course>strong{font-size:28px;margin-top:4px}.hud-course>strong i{font-size:17px}.hud-course>small,.hud-time>small{font-size:6px;letter-spacing:.5px}.hud-score>small{top:48px;font-size:13px}.hud-secondary{gap:18px}.hud-secondary strong{font-size:20px}.hud-piece>small{font-size:6px}.hud-piece{right:23px}#nail-progress{gap:4px}#nail-progress b{font-size:7px;letter-spacing:.5px}#nail-progress i{width:4px;height:4px}.portrait-hint{display:block}.course-feedback{font-size:16px;letter-spacing:2px;top:23%}.shot-feedback{font-size:14px}.shot-feedback small{font-size:6px}.field-strip{gap:10px;padding:23px 0}.field-strip-title strong{font-size:7px;letter-spacing:.4px}.field-strip-title{gap:7px}.detail-mark{font-size:20px}.field-strip>button{font-size:7px;letter-spacing:.3px}.field-strip>button>span{font-size:13px;margin-left:5px}.field-notes-preview{padding:29px 0;gap:21px 17px;grid-template-columns:1fr 1fr}.field-notes-preview>div:first-child{display:block;grid-column:1;margin:0}.field-notes-preview h2{font-size:33px;line-height:1.05;margin-top:10px}.field-notes-preview h2 br{display:block}.field-notes-preview h3{font-size:10px}.field-notes-preview p{font-size:9px;line-height:1.8}.note-number{font-size:8px}footer{font-size:6px;padding:19px 0}footer>span:last-child{display:none}footer i{margin-left:7px}.results-screen{padding:25px}.results-inner h2{font-size:43px}.results-inner>p{font-size:9px;margin-bottom:15px}.final-score-block{padding:13px 0 15px}.final-score-block>strong{font-size:66px}.report-stats{grid-template-columns:repeat(3,1fr);gap:17px 16px;margin:19px 0 24px}.report-stats span{font-size:6px;letter-spacing:.5px}.report-stats strong{font-size:23px}.result-actions{display:block}.result-actions>.primary-button{width:100%;min-height:50px}.result-actions>.text-button{display:block;margin:12px auto 0;padding:8px}.record-badge{font-size:6px;padding:4px 6px;letter-spacing:.5px}.results-inner{padding:3px 0}.game-shell[data-phase=results]{height:680px}.game-shell[data-phase=results] .game-toolbar{display:none}dialog{padding:27px}dialog h2{font-size:42px}body.immersive .hud-score{left:19px}body.immersive .hud-time{right:19px}body.immersive .game-toolbar{left:15px;right:15px}}
@media(pointer:coarse) and (orientation:landscape){.portrait-hint{display:none}.hud-score,.hud-course,.hud-time{top:23px!important}.hud-score{left:max(24px,env(safe-area-inset-left))!important}.hud-time{right:max(24px,env(safe-area-inset-right))!important}.hud-score>strong,.hud-time>strong{font-size:33px}.hud-course>strong{font-size:29px}.hud-score>span,.hud-course>span,.hud-time>span{font-size:8px}.hud-course>small,.hud-time>small{font-size:6px}.game-toolbar{top:88px!important;left:max(23px,env(safe-area-inset-left))!important;right:max(23px,env(safe-area-inset-right))!important}.aim-pad{left:max(18px,env(safe-area-inset-left));width:40%;height:35%;bottom:21px;min-height:80px;max-height:145px}body.immersive .mobile-controls #fire-button,.mobile-controls #fire-button{width:72px;height:72px;bottom:27px;right:max(36px,env(safe-area-inset-right))}.hud-piece,body.immersive .hud-piece{bottom:117px;right:max(29px,env(safe-area-inset-right))}.hud-secondary,body.immersive .hud-secondary{bottom:22px;gap:26px}.hud-secondary strong{font-size:18px}.hud-secondary span{font-size:6px}.aim-zone-label{font-size:6px}.course-feedback{top:23%;font-size:18px}.results-screen{padding:25px 40px}.results-inner{max-width:640px;display:grid;grid-template-columns:1fr 1.1fr;gap:0 35px}.results-inner>.eyebrow,.results-inner>h2,.results-inner>p,.results-inner>.final-score-block{grid-column:1}.results-inner>h2{font-size:39px;margin:10px 0 6px}.results-inner>p{font-size:9px;margin:0 0 12px}.record-badge{position:absolute;top:20px;right:22px;float:none;font-size:6px}.results-inner>.final-score-block{border-bottom:0;padding:12px 0}.final-score-block>strong{font-size:58px}.report-stats{grid-column:2;grid-row:1/5;margin:4px 0 16px;grid-template-columns:1fr 1fr;gap:15px 16px;align-content:start}.report-stats strong{font-size:22px}.report-stats span{font-size:6px}.result-actions{grid-column:1/-1;display:flex;gap:30px;align-items:center;margin-top:6px}.result-actions>.primary-button{width:230px;min-height:45px;padding:12px 19px}.result-actions>.text-button{margin:0}.game-shell[data-phase=results]{height:440px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.game-shell[data-phase=intro] .intro-title{animation:none;opacity:1}}
.rhythm-meter{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);width:132px;text-align:center;opacity:.8;pointer-events:none}.rhythm-meter>span{font:7px var(--mono);letter-spacing:1.1px;color:#f5f1dc;text-shadow:0 1px 5px #0009}.rhythm-meter>div{display:flex;justify-content:center;gap:18px;margin:10px 0}.rhythm-meter i{display:block;width:5px;height:5px;border:1px solid #e9e6d180;border-radius:50%;transition:background .04s,box-shadow .04s}.rhythm-meter i.current{background:#f5ddb0;box-shadow:0 0 8px #edddad77}.rhythm-meter>b{display:block;height:1px;background:linear-gradient(90deg,#f2e2bf calc(var(--beat-phase,0)*100%),#ffffff24 0)}.rhythm-meter.pulse{opacity:1}.rhythm-meter[data-count="2"] i:nth-child(n+3){display:none}@media(pointer:coarse){.rhythm-meter{bottom:26px;width:108px}.rhythm-meter>div{gap:15px}}@media(pointer:coarse) and (orientation:portrait){.rhythm-meter{bottom:180px;width:100px}.rhythm-meter>span{font-size:6px}}
.game-shell[data-phase=trim] .hud,.game-shell[data-phase=trim] .mobile-controls{opacity:1}.game-shell[data-phase=trim] canvas{cursor:none}.game-shell[data-phase=trim] .rhythm-meter{opacity:0}.cut-hint{position:absolute;top:24%;left:50%;transform:translateX(-50%);font:600 14px var(--display);letter-spacing:1.6px;color:#fff3d7;text-shadow:0 2px 8px #0009;text-align:center;width:max-content;max-width:80%}.game-shell[data-phase=trim] #fire-button{border-color:#f3d49c;background:#735f3b55}
/* iPhone-first: the scene is the controller. No aim pad, fire button or beat UI. */
.control-status,.rhythm-meter,.mobile-controls{display:none!important}.start-portrait{display:none}.pause-screen{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:#142821a8;backdrop-filter:blur(5px);color:#fff8e8}.pause-screen>div{width:min(290px,80%);text-align:center}.pause-screen h2{font:600 50px var(--display);margin:12px 0 24px}.pause-screen button{width:100%;justify-content:center;margin:12px 0}.game-shell:not([data-phase=menu]) .portrait-hint{display:none}.hud-secondary>div:nth-child(2){display:none}.hud-score{left:calc(env(safe-area-inset-left,0px) + 18px)!important}.hud-time{right:calc(env(safe-area-inset-right,0px) + 18px)!important}.hud-score,.hud-course,.hud-time{top:calc(env(safe-area-inset-top,0px) + 15px)!important}.game-toolbar{left:calc(env(safe-area-inset-left,0px) + 16px)!important;right:calc(env(safe-area-inset-right,0px) + 16px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 15px)!important;top:auto!important}.hud-secondary{left:calc(env(safe-area-inset-left,0px) + 18px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 59px)!important}.hud-piece{right:calc(env(safe-area-inset-right,0px) + 18px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 59px)!important}.cut-hint{top:calc(env(safe-area-inset-top,0px) + 96px);font-size:13px}.game-shell[data-phase=intro] .intro-title{animation-duration:.65s}.game-shell.quick-intro[data-phase=intro] .intro-title{animation-duration:.22s}body.immersive{overscroll-behavior:none;-webkit-user-select:none;user-select:none}body.immersive img{-webkit-user-drag:none}body.immersive .game-shell{height:100dvh!important;min-height:0!important;touch-action:none;overscroll-behavior:contain}@media(pointer:coarse) and (orientation:portrait){.start-landscape{display:none}.start-portrait{display:inline}.portrait-hint{display:block}.game-shell[data-phase=menu] .portrait-hint{z-index:6;bottom:15px;top:auto}.hud-score>strong,.hud-time>strong{font-size:32px}.hud-course>strong{font-size:26px}}@media(pointer:coarse) and (orientation:landscape){.hud-score>strong,.hud-time>strong{font-size:30px}.hud-course>strong{font-size:26px}.hud-secondary,.hud-piece{bottom:calc(env(safe-area-inset-bottom,0px) + 55px)!important}.game-shell[data-phase=results]{height:450px}}

/* Safe areas override all earlier desktop and coarse-pointer placements. */
body.immersive .game-toolbar{top:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important;left:calc(env(safe-area-inset-left,0px) + 14px)!important;right:calc(env(safe-area-inset-right,0px) + 14px)!important}
body.immersive .game-toolbar .leave-button{position:static!important;bottom:auto!important}
body.immersive .hud-secondary{left:calc(env(safe-area-inset-left,0px) + 18px)!important;transform:none!important;bottom:calc(env(safe-area-inset-bottom,0px) + 62px)!important}
body.immersive .hud-piece{right:calc(env(safe-area-inset-right,0px) + 18px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 62px)!important}
body.immersive .hud-score{left:calc(env(safe-area-inset-left,0px) + 18px)!important}body.immersive .hud-time{right:calc(env(safe-area-inset-right,0px) + 18px)!important}
body.immersive .hud-score,body.immersive .hud-course,body.immersive .hud-time{top:calc(env(safe-area-inset-top,0px) + 13px)!important}
.game-toolbar button{min-width:44px;min-height:44px;touch-action:manipulation}.game-toolbar{pointer-events:none}.game-toolbar button{pointer-events:auto}
@media(pointer:coarse) and (orientation:landscape){.game-shell[data-phase=results]{height:calc(100dvh - 20px);min-height:340px}.results-screen{padding:18px calc(env(safe-area-inset-right,0px) + 25px) 18px calc(env(safe-area-inset-left,0px) + 25px)}.results-inner{max-width:700px;column-gap:35px}.results-inner>h2{font-size:34px}.report-stats{gap:16px 18px}.result-actions{margin-top:0}.result-actions>.primary-button{min-height:48px;width:280px}.results-inner>.final-score-block{padding:10px 0}.final-score-block>strong{font-size:52px}}

.game-shell[data-phase=results] .hud,.game-shell[data-phase=results] .game-toolbar,.game-shell[data-phase=results] .course-feedback,.game-shell[data-phase=results] .shot-feedback{display:none!important}
/* A phone held sideways should show Start before the first scroll. */
@media(pointer:coarse) and (orientation:landscape) and (max-height:550px){body[data-phase=menu] .site-header{height:52px}body[data-phase=menu] .page-intro{display:none}.game-shell[data-phase=menu]{height:calc(100dvh - 70px);min-height:280px}.game-shell[data-phase=menu] .game-cover{padding:18px 35px;align-items:center}.game-shell[data-phase=menu] .cover-copy h2{font-size:72px;margin:7px 0}.game-shell[data-phase=menu] .cover-copy>p{font-size:11px;line-height:1.5;margin:7px 0 13px}.game-shell[data-phase=menu] .cover-copy .primary-button{min-height:46px;padding-top:12px;padding-bottom:12px}.game-shell[data-phase=menu] .cover-details{font-size:6px;margin-top:13px}.game-shell[data-phase=menu] .cover-notes{right:28px;bottom:23px;max-width:210px}.game-shell[data-phase=menu] .cover-notes>p{font-size:9px}.game-shell[data-phase=menu] .cover-notes>strong{font-size:16px}.game-shell[data-phase=menu] .game-toolbar{display:none}}

/* Direct placement: the work surface stays still between completed shingles. */
.hud-secondary{gap:0}.hud-combo{display:none!important}.hud-piece>small{opacity:.65}.hud-piece b{display:none}#piece-label{opacity:.6}.game-shell[data-phase=playing] .course-feedback{font-size:14px}.shot-feedback{font-size:12px;letter-spacing:1px}.shot-feedback small{font-size:7px}.game-shell[data-phase=menu] .cover-copy>p{max-width:300px}
@media(pointer:coarse) and (orientation:landscape){.report-stats{grid-template-columns:repeat(4,1fr);grid-column:2;gap:16px 11px}.report-stats strong{font-size:20px}.report-stats span{font-size:6px}.results-inner{grid-template-columns:.85fr 1.5fr;gap:0 25px}}
