@font-face{font-family:system;src:local('Arial')}*{box-sizing:border-box} :root{--ink:#122e3a;--muted:#496674;--paper:#f2f7fa;--panel:#ffffff;--line:#cddbe2;--yellow:#dafa52;--green:#28764e;--mono:'Courier New',monospace}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,a,select,input{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,.gesture-pad:focus-visible{outline:3px solid #668e29;outline-offset:4px}button:hover{filter:brightness(.96)}[hidden]{display:none!important}.topbar{height:90px;max-width:1400px;padding:0 54px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;font-weight:900;letter-spacing:-1px;font-size:22px;line-height:1}.brand svg{width:38px;height:38px}.brand small{display:block;font:10px var(--mono);letter-spacing:3.9px;margin-top:6px}.top-actions{display:flex;align-items:center;gap:15px}.version{font:10px var(--mono);color:var(--muted);letter-spacing:1px}.icon-btn{width:36px;height:36px;background:transparent;border:1px solid var(--line);border-radius:50%;font:20px var(--mono);position:relative}.slash{position:absolute;font-size:24px;left:15px;top:6px}.install-btn{background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;padding:12px 15px;display:flex;gap:18px;align-items:center}.shell{max-width:1400px;padding:38px 54px 0;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{font:10px var(--mono);letter-spacing:1.9px;font-weight:700;margin:0 0 12px;color:var(--muted)}h1{font-size:clamp(24px,3.3vw,43px);line-height:1.1;letter-spacing:-1.7px;margin:0;font-weight:800}h1 em{font-style:normal;color:#6d8871}.personal-best{text-align:right;flex-shrink:0}.personal-best>span{font:9px var(--mono);letter-spacing:1.3px;display:block;color:var(--muted);margin-bottom:6px}.personal-best strong{font:bold 28px var(--mono);letter-spacing:-1.5px}.personal-best small{font:13px var(--mono);color:var(--muted)}.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:25px}.tab{padding:0 0 14px;background:transparent;color:var(--muted);font-weight:700;font-size:12px;position:relative;white-space:nowrap}.tab>span:not([data-i18n]){font-size:18px;margin-right:7px;vertical-align:-1px}.tab.active{color:var(--ink)}.tab.active:after{content:'';height:3px;width:100%;position:absolute;bottom:-1px;left:0;background:var(--ink)}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 256px;gap:28px}.play-column{min-width:0}.lake-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:10px}.venue-name{display:flex;align-items:center;gap:12px}.venue-name>span{font-size:24px}.venue-name h2{font-size:22px;letter-spacing:-.8px;margin:0 0 3px}.venue-name p{font-size:10px;color:var(--muted);margin:0}.conditions{display:flex;gap:22px}.conditions>div>span{display:block;font:8px var(--mono);color:var(--muted);letter-spacing:1px;margin-bottom:5px}.conditions strong{font:12px var(--mono);font-weight:700;white-space:nowrap}.conditions small{font-size:9px}.arena{width:100%;aspect-ratio:1.93;min-height:230px;position:relative;overflow:hidden;background:#e8efd8;border:1px solid #d6decc}canvas{display:block;width:100%;height:100%}.arena-hud{position:absolute;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}.stage-badge{font:9px var(--mono);font-weight:700;letter-spacing:1px;background:var(--ink);color:var(--paper);padding:7px 9px}.round-counter{font:9px var(--mono);font-weight:700;letter-spacing:1px;align-self:center}.live-stats{position:absolute;top:62px;right:20px;text-align:right;pointer-events:none;display:none}.live-stats strong{font:bold 36px var(--mono);letter-spacing:-2px}.live-stats strong>span{font:13px var(--mono);letter-spacing:0;margin-left:5px}.live-stats>div{font:9px var(--mono);color:#345f65;margin-top:3px}.arena-bottom{display:flex;position:absolute;bottom:12px;left:20px;right:20px;justify-content:space-between;font:7px var(--mono);color:#153d44b0;letter-spacing:1px;pointer-events:none}.skip-btn{position:absolute;right:16px;bottom:38px;background:#fffef5d0;font:10px var(--mono);padding:9px}.intro{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#f5f7e4ee 0%,#f5f7e498 40%,#f5f7e400 78%)}.intro-card{margin-left:34px}.intro-card .eyebrow{font-size:8px;letter-spacing:1.2px;color:#5a755f}.intro-card h2{font-weight:900;font-size:clamp(33px,4.6vw,60px);line-height:.97;letter-spacing:-2.7px;margin:0 0 13px}.intro-card p:not(.eyebrow){font-size:11px;line-height:1.6;color:#527067;margin:0 0 17px}.primary{background:var(--ink);color:var(--panel);padding:14px 18px;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:34px;min-height:44px;border-radius:2px}.primary>span:not([data-i18n]){font-size:18px}.text-btn{font-size:10px;font-weight:700;background:none;color:var(--muted);padding:10px 0}.intro-card .text-btn{margin-top:3px}.attempt-strip{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:15px 0;gap:12px}.attempt-label>span{font:8px var(--mono);color:var(--muted);letter-spacing:1px;display:block;margin-bottom:5px}.attempt-label strong{font:700 17px var(--mono)}.attempts{display:flex;gap:10px}.attempt{border:1px solid var(--line);min-width:72px;padding:8px 10px;text-align:center}.attempt small{font:7px var(--mono);display:block;color:var(--muted);margin-bottom:3px;letter-spacing:1px}.attempt strong{font:11px var(--mono)}.attempt.current{border-color:#9ab354;background:#edf3cf}.attempt.invalid strong{color:#a2614d}.control-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0}.control-head h3{font-size:14px;margin:0 0 6px;letter-spacing:-.2px}.control-head p{font-size:10px;color:var(--muted);margin:0;line-height:1.4}.small-btn{font-size:11px;background:transparent;border:1px solid var(--line);padding:11px 12px;white-space:nowrap}.small-btn>span{margin-left:3px}.meters{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:18px;margin-bottom:13px}.meters>div>span{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;margin-bottom:7px;color:var(--muted)}.meters b{color:var(--ink);letter-spacing:0}.meter,.timing-meter{height:7px;background:#dce3d1;position:relative;overflow:visible}.meter i{display:block;background:#294d45;height:100%;width:0}.angle-meter i{width:18%;position:absolute;height:11px;top:-2px;width:3px!important;left:17%;background:var(--ink);z-index:2}.angle-zone{position:absolute;left:8.3%;width:18.75%;height:7px;background:#a7c66c}.timing-meter .green-zone{position:absolute;left:60%;width:24%;height:7px;background:#91b859}.timing-meter:after{content:'';position:absolute;left:72%;top:-3px;height:13px;width:1px;background:#719041}.timing-meter i{position:absolute;left:0;top:-4px;height:15px;width:3px;background:var(--ink);z-index:2;transition:none}.gesture-pad{height:118px;border:1px solid #c9d1b5;background:#eaf0d9;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;cursor:grab;border-radius:3px}.gesture-pad.aiming{cursor:grabbing;border-color:#879d4c;background:#e7f0cc}.gesture-pad.disabled{pointer-events:none;opacity:.4}.gesture-pad>svg{width:100%;height:100%;position:absolute;inset:0}.gesture-pad>svg path{fill:none;stroke:#b6c699;stroke-width:1.5;stroke-dasharray:6 6}.gesture-pad>svg .guide-arrow{stroke-dasharray:none}.pad-guide{position:absolute;left:10%;top:36%;pointer-events:none;transition:opacity .2s}.pad-guide span{font:9px var(--mono);letter-spacing:1px;font-weight:bold}.pad-guide small{display:block;font:9px var(--mono);color:#7c8e6f;margin-top:6px}.held-stone{position:absolute;left:80%;top:34%;width:48px;transform:translate(-50%,-50%);pointer-events:none}.held-stone>svg{width:45px;height:36px;filter:drop-shadow(0 6px 0 #cfd9b780)}.held-stone>svg path:first-child{fill:#6d827c;stroke:#526963;stroke-width:1}.held-stone>svg path:last-child{fill:none;stroke:#879b90;stroke-width:1}.held-stone>span{position:absolute;top:50px;left:50%;transform:translateX(-50%);font:7px var(--mono);letter-spacing:1px;color:var(--muted);white-space:nowrap}.pad-instruction{position:absolute;bottom:11px;left:0;right:0;text-align:center;font:8px var(--mono);color:#7b8e70;pointer-events:none}.aiming .pad-guide,.aiming .held-stone>span{opacity:0}.control-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px}.control-foot>span{font:8px var(--mono);color:var(--muted)}.touch-hint{display:none}.sidebar{border-left:1px solid var(--line);padding-left:26px}.tour-progress .eyebrow{margin-bottom:17px;font-size:8px}.tour-progress>div:not(.route-dots){display:flex;justify-content:space-between;align-items:end}.tour-progress strong{font:700 40px var(--mono);letter-spacing:-2px}.tour-progress strong small{font:13px var(--mono);color:var(--muted);letter-spacing:-1px}.tour-progress div>span{font:8px var(--mono);color:var(--muted);margin-bottom:7px}.route-dots{display:flex;gap:8px;margin-top:21px;align-items:center}.route-dot{height:7px;width:7px;border-radius:50%;background:#cbd5c1}.route-dot.active{width:10px;height:10px;background:#426849;box-shadow:0 0 0 3px #dee7d2}.route-dot.done{background:#8ba15a}.tour-progress>p:last-child{font-size:10px;color:var(--muted);margin:17px 0 27px;line-height:1.5}.section-title{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-bottom:13px}.section-title h3{font-size:12px;margin:0}.section-title>span{font:7px var(--mono);color:var(--muted)}.mini-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;padding:10px 0;border-bottom:1px solid #e4e7d8;gap:6px}.mini-row>span:first-child{font:9px var(--mono);color:var(--muted);width:13px}.mini-row .athlete{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-row .athlete>span{margin-right:6px}.mini-row b{font:10px var(--mono);font-weight:bold}.mini-row.me{background:#e5edce;padding:10px 7px;margin-left:-7px;margin-right:-7px;color:#335340;font-weight:bold;border:0}.wide{width:100%;text-align:left;display:flex;justify-content:space-between;margin-top:5px;font-size:9px}.rule-note{display:flex;gap:14px;align-items:center;border-top:1px solid var(--line);margin-top:17px;padding-top:18px}.rule-note>span{font:700 34px var(--mono);color:#91a381}.rule-note p{font-size:10px;line-height:1.6;color:var(--muted);margin:0}.rule-note b{color:var(--ink)}.training-select{border-top:1px solid var(--line);padding:16px 0;margin-top:24px;background:transparent;color:var(--muted);font-size:9px;width:100%;text-align:left}.feedback{background:var(--ink);padding:20px;color:var(--panel);margin-top:15px;display:grid;grid-template-columns:1fr auto;gap:10px 15px}.feedback>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.feedback p{margin:0}.feedback #feedbackLabel{font:8px var(--mono);color:var(--yellow);letter-spacing:1px;flex-basis:100%}.feedback strong{font:700 30px var(--mono);letter-spacing:-1px}.feedback #feedbackDetail{font:10px var(--mono);color:#a7c4bc}.feedback #feedbackTip{font-size:11px;color:#c0d4c6;line-height:1.5;grid-row:2;grid-column:1}.feedback .primary{grid-column:2;grid-row:1/3;background:var(--yellow);color:var(--ink);align-self:center;font-size:11px;gap:0}.feedback .text-btn{grid-column:1/3;color:#93b6a6;text-align:left;padding:0;font-size:9px}.view-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0;gap:20px}.view-heading h2{font-size:28px;letter-spacing:-1px;margin:0}.view-heading p:not(.eyebrow){font-size:11px;line-height:1.7;color:var(--muted)}.view-heading>span{font:9px var(--mono);color:var(--muted)}.world-map{background:#e7edde;position:relative;border:1px solid var(--line);height:300px;overflow:hidden}.world-map svg{width:100%;height:100%}.continents{fill:#c9d7bc;stroke:#b9cbaa;stroke-width:1}.map-route{stroke:#74916b;stroke-width:1.5;fill:none;stroke-dasharray:5 5}.world-map>span{position:absolute;left:20px;bottom:13px;font:8px var(--mono);color:var(--muted)}.venue-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}.venue-card{border:1px solid var(--line);background:#f8faef;position:relative;overflow:hidden}.venue-card.current{border-color:#73925c}.venue-art{height:100px;position:relative;overflow:hidden}.venue-art .hill{position:absolute;background:var(--hill);width:130%;height:85%;clip-path:polygon(0 90%,15% 75%,30% 10%,47% 65%,65% 5%,85% 50%,100% 30%,100% 100%,0 100%);bottom:28%;left:-10%}.venue-art .water{background:var(--water);position:absolute;bottom:0;height:45%;width:100%}.venue-art .water:after{content:'';position:absolute;top:18px;width:70%;left:15%;height:1px;background:#ffffff40;box-shadow:20px 8px 0 #ffffff30,-20px 18px 0 #ffffff20}.venue-art>span{position:absolute;top:12px;left:12px;font:8px var(--mono);padding:4px 5px;background:#f6f8e3bb;letter-spacing:1px}.venue-card .card-content{padding:17px}.venue-card h3{font-size:19px;letter-spacing:-.6px;margin:0 0 6px}.venue-card .card-content>p{color:var(--muted);font-size:10px;margin:0 0 17px}.card-stats{display:flex;justify-content:space-between;color:var(--muted);font:9px var(--mono);margin-bottom:16px;gap:8px}.venue-card button{width:100%;text-align:left;display:flex;justify-content:space-between;background:transparent;border-top:1px solid var(--line);padding:12px 0 0;font-size:10px;font-weight:700;color:var(--ink)}.quiet-note{font-size:10px;color:var(--muted);margin:24px 0;line-height:1.5}.table-wrap{overflow-x:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;white-space:nowrap;background:#f8faef}th{background:#e8eddd;font:8px var(--mono);letter-spacing:.7px;color:var(--muted);padding:15px 19px;text-align:right}th:nth-child(-n+2){text-align:left}td{font-size:12px;padding:14px 19px;border-bottom:1px solid var(--line);text-align:right}td:nth-child(1){font:11px var(--mono);text-align:left;color:var(--muted);width:55px}td:nth-child(2){text-align:left;font-weight:bold}td:nth-child(2)>span{margin-right:10px}.player-row{background:#e4eccb}.player-row td{border-color:#d3dfba}.table-wrap td:nth-child(3){font:bold 14px var(--mono)}.standing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{border:1px solid var(--line);padding:21px}.stat-card>span{font:8px var(--mono);color:var(--muted);letter-spacing:1px;display:block}.stat-card strong{display:block;font:700 32px var(--mono);letter-spacing:-1px;margin-top:12px}.stat-card.highlight{background:var(--ink);color:var(--yellow);border-color:var(--ink)}.stat-card.highlight>span{color:#acbeb0}.points-key{display:flex;flex-wrap:wrap;gap:22px;padding:22px 0;font:10px var(--mono);color:var(--muted)}.points-key>b{color:var(--ink)}.settings-line{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:20px 0}.settings-line label{font-size:10px;color:var(--muted)}.settings-line select{margin-left:12px;padding:9px 15px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:11px}.records-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.record-card{padding:25px;border:1px solid var(--line);background:#f8faef}.record-card>span{font-size:23px}.record-card h3{margin:12px 0 18px;font-size:15px}.record-card strong{display:block;font:bold 27px var(--mono);letter-spacing:-1px}.record-card p{color:var(--muted);font:9px var(--mono);margin:9px 0 0}.history-block{margin:30px 0}.history-block h3{font-size:15px;margin:0 0 17px}.history-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 0;font-size:11px;gap:8px}.history-row span{color:var(--muted);font-size:10px}.history-row b{font:11px var(--mono);font-weight:bold}.empty{font-size:12px;color:var(--muted);padding:20px 0;line-height:1.7}.shell footer{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);margin-top:30px;min-height:62px;font:8px var(--mono);color:var(--muted)}footer>span:first-child{color:var(--ink);letter-spacing:1px}footer b{font-weight:normal;color:var(--muted);margin-left:7px}footer .text-btn{font-size:8px}dialog{border:1px solid var(--line);padding:0;background:var(--panel);color:var(--ink);width:min(580px,calc(100% - 28px));max-height:88dvh;box-shadow:0 20px 100px #172e3230}dialog::backdrop{background:#132d3370;backdrop-filter:blur(3px)}.modal-shell{padding:34px;position:relative}.modal-close{position:absolute;right:16px;top:16px;border:0}.modal-shell h2{font-size:28px;letter-spacing:-1px;margin:0 0 18px;max-width:90%}.modal-shell h3{font-size:14px;margin:23px 0 8px}.modal-shell p{font-size:12px;line-height:1.7;color:var(--muted)}.modal-shell .eyebrow{font-size:9px;line-height:1.4;letter-spacing:1.5px}.modal-shell .primary{width:100%;margin-top:22px}.tutorial-steps{display:grid;gap:15px;margin:23px 0}.tutorial-step{display:flex;gap:15px;align-items:start}.tutorial-step>span{font:bold 25px var(--mono);color:#91a471}.tutorial-step b{font-size:12px}.tutorial-step p{font-size:11px;margin:5px 0 0;line-height:1.6}.modal-tip{background:#e9efdb;padding:13px 15px;font-size:11px!important}.results-table{max-height:41dvh;overflow-y:auto;margin-top:20px;border:1px solid var(--line)}.results-table table{width:100%}.results-table th,.results-table td{padding:10px 9px;font-size:10px}.results-table th{font:8px var(--mono)}.results-table td:nth-child(1){width:20px}.results-table td:nth-child(2){max-width:160px;overflow:hidden;text-overflow:ellipsis}.result-hero{font:bold 42px var(--mono);letter-spacing:-2px;margin:10px 0}.result-hero small{font:13px var(--mono);color:var(--muted);letter-spacing:0}.result-state{display:inline-block;background:#e1edbe;font:9px var(--mono);padding:8px 10px;font-weight:bold}.stone-options{display:grid;gap:12px;margin-top:22px}.stone-option{display:flex;border:1px solid var(--line);padding:18px;background:none;text-align:left;gap:18px;color:var(--ink);align-items:center}.stone-option.selected{background:#e9efdb;border-color:#93aa72}.stone-option svg{width:48px;height:38px;flex-shrink:0}.stone-option b{font-size:13px}.stone-option small{display:block;color:var(--muted);font-size:10px;margin-top:6px;line-height:1.5}.modal-shell input{padding:13px;width:100%;border:1px solid var(--line);background:#f5f7ea;color:var(--ink);font-size:15px}.modal-shell label{font-size:11px;font-weight:bold;display:block;margin:21px 0 7px}.source-links{display:flex;flex-direction:column;gap:10px;font-size:11px}.source-links a{color:#517848}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:11px;padding:13px 20px;max-width:90%;z-index:5;box-shadow:0 4px 24px #172e3220}.mini-help{font:9px var(--mono);background:#e9efdb;padding:12px;text-align:center;color:#6a8064}.modal-actions{display:flex;gap:12px}.modal-actions button{flex:1}.modal-actions .secondary{background:#e4ebd6;color:var(--ink)}.trophy{font:64px var(--mono);color:#91a74d;line-height:1}.about-meta{font:9px var(--mono)!important;color:#879882!important}
@media(min-width:1500px){.shell{padding-top:48px}.arena{aspect-ratio:1.9}}
@media(max-width:1100px){.topbar{padding:0 30px;height:76px}.shell{padding:28px 30px 0}.game-grid{grid-template-columns:minmax(0,1fr) 216px;gap:20px}.sidebar{padding-left:19px}.intro-card{margin-left:25px}.intro-card h2{font-size:43px}.intro-card p:not(.eyebrow){font-size:10px;margin-bottom:12px}.intro-card .primary{padding:11px 14px;min-height:40px}.keyboard-hint{max-width:70%;line-height:1.5}.venue-cards,.records-grid{gap:12px}.record-card{padding:20px}.conditions{gap:16px}}
@media(max-width:780px){.topbar{height:65px;padding:0 20px}.brand{font-size:19px;gap:9px}.brand svg{width:30px}.brand small{font-size:8px;letter-spacing:3.6px;margin-top:5px}.top-actions{gap:9px}.version{display:none}.install-btn{font-size:9px;padding:10px 11px;gap:10px}.icon-btn{width:32px;height:32px;font-size:17px}.slash{font-size:21px;left:12px;top:5px}.shell{padding:25px 20px 0}.page-head{margin-bottom:24px;gap:10px}.page-head .eyebrow{font-size:8px;letter-spacing:1.25px;margin-bottom:9px}h1{font-size:29px;letter-spacing:-1.2px}.personal-best>span{font-size:7px;letter-spacing:.6px}.personal-best strong{font-size:23px}.personal-best small{font-size:10px}.game-grid{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.tabs{gap:25px;margin-bottom:20px}.tab{font-size:11px;padding-bottom:12px}.tab>span:not([data-i18n]){font-size:16px;margin-right:5px}.lake-top{margin-bottom:13px}.venue-name h2{font-size:20px}.arena{aspect-ratio:1.75;min-height:220px}.intro-card h2{font-size:45px}.intro-card .eyebrow{font-size:7px}.gesture-pad{height:130px}.keyboard-hint{display:none}.touch-hint{display:block}.control-head{margin:15px 0}.view-heading h2{font-size:25px}.world-map{height:240px}.venue-cards,.records-grid{grid-template-columns:repeat(2,1fr);gap:13px}.standing-summary{gap:10px}.stat-card{padding:18px 12px}.stat-card>span{font-size:7px}.stat-card strong{font-size:28px}.view-heading{align-items:start;margin-top:22px}.view-heading p:not(.eyebrow){font-size:10px;max-width:180px;margin:0}.view-heading>span{font-size:7px;max-width:100px;text-align:right;line-height:1.8}.shell footer{font-size:7px;margin-top:23px}.shell footer>span:nth-child(2){font-size:6px;max-width:140px;text-align:center;line-height:1.6}.modal-shell{padding:28px}.points-key{gap:13px;font-size:9px}.control-foot .text-btn{font-size:9px;min-height:35px}}
@media(max-width:480px){.topbar{padding:0 16px;height:60px}.top-actions{gap:7px}.brand{font-size:17px;letter-spacing:-.7px}.brand small{font-size:7px;letter-spacing:3.3px}.brand svg{width:26px}.install-btn{font-size:8px;padding:9px;gap:7px}.icon-btn{width:29px;height:29px}.shell{padding:20px 16px 0}.page-head{align-items:end;gap:10px;margin-bottom:22px}h1{font-size:27px;line-height:1.1;max-width:215px}h1 em{display:block}.page-head .eyebrow{font-size:6px;letter-spacing:1px}.personal-best{padding-bottom:2px}.personal-best strong{font-size:22px}.personal-best>span{font-size:6px;letter-spacing:.4px}.tabs{gap:0;justify-content:space-between;margin-bottom:19px}.tab{font-size:10px}.tab>span:not([data-i18n]){font-size:14px;margin-right:4px}.venue-name{gap:9px}.venue-name>span{font-size:21px}.venue-name h2{font-size:20px}.venue-name p{font-size:8px}.conditions{gap:13px}.conditions>div>span{font-size:6px;margin-bottom:4px}.conditions strong{font-size:9px}.conditions small{font-size:7px}.arena{aspect-ratio:1.48;min-height:216px}.arena-hud{top:12px;left:13px;right:13px}.stage-badge{font-size:7px;padding:6px 7px}.round-counter{font-size:7px;letter-spacing:.5px}.arena-bottom{left:13px;right:13px;bottom:10px;font-size:5px;letter-spacing:.5px}.live-stats{top:48px;right:14px}.live-stats strong{font-size:30px}.live-stats>div{font-size:8px}.intro-card{margin-left:22px}.intro-card h2{font-size:39px;letter-spacing:-2px;margin-bottom:11px}.intro-card .eyebrow{font-size:6px;margin-bottom:11px}.intro-card p:not(.eyebrow){font-size:9px;line-height:1.5;margin-bottom:13px}.intro-card .primary{font-size:10px;padding:10px 13px;min-height:40px;gap:28px}.intro-card .text-btn{font-size:8px;padding:9px 0}.intro{background:linear-gradient(90deg,#f5f7e4ef,#f5f7e473 58%,#f5f7e400)}.attempt-strip{padding:12px 0}.attempt-label>span{font-size:6px;letter-spacing:.8px}.attempt-label strong{font-size:14px}.attempts{gap:6px}.attempt{min-width:58px;padding:7px 6px}.attempt small{font-size:6px}.attempt strong{font-size:9px}.control-head h3{font-size:12px}.control-head p{font-size:8px;max-width:235px;line-height:1.5}.small-btn{font-size:9px;padding:10px}.meters{gap:12px;margin-bottom:14px}.meters>div>span{font-size:7px;letter-spacing:.5px}.gesture-pad{height:117px}.held-stone{width:40px}.held-stone>svg{width:39px;height:32px}.held-stone>span{font-size:6px;top:43px}.pad-guide span{font-size:8px}.pad-guide small{font-size:7px}.pad-instruction{font-size:7px;bottom:10px}.control-foot>span{font-size:6px}.control-foot .text-btn{font-size:8px}.feedback{padding:16px;gap:10px;grid-template-columns:1fr}.feedback .primary{grid-column:1;grid-row:3;justify-content:center;min-height:44px}.feedback #feedbackTip{grid-column:1;grid-row:2;font-size:10px}.feedback .text-btn{grid-column:1;grid-row:4;text-align:center;margin:2px 0}.feedback strong{font-size:28px}.view-heading{flex-direction:column;gap:14px}.view-heading>p{max-width:none!important}.view-heading>span{text-align:left;max-width:none}.view-heading h2{font-size:25px}.world-map{height:180px}.world-map>span{font-size:6px;bottom:8px;left:10px}.venue-card .card-content{padding:13px}.venue-card h3{font-size:17px}.venue-card .card-content>p{font-size:8px;margin-bottom:14px}.venue-art{height:83px}.card-stats{font-size:7px}.venue-card button{font-size:9px}.standing-summary{grid-template-columns:repeat(2,1fr)}.stat-card{padding:17px}.stat-card>span{font-size:8px}.stat-card strong{font-size:29px;margin-top:10px}th,td{padding:13px 12px;font-size:10px}th{font-size:7px}.points-key{gap:12px;font-size:8px;line-height:1.7}.points-key>b{flex-basis:100%}.settings-line label{font-size:9px}.settings-line select{font-size:10px;margin-left:6px;padding:9px 7px}.settings-line .text-btn{font-size:9px}.records-grid{gap:10px}.record-card{padding:18px}.record-card strong{font-size:25px}.record-card p{font-size:8px}.history-row{font-size:10px}.history-row span{font-size:8px}.shell footer>span:first-child{font-size:6px;letter-spacing:.5px}.shell footer b{display:block;margin:4px 0 0}.shell footer>span:nth-child(2){font-size:6px;max-width:145px}.shell footer .text-btn{font-size:7px}.modal-shell{padding:26px 22px}.modal-shell h2{font-size:25px}.modal-shell p{font-size:11px}.modal-shell .eyebrow{font-size:7px;letter-spacing:1px}.results-table td:nth-child(2){max-width:118px}.results-table td:nth-child(2)>span{margin-right:4px}.results-table th,.results-table td{font-size:9px;padding:9px 5px}.results-table th{font-size:6px}.tutorial-steps{gap:16px}.tutorial-step>span{font-size:22px}.tutorial-step p{font-size:10px}.modal-shell .primary{font-size:11px}.record-card h3{font-size:13px}}
@media(max-height:550px) and (orientation:landscape){.topbar{height:46px}.shell{padding-top:13px}.page-head{margin-bottom:13px}h1{font-size:24px}.page-head .eyebrow{display:none}.personal-best strong{font-size:20px}.tabs{margin-bottom:14px}.game-grid{grid-template-columns:minmax(0,1fr) minmax(250px,.7fr);gap:20px}.play-column{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:12px}.lake-top{grid-column:1/3}.arena{min-height:215px;aspect-ratio:auto;height:100%}.throw-controls{grid-column:2;grid-row:2/4}.attempt-strip{grid-column:1;grid-row:3}.sidebar{display:none}.game-grid{display:block}.control-head{margin-top:0}.gesture-pad{height:112px}.intro-card h2{font-size:33px}.arena-hud{top:9px;left:10px;right:10px}.stage-badge,.round-counter{font-size:6px}.control-head p{font-size:8px}.feedback{grid-template-columns:1fr;padding:13px}.feedback .primary{grid-column:1;grid-row:3}.feedback #feedbackTip{font-size:9px}.feedback .text-btn{grid-row:4;grid-column:1}.feedback strong{font-size:25px}.intro-card{margin-left:18px}.intro-card .eyebrow{font-size:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.archive-row{display:flex;justify-content:space-between;gap:15px;width:100%;background:var(--panel);border-bottom:1px solid var(--line);padding:16px 0;font-size:12px;color:var(--ink);text-align:left}.archive-row b{font-family:var(--mono)}
.mode-picker{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-7px 0 25px}.mode-options{display:flex;background:#e5eadb;border-radius:4px;padding:3px;gap:3px}.mode-options button{font-size:11px;font-weight:bold;padding:10px 14px;background:none;border-radius:3px;min-height:40px;color:var(--muted)}.mode-options button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #172e3212}.player-chip{display:flex;align-items:center;gap:9px;background:none;font-size:11px;padding:10px 0;min-width:0;max-width:52%}.player-chip>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chip>span:first-child,.shirt-dot{display:inline-block;flex-shrink:0;width:11px;height:13px;clip-path:polygon(25% 0,0 15%,10% 43%,25% 36%,25% 100%,75% 100%,75% 36%,90% 43%,100% 15%,75% 0);background:#e5d081}.shirt-dot{margin-right:8px;vertical-align:-1px}.room-banner{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 15px;margin-bottom:20px;background:#e1e9cd;border:1px solid #cad7b3;font:10px var(--mono)}.room-banner button{background:none;font-size:11px;font-weight:bold;white-space:nowrap}.world-map{height:auto!important;padding-bottom:30px;min-height:240px;background:#e3ece0}.world-map svg{width:100%;height:auto;aspect-ratio:1000/470;display:block;max-height:490px}.map-controls{position:absolute;top:14px;left:14px;display:flex;gap:5px;z-index:2}.map-controls button{min-height:35px;padding:8px 11px;background:#f6f7e9dd;color:var(--muted);font-size:10px;border-radius:2px}.map-controls button.active{background:var(--ink);color:var(--paper)}.map-grid{stroke:#b9ccba;stroke-width:.5;fill:none}.map-land{fill:#bccba7;stroke:#819b7c;stroke-width:.7;vector-effect:non-scaling-stroke}.world-map .map-route{fill:none;stroke:#83995d;stroke-dasharray:5 5;opacity:.65}.world-map [role=button]{cursor:pointer}.map-selection{display:flex;gap:18px;align-items:center;padding:15px 0 23px;font-size:11px}.map-selection b{font-size:15px}.map-selection>span{color:var(--muted);flex:1}.venue-art{position:relative;height:135px!important;background:#e5ecdd;overflow:hidden}.venue-art canvas{width:100%;height:100%;object-fit:cover}.venue-art>span{background:#fffef5cf;z-index:1;padding:4px 6px;left:10px;top:10px!important}.venue-card .event-name{font-size:9px;line-height:1.5;min-height:27px;margin:0 0 9px;color:var(--muted)}.event-date{font:8px var(--mono);display:block;color:#426849;margin-bottom:16px;line-height:1.5}.venue-actions{display:flex;gap:12px;border-top:1px solid var(--line)}.venue-actions button:first-child{flex:1;border:0!important}.venue-actions button:last-child{width:38px;font-size:17px;border:0!important;justify-content:center}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-fields label{font-size:11px;display:block}.profile-fields input{display:block;width:100%;margin-top:9px}.shirt-picker{display:flex;gap:25px;align-items:center;margin:12px 0 23px}.shirt-preview{width:91px;flex-shrink:0;background:#e9eddc;padding:13px;border-radius:5px}.shirt-preview svg{display:block;width:100%}.color-swatches{display:flex;gap:7px;flex-wrap:wrap;max-width:220px;margin-bottom:11px}.color-swatches button{width:33px;height:33px;border-radius:50%;border:2px solid #d3d8c6}.color-swatches button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.shirt-picker input[type=color]{padding:0!important;height:31px;width:65px;border:none;cursor:pointer}.form-error{color:#ae614b;min-height:12px}.source-link{display:inline-block;font-size:12px;margin:5px 0 20px}.room-setup{display:grid;grid-template-columns:1fr 1fr;gap:22px}.room-card{background:var(--panel);border:1px solid var(--line);padding:27px}.room-card h3{font-size:25px;letter-spacing:-.8px;margin:0 0 12px}.room-card p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.7;max-width:380px;min-height:43px}.room-card label,.rematch-controls label{display:block;font-size:11px;margin:22px 0 8px}.room-card input,.room-card select,.rematch-controls select{width:100%;font:14px Arial;padding:13px 12px;border:1px solid #cdd7bf;background:#f5f6ea;color:var(--ink);border-radius:2px;height:47px}.room-card .primary{margin-top:18px;width:100%}.code-input{text-transform:uppercase;letter-spacing:6px;font:20px var(--mono)!important}.room-note{font-size:11px;line-height:1.8;color:var(--muted);max-width:850px;margin:20px 0}.room-header{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid #cbd7b9;background:#eaf0d9;padding:25px;margin-bottom:20px}.room-header .eyebrow{margin-bottom:11px}.room-header p:not(.eyebrow){font-size:10px;color:var(--muted);line-height:1.7;margin:10px 0 0}.room-code{font:700 39px var(--mono);letter-spacing:7px}.room-share{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.lobby-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:15px 0}.lobby-player{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:13px 15px;min-width:0;background:#fffef5}.lobby-player b{font-size:12px;overflow:hidden;text-overflow:ellipsis}.lobby-player>span{font:7px var(--mono);margin-left:auto;color:var(--muted)}.lobby-player button{background:transparent;color:var(--muted);font-size:20px;width:28px;min-height:30px}.room-stage{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:22px 0}.room-stage p{font-size:12px;line-height:1.7;flex:1;min-width:200px}.room-results td{font:12px var(--mono)}.room-results td:nth-child(2){font-family:Arial}.room-results small{font-size:9px;color:var(--muted)}.network-note{border:1px solid #dec49c;background:#f5ecd3;padding:15px 18px;line-height:1.7;font-size:12px;color:#806242;margin:15px 0}.network-note p{margin:0 0 12px}.rematch-controls{max-width:480px;display:flex;flex-wrap:wrap;gap:10px;margin:23px 0}.rematch-controls label{flex-basis:100%;margin:0 0 3px}.rematch-controls select{flex:1;min-width:180px}.room-total{margin-top:35px}.room-total h3{font-size:16px}.room-wait{padding:25px;background:#eaf0d9}.route-dots{flex-wrap:wrap}.mini-row .athlete{overflow:hidden;text-overflow:ellipsis}.intro-card .text-btn{display:block}.mini-row .shirt-dot{margin-right:4px}
@media(max-width:600px){.mode-picker{margin:-3px 0 20px;gap:9px}.mode-options button{font-size:10px;padding:8px 11px;min-height:37px}.player-chip{font-size:10px;gap:6px}.room-banner{font-size:8px;padding:11px 12px}.map-controls{top:8px;left:8px;gap:3px}.map-controls button{font-size:8px;padding:6px 9px;min-height:31px}.world-map{padding-top:40px;min-height:245px}.world-map>span{font-size:5px}.map-selection{flex-wrap:wrap;gap:10px;padding-bottom:20px}.map-selection>span{font-size:9px}.map-selection .small-btn{width:100%;text-align:center}.venue-art{height:110px!important}.venue-card .event-name{font-size:8px;min-height:35px}.event-date{font-size:7px}.profile-fields{grid-template-columns:1fr;gap:16px}.shirt-picker{gap:15px}.room-setup{grid-template-columns:1fr;gap:16px}.room-card{padding:22px}.room-card h3{font-size:23px}.room-card p:not(.eyebrow){font-size:11px;min-height:0}.room-header{padding:20px;align-items:start;flex-direction:column;gap:14px}.room-code{font-size:34px;letter-spacing:5px}.room-share{flex-direction:row;gap:18px;align-items:center}.lobby-players{grid-template-columns:1fr}.room-stage{gap:10px}.room-stage p{flex-basis:100%;margin:0 0 3px}.room-stage .primary{width:100%;justify-content:center}.room-results td{font-size:10px;padding:11px 7px}.room-results td:nth-child(2){min-width:115px}.room-note{font-size:10px}.intro-card h2{font-size:35px}.intro-card p:not(.eyebrow){margin-bottom:9px}.intro-card .text-btn{padding:5px 0;font-size:8px;min-height:28px}.intro-card .eyebrow{margin-bottom:9px}}
.solo-season-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:3px}
.solo-season-summary{min-width:0}
.solo-season-summary h3{font-size:16px;line-height:1.4;margin:0 0 5px}
.solo-season-summary p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}
.solo-season-actions,.standings-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.solo-season-actions .primary{min-width:165px;justify-content:center;gap:10px}
.solo-season-actions .small-btn,.standings-actions .small-btn{min-height:44px}
.solo-season-actions button:disabled,.standings-actions button:disabled{opacity:.5;cursor:default}
.season-end-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.season-end-actions .primary{margin-top:0}
.season-end-actions .text-btn{min-height:44px;text-align:center}
@media(max-width:600px){
  .solo-season-bar{flex-direction:column;align-items:stretch;gap:12px;padding:14px;margin-bottom:18px}
  .solo-season-summary h3{font-size:14px}
  .solo-season-summary p{font-size:10px}
  .solo-season-actions{flex-wrap:wrap;gap:8px}
  .solo-season-actions .primary{flex:1;min-width:150px;font-size:12px;min-height:44px}
  .solo-season-actions .small-btn{font-size:11px}
  .standings-actions{width:100%;flex-wrap:wrap}
  .standings-actions .primary{flex:1;justify-content:center;font-size:12px;min-height:44px}
}
.language-bar{display:flex;justify-content:flex-end;margin:-14px 0 18px}
.language-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:4px;background:#e5eadb}
.language-switch button{font:700 11px Arial,sans-serif;min-width:39px;min-height:36px;padding:7px 10px;color:var(--muted);background:transparent;border-radius:3px}
.language-switch button.active{color:var(--panel);background:var(--ink)}
.language-switch button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:600px){
  .language-bar{margin:-5px 0 14px}
  .language-switch button{min-height:40px;min-width:40px;font-size:11px}
  .tabs .tab{white-space:normal;line-height:1.4;min-height:44px}
  .solo-season-summary h3{overflow-wrap:anywhere}
  .solo-season-actions .small-btn{white-space:normal}
  .control-foot{flex-wrap:wrap;gap:8px}
  .control-head p{overflow-wrap:anywhere}
}

.language-bar .portal-back{margin-right:auto;align-self:center;font-size:11px;color:var(--muted);text-decoration:none;padding:10px 0}

/* The desktop play screen is a viewport, with navigation in overlays. Touch
   devices keep the original scrolling layout and drag control. */
.play-action,.help-label,.top-actions kbd,.desktop-status{display:none}
kbd{font:700 11px var(--mono);display:inline-block;padding:3px 6px;border:1px solid #8babb8;border-radius:3px;line-height:1.1}
.game-menu{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}
.game-menu button{text-align:left;min-height:46px;background:#e8f0f5;color:var(--ink);padding:13px 15px;border:1px solid #c8d8e2;border-radius:4px;font-size:13px}
.game-menu button:hover{background:#d9e8f0}
.game-menu button kbd{float:right}
.help-input-switch{display:flex;gap:8px;margin:0 0 25px}
.help-input-switch .selected{background:var(--ink);color:#fff}
.shortcut-list{display:flex;gap:10px 16px;flex-wrap:wrap;font-size:11px;line-height:1.8;margin:18px 0}
.shortcut-list span{display:inline-flex;gap:7px;align-items:center}
.arena:focus-visible{outline:2px solid #86c8eb;outline-offset:2px}
.power-zone{display:none}
.arena-bottom{color:#153d44}
.round-counter{padding:6px 9px;background:#ffffffdd;color:#143746;border-radius:3px}
.live-stats{background:#ffffffeb;padding:10px 13px;border-radius:4px;color:#113447}
.live-stats>div{color:#35576a}
.feedback #feedbackDetail{color:#d5e8f1}
.feedback #feedbackTip{color:#d7e5ed}
.feedback .text-btn{color:#d7e5ed}
.desktop-layout .play-action{display:inline-flex;align-items:center;gap:12px;border:1px solid #bfcfd8;border-radius:4px;min-height:36px;padding:8px 12px;background:transparent;color:inherit;font-size:12px;font-weight:bold}
.desktop-layout .top-actions kbd{display:inline-block}
.desktop-layout .help-label{display:inline}
.desktop-layout #helpBtn{display:inline-flex;align-items:center;gap:10px;width:auto;padding:8px 12px;font-size:12px;font-weight:bold;border-radius:4px}
.desktop-layout .help-symbol{display:none}
.desktop-play body{height:100dvh;overflow:hidden;background:#102637;color:#f3f9fc}
.desktop-play .topbar{height:64px;max-width:none;padding:0 24px;border-bottom:1px solid #355164;background:#0c2030;color:#f3f9fc}
.desktop-play .brand{font-size:19px;gap:9px}
.desktop-play .brand svg{width:30px}
.desktop-play .brand small{font-size:8px;letter-spacing:3px;margin-top:4px;color:#b0c9da}
.desktop-play .top-actions{gap:8px}
.desktop-play .version,.desktop-play #installBtn{display:none}
.desktop-play .top-actions button{border-color:#47677b;background:#193448;color:#f3f9fc}
.desktop-play .top-actions kbd{border-color:#648396;color:#cce7f7}
.desktop-play .shell{max-width:none;height:calc(100dvh - 64px);padding:12px 24px 16px;position:relative}
.desktop-play .page-head,.desktop-play .mode-picker,.desktop-play .tabs,.desktop-play .sidebar,.desktop-play footer{display:none}
.desktop-play .language-bar{position:fixed;top:15px;left:220px;gap:14px;margin:0;z-index:3}
.desktop-play .language-switch{background:#193448;border-color:#47677b;padding:2px}
.desktop-play .language-switch button{min-width:29px;min-height:28px;padding:5px 7px;font-size:10px;color:#c5dbe9}
.desktop-play .language-switch button.active{background:#dafa52;color:#122e3a}
.desktop-play .language-bar .portal-back{font-size:10px;color:#c5dbe9;padding:8px 0;white-space:nowrap}
.desktop-play #gameView{height:100%;display:flex;flex-direction:column;gap:10px;min-height:0}
.desktop-play .solo-season-bar,.desktop-play .room-banner{margin:0;padding:8px 12px;min-height:44px;gap:15px;background:#193448;border-color:#35566b;color:#f3f9fc}
.desktop-play .solo-season-summary{display:flex;gap:16px;align-items:center;flex:1}
.desktop-play .solo-season-summary h3{font-size:12px;white-space:nowrap;margin:0}
.desktop-play .solo-season-summary p{font:11px var(--mono);color:#c6dfed}
.desktop-play .solo-season-actions{gap:8px}
.desktop-play .solo-season-actions .primary{font-size:11px;min-height:30px;min-width:0;padding:8px 12px}
.desktop-play .solo-season-actions .small-btn{font-size:11px;min-height:30px;padding:8px 12px;background:#254c62;border-color:#476f87;color:#fff}
.desktop-play .game-grid{display:block;flex:1;min-height:0}
.desktop-play .play-column{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:40px minmax(160px,1fr) 104px;gap:10px;height:100%}
.desktop-play .lake-top{grid-row:1;grid-column:1;margin:0;min-height:0}
.desktop-play .venue-name{gap:12px}
.desktop-play .venue-name h2{font-size:21px;color:#fff}
.desktop-play .venue-name p{color:#c6dfed;font-size:11px}
.desktop-play .conditions>div>span{color:#b1cddd;font-size:9px}
.desktop-play .conditions strong{color:#fff;font-size:13px}
.desktop-play .arena{grid-row:2;grid-column:1;height:100%;min-height:0;aspect-ratio:auto;border:1px solid #59788a;border-radius:5px}
.desktop-play .arena-hud{top:15px;left:16px;right:16px;align-items:start}
.desktop-play .stage-badge{padding:8px 11px;font-size:10px;background:#143448;color:#fff;border-radius:3px}
.desktop-play .round-counter{font-size:10px;letter-spacing:.4px;background:#143448;color:#fff;padding:8px 11px}
.desktop-play .live-stats{top:60px;right:16px;background:#0e2a3fe8;color:#fff;padding:12px 16px}
.desktop-play .live-stats strong{font-size:42px}
.desktop-play .live-stats>div{color:#cde7f7;font-size:11px}
.desktop-play .arena-bottom{font-size:9px;letter-spacing:.5px;bottom:12px;left:16px;right:16px;color:#fff}
.desktop-play .arena-bottom>span{background:#17374be0;padding:5px 8px;border-radius:3px}
.desktop-play .attempt-strip{position:absolute;top:65px;left:50%;transform:translateX(-50%);z-index:1;margin:0;padding:0;border:0;gap:12px;color:#fff;pointer-events:none}
.desktop-play .attempt-label{background:#143448e8;border-radius:3px;padding:7px 11px}
.desktop-play .attempt-label>span{font-size:8px;color:#c4deed}
.desktop-play .attempt-label strong{font-size:16px;color:#fff;margin-top:3px}
.desktop-play .attempts{gap:6px}
.desktop-play .attempt{min-width:62px;padding:7px 9px;background:#143448e8;border:1px solid #56849c;border-radius:3px;color:#fff}
.desktop-play .attempt small{font-size:8px;color:#c4deed}
.desktop-play .attempt strong{font-size:12px;color:#fff}
.desktop-play .attempt.current{border-color:#dafa52;background:#20494e}
.desktop-play .attempt.invalid strong{color:#ffad97}
.desktop-play .throw-controls{position:relative;grid-column:1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr 20px;gap:8px 24px;padding:13px 16px;border:1px solid #42677c;border-radius:5px;background:#193448;color:#fff;min-width:0}
.desktop-play .control-head{grid-column:2;grid-row:1;align-self:center;margin:0;gap:0}
.desktop-play .control-head>div,.desktop-play .gesture-pad{display:none}
.desktop-play #stoneBtn{background:#254c62;color:#fff;border:1px solid #5c8298;border-radius:3px;min-height:36px;font-size:12px}
.desktop-play .meters{grid-column:1;grid-row:1;margin:0;gap:24px;align-self:center;grid-template-columns:1fr 1fr 1.4fr}
.desktop-play .meters>div>span{font-size:11px;color:#c6dfed;letter-spacing:.8px;margin-bottom:8px}
.desktop-play .meters b{font-size:13px;color:#fff}
.desktop-play .meter,.desktop-play .timing-meter{height:12px;background:#081f30;border:1px solid #5d7f94;border-radius:2px}
.desktop-play .power-meter{position:relative;overflow:hidden}
.desktop-play .power-zone{display:block;position:absolute;left:80%;width:15%;height:100%;background:#a4dd8230;border-left:1px solid #88c663;border-right:1px solid #88c663}
.desktop-play #powerBar{background:#dafa52}
.desktop-play .exhausted #powerBar{background:#ff9672}
.desktop-play #angleBar{height:17px;background:#fff;width:3px;top:-4px}
.desktop-play .angle-zone{background:#94de6275}
.desktop-play .green-zone{background:#82e66e;opacity:1}
.desktop-play #timingMarker{background:#fff;height:20px;width:3px;top:-5px;box-shadow:0 0 0 1px #102637}
.desktop-play .control-foot{grid-column:1/-1;grid-row:2;margin:0;min-width:0}
.desktop-play .control-foot .text-btn{display:none}
.desktop-play .keyboard-hint{font-size:11px;line-height:1.2;color:#d1e7f3;max-width:none;white-space:nowrap}
.desktop-play .desktop-status{display:inline;font-size:11px;color:#dafa52;text-align:right;white-space:nowrap}
.desktop-play .touch-hint{display:none}
.desktop-play .feedback{position:absolute;right:0;bottom:calc(100% + 20px);width:min(590px,75%);margin:0;padding:14px 16px;gap:7px 18px;background:#0c263bef;border:1px solid #567c93;border-radius:5px;color:#fff;grid-template-columns:minmax(0,1fr) auto}
.desktop-play .feedback>div{gap:9px}
.desktop-play .feedback #feedbackLabel{font-size:9px;letter-spacing:.8px}
.desktop-play .feedback strong{font-size:28px}
.desktop-play .feedback #feedbackDetail{font-size:11px}
.desktop-play .feedback #feedbackTip{font-size:11px;grid-column:1;grid-row:2}
.desktop-play .feedback .primary{grid-column:2;grid-row:1/4;font-size:12px;min-height:40px;padding:12px 16px}
.desktop-play .feedback .text-btn{grid-column:1;grid-row:3;font-size:11px;padding-top:2px}
.desktop-play .intro{background:linear-gradient(90deg,#f5fbffff,#f5fbffdd 33%,#f5fbff00 75%);color:#112e3d}
.desktop-play .intro-card{margin-left:clamp(25px,4vw,75px)}
.desktop-play .intro-card h2{font-size:clamp(40px,5vw,65px);line-height:1;letter-spacing:-2.5px}
.desktop-play .intro-card p:not(.eyebrow){font-size:13px;line-height:1.5}
.desktop-play .intro-card .eyebrow{font-size:10px}
.desktop-play .intro-card .text-btn{font-size:12px;padding:9px 0;min-height:34px}
.desktop-play .skip-btn{font-size:11px;bottom:47px;right:16px;background:#143448;color:#fff;padding:9px 12px;border-radius:3px}
.desktop-play dialog{color:var(--ink);border-color:#718b9b;border-radius:6px}
.desktop-play dialog::backdrop{background:#071827b5}
.desktop-play #toast{z-index:10}
@media(max-width:1100px){
  .desktop-play .language-bar{left:190px;gap:8px}
  .desktop-play .topbar{padding:0 16px}
  .desktop-play .top-actions{gap:6px}
  .desktop-play .top-actions .play-action,.desktop-play #helpBtn{gap:7px;padding:8px 10px;font-size:11px}
  .desktop-play .shell{padding:10px 16px 12px}
  .desktop-play .solo-season-summary{gap:10px}
  .desktop-play .solo-season-summary p{font-size:10px}
  .desktop-play .desktop-status{font-size:10px}
  .desktop-play .keyboard-hint{font-size:10px}
}
@media(max-height:640px){
  .desktop-play .topbar{height:54px}
  .desktop-play .language-bar{top:10px}
  .desktop-play .shell{height:calc(100dvh - 54px);padding-top:8px;padding-bottom:8px}
  .desktop-play #gameView{gap:7px}
  .desktop-play .solo-season-bar{min-height:38px;padding:4px 10px}
  .desktop-play .play-column{grid-template-rows:34px minmax(100px,1fr) 92px;gap:7px}
  .desktop-play .throw-controls{padding:9px 12px;gap:5px 18px}
  .desktop-play .attempt-strip{top:54px}
  .desktop-play .intro-card h2{font-size:40px;margin:10px 0}
  .desktop-play .intro-card p:not(.eyebrow){margin:8px 0}
  .desktop-play .intro-card .eyebrow{margin:0}
  .desktop-play .intro-card .primary{min-height:36px;padding:9px 14px}
  .desktop-play .intro-card .text-btn{font-size:11px;min-height:26px;padding:5px 0}
}

@media(hover:none),(pointer:coarse){.keyboard-hint{display:none}.touch-hint{display:block}}

.icon-btn{flex-shrink:0}
.icon-btn>svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;vertical-align:middle}
.music-btn.music-on{background:var(--yellow);color:var(--ink);border-color:#a7c63a}
.desktop-play .top-actions .music-btn.music-on{background:var(--yellow);color:var(--ink);border-color:#a7c63a}

/* The sporting status stays on the lake; full tables remain behind R. */
.race-status{position:absolute;left:12px;right:12px;bottom:37px;max-width:640px;width:fit-content;padding:7px 10px;border:1px solid #648394;background:#10384ce8;color:#fff;font:700 10px/1.4 var(--mono);pointer-events:none;border-radius:3px}
.desktop-play .race-status{left:18px;top:57px;bottom:auto;font-size:12px;padding:9px 12px;max-width:min(640px,64%)}
.reward-badge{position:absolute;left:50%;top:27%;transform:translateX(-50%);max-width:85%;text-align:center;background:#e7fa72;color:#17364a;border:2px solid #fff;padding:12px 18px;font:700 15px/1.2 var(--mono);box-shadow:0 5px 0 #143e5c50;pointer-events:none;border-radius:4px}
.desktop-play .reward-badge{top:38%;font-size:22px;padding:16px 24px}
.feedback.record-feedback,.desktop-play .feedback.record-feedback{border-color:#d2b740;border-left:4px solid #d2b740}
.feedback.medal-feedback #feedbackLabel{color:#957028}.desktop-play .feedback.medal-feedback #feedbackLabel{color:#ffe172}
.power-meter{position:relative}.power-zone{display:block;position:absolute;left:var(--power-start,80%);width:var(--power-width,15%);height:100%;background:#94c76145;border-left:1px solid #79ad4f;border-right:1px solid #79ad4f;pointer-events:none}
.desktop-play .power-zone{left:var(--power-start,80%);width:var(--power-width,15%)}
.angle-zone{left:var(--angle-start,8.3%);width:var(--angle-width,18.75%)}
.quick-setup{display:grid;gap:16px;margin:20px 0}.quick-setup label,#challengeShareBox label{display:grid;gap:8px;font-size:12px;font-weight:700}
.quick-setup select,#challengeShareUrl{width:100%;min-height:44px;padding:10px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:3px}
.daily-card{margin:20px 0;padding:18px;background:#e6f3f7;border:1px solid #a7c7d3;border-radius:5px}.daily-card h3{margin:0 0 10px}.daily-card p{font-size:12px;line-height:1.5}.daily-card .small-btn{background:#fff;white-space:normal}
.challenge-target{padding:14px;background:#eef4c9;border-left:3px solid #9bac43}.challenge-target b{font-family:var(--mono)}
.medal-progress{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.medal-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #d1bd91;padding:5px 7px;font:700 10px var(--mono);border-radius:3px;width:fit-content}.medal-chip.bronze{background:#f7dfc9;color:#77452e;border-color:#c79970}.medal-chip.silver{background:#e4edf3;color:#405a6d;border-color:#98adbb}.medal-chip.gold{background:#fff0a1;color:#6d4d08;border-color:#cbb14b}.medal-chip.locked{background:#f2f4f5;color:#83929c;border-color:#d6dfe5}.legacy-record{font-size:10px!important;color:var(--muted)}
.records-goal{padding:14px 16px;border:1px solid #b7c975;background:#edf4d8;font:700 12px var(--mono);margin:0 0 20px}
.record-card .small-btn{margin-top:10px;white-space:normal}
.mode-picker button#quickModeBtn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px 12px;font-size:12px;font-weight:700;min-height:40px}
.solo-season-actions{flex-wrap:wrap}.solo-season-actions #quickPlayBtn{font-weight:700}
@media(max-width:600px){.solo-season-actions{gap:6px}.solo-season-actions #quickPlayBtn{min-height:36px;padding:8px;font-size:10px}.race-status{font-size:9px;bottom:35px;padding:6px 8px;max-width:calc(100% - 24px)}.reward-badge{font-size:13px;padding:9px 12px;top:29%}.mode-picker{gap:6px}.mode-picker button#quickModeBtn{font-size:10px;padding:8px 10px}}
.music-btn>span:first-child{line-height:1;vertical-align:middle}
.menu-music{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.menu-music h3{font-size:14px;margin:0 0 8px}
.menu-music #musicTrackTitle{font-size:14px;color:var(--ink);overflow-wrap:anywhere;margin:0 0 12px}
.music-actions{display:flex;flex-wrap:wrap;gap:8px}
.menu-music .music-status{font-size:11px;line-height:1.5;margin:12px 0 0;color:var(--muted)}
@media(max-width:600px){.top-actions{gap:7px}.topbar .music-btn{width:32px;height:32px}.topbar .brand{flex-shrink:0}.topbar .install-btn{padding:10px;font-size:10px;gap:10px}.music-actions .small-btn{min-height:44px;white-space:normal}}
@media(max-width:360px){.topbar .install-btn{display:none}.top-actions .icon-btn{width:34px;height:34px}}
.world-map{padding:0 0 32px!important;min-height:0!important;background:#f2f6ef}
.world-map .map-controls{position:relative;top:auto;left:auto;padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);background:#fff}
.world-map .map-controls button{font-size:11px;min-height:38px;padding:8px 13px}
.world-map svg{aspect-ratio:auto!important;max-height:560px;background:#f2f6ef}
.map-ocean{fill:#d7eaf0;stroke:#afc9ce;stroke-width:1;vector-effect:non-scaling-stroke}
.map-land{fill:#c1d59e!important;stroke:#6d8c68!important;stroke-width:.75!important;vector-effect:non-scaling-stroke}
.map-borders{fill:none;stroke:#869977;stroke-width:.55;vector-effect:non-scaling-stroke}
.map-grid{fill:none;stroke:#a8c6cc!important;stroke-width:.5;vector-effect:non-scaling-stroke}
.map-route{stroke:#52868b!important;stroke-width:1.3!important;fill:none;stroke-dasharray:4 5;opacity:.5;vector-effect:non-scaling-stroke}
.map-hit{fill:transparent;stroke:transparent;stroke-width:26;vector-effect:non-scaling-stroke;pointer-events:all}
.map-leader{fill:none;stroke:#355a5b;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.map-anchor{fill:#193e4f;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.map-dot{fill:#376758;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.map-marker{cursor:pointer}.map-marker.selected .map-dot{fill:#143b50;stroke:#eef659}
.map-marker:focus-visible{outline:none}.map-marker:focus-visible .map-dot,.map-marker:hover .map-dot{stroke:#173f53;stroke-width:4}
.map-number{font:bold 19px Arial;fill:white;pointer-events:none}.map-label{font:bold 20px Arial;fill:#214c4a;paint-order:stroke;stroke:#f3f8ec;stroke-width:5;pointer-events:none}
.world-map>span{font-size:8px!important;letter-spacing:.8px;bottom:11px!important}
@media(max-width:600px){.world-map .map-controls{padding:8px;gap:5px}.world-map .map-controls button{font-size:10px;min-height:36px;padding:7px 10px}.map-number{font-size:29px}.map-label{font-size:30px}.map-dot{r:22px}.map-cluster .map-dot{r:25px}.world-map>span{left:10px!important;font-size:6px!important;letter-spacing:.3px}}

.mode-options button#quickModeBtn{border:0;background:transparent;color:var(--muted);min-height:38px;padding:9px 13px;font-size:11px;font-weight:700}
.mode-options button#quickModeBtn.active{background:var(--ink);color:var(--panel)}
@media(max-width:600px){.mode-options button#quickModeBtn{font-size:10px;padding:8px 10px}.mode-picker{flex-wrap:wrap}.solo-season-actions{justify-content:flex-start}}

/* Quiet legal link in the existing footer and the menu. */
.game-legal-link{color:var(--muted);font:8px var(--mono);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.game-legal-link:hover,.game-menu-legal:hover{color:var(--ink)}
.game-menu-legal{display:block;text-align:left;color:var(--muted);font-size:11px;text-decoration:underline;text-underline-offset:3px;padding:12px 10px}
@media(max-width:480px){.game-legal-link{font-size:7px}}
