@font-face{font-family:'DM Sans';src:url('../grid-rush/assets/fonts/DMSans.woff2') format('woff2');font-weight:100 1000;font-display:swap}@font-face{font-family:'Space Grotesk';src:url('../grid-rush/assets/fonts/SpaceGrotesk.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--paper:#f6f3e9;--ink:#2e473e;--muted:#617367;--line:#d5ddcc;--green:#3f6955;--peach:#b37a55;--display:'Space Grotesk','DM Sans',sans-serif;--spring:cubic-bezier(.22,1.2,.36,1)}*{box-sizing:border-box}[hidden]{display:none!important}html{color-scheme:light}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 'DM Sans',system-ui,sans-serif}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #286590;outline-offset:4px}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.site-top{max-width:1200px;min-height:100px;display:flex;align-items:center;gap:29px;margin:auto;padding:20px 24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:400 25px var(--display);letter-spacing:-1.4px;white-space:nowrap}.brand b{font-weight:600}.brand i{color:var(--peach);font-style:normal}.brand>svg{width:36px;height:32px;stroke-width:1.7}.site-top .playground-home{font-size:12.1px}.header-note{margin-left:auto;font:500 10px var(--display);letter-spacing:1.1px;color:var(--muted)}main{max-width:1200px;margin:auto;padding:0 24px;view-transition-name:none!important}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding:36px 0 33px}.eyebrow{font:600 10px/1.6 var(--display);letter-spacing:1.5px}.intro .eyebrow{color:var(--green)}h1{font:500 clamp(44px,5.3vw,67px)/1.06 var(--display);letter-spacing:-3px;margin-top:14px}h1 em{color:#9a7155;font-style:normal}.intro>p{font-size:13px;line-height:1.8;color:var(--muted);padding-bottom:4px}h2{font:500 31px/1.15 var(--display);letter-spacing:-1px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:27px}.play-panel{position:relative;min-width:0;overflow:clip;border:1px solid var(--line);border-radius:23px;background:#fffdf5;isolation:isolate;view-transition-name:game-stage}.stage-top{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:63px;padding:12px 22px}.river-note{font:500 10px var(--display);letter-spacing:1.3px;color:var(--muted)}.river{position:relative;height:520px;overflow:hidden;isolation:isolate;background:#b2cdbd}canvas{display:block;width:100%;height:100%}.river-caption{position:absolute;left:32px;top:30px;pointer-events:none}.river-caption .eyebrow{font-size:10px;color:#4c6655}.river-caption h2{font-size:40px;line-height:1.05;margin-top:10px;color:#3e6351;letter-spacing:-1.5px}.throw-stone{position:absolute;left:23%;top:77%;width:116px;height:94px;margin:-47px 0 0 -58px;padding:0;border:0;background:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;z-index:3;transform:translate(var(--drag-x,0px),var(--drag-y,0px));transition:transform 350ms var(--spring);cursor:grab}.throw-stone.is-held{transition:none;cursor:grabbing}.stone-body{display:grid;place-items:center;filter:drop-shadow(0 7px 1px #476d5b35);transform:scaleX(var(--stone-x,1)) scaleY(var(--stone-y,1)) rotate(var(--stone-tilt,-12deg));transition:transform 180ms var(--spring)}.stone-body svg{width:90px;height:56px;overflow:visible}.is-held .stone-body{transform:scaleX(calc(var(--stone-x,1)*1.08)) scaleY(calc(var(--stone-y,1)*.93)) rotate(var(--stone-tilt,-12deg))}.stone-arrow{position:absolute;left:50%;top:-5px;font-size:27px;color:#385f4c;opacity:.8}.river-controls{padding:18px 22px 16px;min-height:105px}.river-controls>p:first-child{font-size:12px;line-height:1.8;min-height:23px}.input-note{font-size:12.1px;color:var(--muted);line-height:1.7;margin-top:9px}.charge{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:12.1px}.charge>span{min-width:73px}.charge output{font:500 13px var(--display);min-width:38px;text-align:right}meter{width:100%;height:10px;flex:1;min-width:0;accent-color:#537e62}meter::-webkit-meter-bar{background:#e5eadb;border:0;border-radius:8px}meter::-webkit-meter-optimum-value{background:#719975;border-radius:8px}.motion-actions{display:flex;align-items:center;gap:7px;margin-top:12px}.motion-actions .primary-button{width:auto;flex:1;min-height:44px;font-size:12.1px;padding:10px}.motion-actions .text-button{font-size:12.1px;padding:8px}.flight-counter{position:absolute;top:24px;left:25px;display:flex;align-items:baseline;gap:10px;color:#284f41;background:#f7f7dcbd;border:1px solid #e3e8cb;border-radius:12px;padding:9px 13px}.flight-counter>span{font:600 10px var(--display);letter-spacing:1px}.flight-counter strong{font:500 30px/1 var(--display)}.flight-counter small{font-size:12.1px}.text-button{border:0;background:none;padding:9px;min-height:44px;font-size:12.1px;color:var(--green)}.primary-button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:49px;border:0;border-radius:11px;padding:12px 16px;background:var(--ink);color:#fffaf0;font-weight:600;font-size:13px}.primary-button>span{font-size:21px}.sidebar{display:grid;gap:26px}.setup-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fffcf5}.setup-card>.eyebrow{color:var(--muted)}.setup-card h2{margin:15px 0 20px;font-size:31px}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.65}.setting{margin:0 0 14px}.setting>label{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:5px}.setting small{font-size:12.1px;color:var(--muted);white-space:nowrap}.setting>div{display:flex;align-items:center;gap:8px}.setting input[type=range]{width:100%;min-width:0;height:33px;margin:0;accent-color:#61826b;cursor:pointer}.setting input[type=number]{width:52px;min-height:36px;background:#f2f2e7;border:1px solid var(--line);border-radius:7px;padding:5px 2px;text-align:center;font-size:13px;appearance:textfield}.setting input::-webkit-inner-spin-button{appearance:none}.setting>div>span{font-size:10px;white-space:nowrap;width:36px;color:var(--muted);flex-shrink:0}.setup-quality{display:flex;justify-content:space-between;gap:10px;font-size:12.1px;border-top:1px solid var(--line);padding:12px 0 15px}.setup-quality strong{font:600 13px var(--display);color:var(--green)}.throw-modes{position:relative;--orange:#6d8e70;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}.throw-modes legend{font-size:12.1px;margin-bottom:9px}.throw-modes label{position:relative;cursor:pointer;min-width:0}.throw-modes input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.throw-modes label>span{display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;font-size:12.1px;min-height:44px;padding:6px}.throw-modes input:checked+span{background:#e5ecd9;border-color:#79916c;box-shadow:inset 0 0 0 1px #79916c}.throw-modes input:focus-visible+span{outline:3px solid #286590;outline-offset:3px}.setup-note{font-size:12.1px;line-height:1.8;color:var(--muted);margin-top:13px;min-height:36px}.records{padding:0 8px}.records>.eyebrow{color:var(--muted)}.records h2{font-size:26px;margin:12px 0 18px}.records h2 span{color:var(--peach)}.records details{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}summary::-webkit-details-marker{display:none}.records summary>span{font:500 10px var(--display);letter-spacing:1px;color:var(--muted)}.records ol{list-style:none;padding:0;margin:0 0 15px}.record-row{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #dce2d34d}.record-rank{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#e6eada;font:500 12.1px var(--display)}.record-row:first-child .record-rank{background:#e9d2b4;color:#725136}.record-detail{font-size:12.1px;color:var(--muted)}.record-detail b{display:block;font-size:12.1px;font-weight:500;color:var(--ink)}.record-value{font:500 20px var(--display);letter-spacing:-.7px}.record-value small{font-size:10px;margin-left:3px}.records .empty{padding:9px 0 14px;font-size:12.1px;color:var(--muted)}.storage-note{font-size:10px;color:var(--muted);line-height:1.6}.result{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,calc(100% - 32px));max-height:calc(100% - 20px);overflow:auto;overscroll-behavior:contain;padding:22px 23px 12px;background:#fffcf3f5;border:1px solid #dce2cd;border-radius:22px;text-align:center;box-shadow:0 20px 70px #355c4630;animation:result-in 420ms var(--spring)}.result-seal{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;margin:0 auto 10px;background:#e4edda;font-size:19px;color:#3d6c4b}.result>.eyebrow{font-size:10px}.result h2{font-size:28px;margin:8px 0 10px;outline:none}.result-metrics{display:grid;grid-template-columns:1fr 1fr;margin:13px 0}.result-metrics>div+div{border-left:1px solid var(--line)}.result-metrics strong{display:block;font:500 46px/1.2 var(--display);letter-spacing:-2px}.result-metrics span{font-size:12.1px;color:var(--muted)}#record-note{font-size:12.1px;line-height:1.6;color:var(--green);min-height:18px}.result-power{display:flex;justify-content:center;gap:12px;font-size:12.1px;margin:11px 0;color:var(--muted)}.result-power b{color:var(--green);font-weight:500}.breakdown{border-block:1px solid var(--line);margin:0 0 14px;text-align:left}.breakdown summary{font-size:12.1px}.breakdown summary b{font:500 13px var(--display)}.breakdown ul{list-style:none;padding:0 0 9px;margin:0;font-size:12.1px;color:var(--muted)}.breakdown li{display:flex;justify-content:space-between;gap:10px;margin:4px 0}.recipe{margin-top:45px;padding:29px 0;display:grid;grid-template-columns:240px 1fr;gap:32px;border-block:1px solid var(--line)}.recipe h2{margin:13px 0 12px;font-size:30px}.recipe>div>p:last-child{font-size:12.1px;color:var(--muted)}.recipe-parts{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;align-content:center}.recipe-parts>div{padding:6px 0}.recipe-parts b{font:500 25px var(--display);letter-spacing:-1px;color:#698366}.recipe-parts h3{font-size:12.1px;font-weight:500;margin:4px 0}.recipe-parts p{font-size:12.1px;line-height:1.7;color:var(--muted)}.recipe-parts .power-part{grid-column:1/-1;display:grid;grid-template-columns:62px 95px 1fr;align-items:center;gap:13px;border-top:1px solid var(--line);padding-top:13px}.power-part b{color:var(--peach)}footer{display:flex;justify-content:space-between;gap:24px;padding:25px 0 30px;font-size:12.1px;color:var(--muted)}.skip-link{position:absolute;top:8px;left:8px;transform:translateY(-160%);z-index:60;padding:10px;background:var(--ink);color:white;border-radius:8px}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.noscript-note{text-align:center;padding:20px}
@keyframes result-in{from{opacity:0;clip-path:circle(0 at 50% 45%)}to{opacity:1;clip-path:circle(100% at 50% 45%)}}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 285px;gap:19px}.setup-card{padding:20px}.river{height:510px}.recipe{grid-template-columns:200px 1fr;gap:23px}.header-note{font-size:10px}}
@media(max-width:760px){.site-top{min-height:83px;padding:17px 20px;gap:15px}.brand{font-size:23px}.brand>svg{width:30px}.header-note{display:none}.site-top .playground-home{margin-left:auto;font-size:12.1px}main{padding:0 18px}.intro{padding:29px 0 26px;display:block}.intro>p{margin-top:15px;font-size:12px}.intro h1{font-size:50px;letter-spacing:-2.7px}.game-layout{grid-template-columns:1fr;gap:24px}.river{height:400px}.river-caption{left:23px;top:26px}.river-caption h2{font-size:37px}.stage-top{min-height:55px;padding:9px 17px}.stage-top .eyebrow{font-size:10px}.river-note{font-size:10px}.sidebar{gap:24px}.setup-card{padding:23px}.setup-card h2{font-size:31px}.setting input[type=number]{font-size:16px;width:60px;min-height:42px}.setting>label{font-size:12px}.setting input[type=range]{height:40px}.setup-note{font-size:12.1px}.throw-modes label>span{font-size:12px}.records{padding:0 10px}.records h2{font-size:29px}.record-value{font-size:24px}.record-detail{font-size:12.1px}.record-row{padding:11px 0}.recipe{grid-template-columns:1fr;margin-top:31px;gap:20px}.recipe-parts{grid-template-columns:repeat(2,1fr);gap:17px}.recipe-parts .power-part{grid-template-columns:65px 1fr}.power-part p{grid-column:1/-1}.recipe h2{font-size:32px}.recipe-parts p{font-size:12.1px}.river-controls{padding:15px 17px}.river-controls>p:first-child{font-size:12.1px}footer{display:block;font-size:10px;line-height:1.8}footer>span{display:block}footer>span+span{margin-top:8px}}
html.play-locked{height:100%;overflow:hidden;overscroll-behavior:none}body.play-locked{position:fixed;top:0;left:0;right:0;overflow:hidden}.play-locked .play-panel{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;width:100%;height:100dvh;border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);view-transition-name:none}.play-locked .stage-top{flex:none;min-height:54px;padding:6px 16px}.play-locked .river{height:auto;flex:1;min-height:0}.play-locked .river-caption h2{font-size:33px}.play-locked .river-controls{flex:none;min-height:100px;background:#fffdf5}.play-locked .input-note{font-size:10px;margin-top:5px}.play-locked .result{max-height:calc(100% - 20px)}
@media(max-width:360px){.site-top{padding-inline:15px;gap:10px}.brand{font-size:21px}.brand>svg{width:26px}main{padding-inline:14px}.intro h1{font-size:44px}.result{padding:16px 15px 8px}.result h2{font-size:24px}.result-metrics strong{font-size:39px}.result>.eyebrow{font-size:10px}.river-caption h2{font-size:33px}.river-note{display:none}}
@media(max-height:480px) and (orientation:landscape){.play-locked .stage-top{min-height:44px}.play-locked .river-controls{position:absolute;right:15px;bottom:12px;width:min(300px,43%);border:1px solid var(--line);border-radius:12px;padding:8px 12px;min-height:0;background:#fffcf3ed}.play-locked .river-controls .input-note{display:none}.play-locked .river-caption{top:15px}.play-locked .river-caption h2{font-size:28px}.play-locked .result{padding:12px 18px 5px;width:350px}.play-locked .result-seal{display:none}.play-locked .result h2{font-size:23px}.play-locked .result-metrics{margin:6px 0}.play-locked .result-metrics strong{font-size:32px}.play-locked .result-power{margin:5px}.play-locked .breakdown{margin-bottom:7px}.play-locked .result .primary-button{min-height:42px;padding-block:8px}.play-locked .result .text-button{min-height:36px;padding:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.recipe-parts{grid-template-columns:repeat(2,minmax(0,1fr))}

.motion-score-note{font-size:12.1px;line-height:1.6;color:var(--muted);margin:8px 0}.motion-metrics{display:grid;gap:6px;margin:8px 0 14px;font-size:12.1px}.motion-metrics>div{display:flex;justify-content:space-between;gap:12px}.motion-metrics dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}
