:root{--ink: #1e2b3a;--panel: rgba(255, 255, 255, .92);--line: rgba(30, 43, 58, .12);--grass: #5bc25b;--wood: #c9844b;--accent: #ff6b4a;--sky: #8fd3ff;--player: #e8433a;--display: "Fredoka", "Nunito", ui-rounded, system-ui, sans-serif;--body: "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--sky);color:var(--ink);font-family:var(--body);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#game{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none;cursor:crosshair}#labels{position:fixed;inset:0;pointer-events:none}.name-tag{font-family:var(--display);font-weight:600;font-size:.8rem;color:#fff;background:var(--c);padding:1px 8px;border-radius:999px;border:2px solid #fff;white-space:nowrap;box-shadow:0 2px #1e2b3a33;transform:translateY(-4px)}.name-tag.me{font-size:.72rem;opacity:.85}body:not(.in-game) #hole-info,body:not(.in-game) #controls,body:not(.in-game) #touch-bar,body:not(.in-game) #hints,body:not(.in-game) #player-list,body:not(.in-game) #labels{display:none}#start{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 32px));padding:24px;display:flex;flex-direction:column;gap:12px;z-index:30}#start h1{font-family:var(--display);font-weight:700;font-size:2rem;margin:0;line-height:1.1}#start .lead{margin:-6px 0 4px;color:#5a6b7c;font-weight:700}#start .field{display:flex;flex-direction:column;gap:4px;font-weight:800;font-size:.85rem;color:#5a6b7c}#start input{font:600 1.05rem var(--body);color:var(--ink);padding:10px 14px;border-radius:12px;border:2px solid #dfe6ec;background:#fff;outline:none;min-width:0}#start input:focus{border-color:var(--grass)}#start-multi{display:flex;flex-direction:column;gap:10px}#start .join{display:flex;gap:8px}#start .join input{flex:1;text-transform:uppercase;letter-spacing:.25em;font-family:var(--display);text-align:center}#start button{padding:11px 18px}#start button.primary{background:var(--grass);border-color:var(--grass);color:#fff}#start button.secondary{box-shadow:0 4px #1e2b3a26,inset 0 0 0 2px #dfe6ec}#start .invite{margin:0;background:#fff3d6;border-radius:10px;padding:8px 12px;font-weight:700}#start .note{margin:0;font-size:.9rem;color:#5a6b7c}#start .error{margin:0;color:#c2412a;font-weight:800}#start .status{font-weight:700;display:flex;align-items:center;gap:8px}#start .status:before{content:"";width:14px;height:14px;flex:none;border-radius:50%;border:3px solid #cfe3d0;border-top-color:var(--grass);animation:spin .8s linear infinite}#start button:disabled{opacity:.55;cursor:progress}@keyframes spin{to{transform:rotate(360deg)}}#offline{position:fixed;top:calc(70px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);background:#c2412a;color:#fff;font-weight:800;padding:6px 14px;border-radius:999px;z-index:25}#player-list{position:fixed;top:calc(132px + env(safe-area-inset-top,0px));left:calc(14px + env(safe-area-inset-left,0px));margin:0;padding:6px;list-style:none;display:flex;flex-direction:column;gap:2px;min-width:200px}#player-list button{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;box-shadow:none;padding:5px 10px;border-radius:10px;font-size:.92rem;text-align:left}#player-list button:hover{background:#eef4f8;transform:none}#player-list button.following{background:#e9f6e9}#player-list button.away{opacity:.5}#player-list i{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none}#player-list span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#player-list b{font-variant-numeric:tabular-nums}#room-chip{font-family:var(--display);font-weight:600;background:var(--ink);color:#fff;border-radius:999px;padding:8px 14px;align-self:center}#room-chip b{letter-spacing:.12em;color:#ffc93c}select:disabled{opacity:.7;cursor:default}#loading{position:fixed;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:1.4rem;font-weight:600;background:var(--sky);z-index:50}body.ready #loading{display:none}.panel{background:var(--panel);border:2px solid #fff;border-radius:18px;box-shadow:0 6px #1e2b3a1f}#hole-info{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:calc(14px + env(safe-area-inset-left,0px));padding:10px 16px 12px;min-width:200px}#hole-info .row{display:flex;gap:10px;align-items:center;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#5a6b7c}#hole-par{margin-left:auto;color:var(--ink);background:#e9f6e9;border-radius:999px;padding:1px 9px}#hole-name{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.15;margin:2px 0 6px}#hole-info .strokes b{font-family:var(--display);font-size:1.35rem;color:var(--ink);font-variant-numeric:tabular-nums;min-width:1.2ch}#stroke-pips{display:flex;gap:3px}#stroke-pips i{width:9px;height:9px;border-radius:50%;background:#dfe6ec}#stroke-pips i.on{background:var(--player)}#controls{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 260px)}button,select{font-family:var(--display);font-weight:600;font-size:.98rem;color:var(--ink);background:#fff;border:2px solid #fff;border-radius:999px;padding:7px 14px;cursor:pointer;box-shadow:0 4px #1e2b3a26}button:hover,select:hover{transform:translateY(-1px)}button:active{transform:translateY(2px);box-shadow:0 2px #1e2b3a26}button:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button[aria-pressed=false]{color:#8a96a3}#touch-bar{position:fixed;bottom:calc(52px + env(safe-area-inset-bottom,0px));right:calc(14px + env(safe-area-inset-right,0px));display:flex;gap:8px}#touch-bar button{padding:8px 14px}#hints{position:fixed;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);margin:0;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 28px);pointer-events:none}#hints span{background:#1e2b3a8c;color:#fff;font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px}#power-readout{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translate(-50%) scale(.8);font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--ink);padding:4px 16px;border-radius:999px;opacity:0;transition:opacity .12s,transform .12s;pointer-events:none;font-variant-numeric:tabular-nums;border:2px solid #fff}#power-readout.show{opacity:1;transform:translate(-50%) scale(1)}#big-word{position:fixed;left:50%;top:32%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,9vw,5.5rem);color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 rgba(30,43,58,.25);pointer-events:none;opacity:0;white-space:nowrap}#big-word.pop{animation:pop 1.5s cubic-bezier(.2,1.4,.4,1) forwards}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-8deg)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(2deg)}30%{transform:translate(-50%,-50%) scale(1) rotate(0)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-62%) scale(1)}}#toast{position:fixed;top:calc(70px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%,-20px);background:var(--ink);color:#fff;font-weight:800;padding:8px 16px;border-radius:999px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%)}#hole-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));padding:22px 22px 18px;text-align:center;z-index:20;animation:card-in .35s cubic-bezier(.2,1.3,.4,1)}@keyframes card-in{0%{transform:translate(-50%,-40%) scale(.9);opacity:0}}#card-word{font-family:var(--display);font-weight:700;font-size:2.4rem;line-height:1.1}#card-sub{color:#5a6b7c;font-weight:700;margin:4px 0 14px}#card-table{width:100%;border-collapse:collapse;font-size:.95rem;text-align:left}#card-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#5a6b7c;font-weight:800;padding:4px 6px}#card-table td{padding:6px;border-top:1px solid var(--line)}#card-table .num{text-align:right;font-variant-numeric:tabular-nums}#card-table td.under{color:#22862a;font-weight:800}#card-table td.over{color:#c2412a;font-weight:800}#card-table tr.total td{font-weight:800;border-top:2px solid var(--ink)}#card-table small{color:#5a6b7c;font-weight:700}#hole-card .table-wrap{overflow-x:auto}#card-table th.player{white-space:nowrap}#card-table th.player i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:4px}#card-table td.me{color:var(--ink);text-decoration:underline}#card-countdown{margin:14px 0 0;font-weight:800;color:#5a6b7c}#hole-card .buttons{display:flex;gap:10px;justify-content:center;margin-top:16px}#hole-card .buttons button{background:var(--grass);color:#fff;border-color:var(--grass);padding:9px 20px}#hole-card .buttons button.secondary{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 4px #1e2b3a26,inset 0 0 0 2px var(--line)}#tuning.lil-gui.root{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));--font-family: var(--body);--background-color: #1e2b3a;--widget-color: #2c3e52;--focus-color: #3a516a;--number-color: #8fd3ff;--title-background-color: #c9844b;--title-text-color: #fff;border-radius:12px;overflow:hidden;z-index:15;max-height:calc(100vh - 140px)}#tuning .title{font-family:var(--display);font-weight:600}@media (max-width: 640px){#hints{display:none}#controls{max-width:calc(100vw - 28px);top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:calc(14px + env(safe-area-inset-left,0px));justify-content:flex-start}#touch-bar{bottom:calc(160px + env(safe-area-inset-bottom,0px))}#tuning.lil-gui.root{bottom:216px}#hole-info{min-width:0}#player-list{top:auto;bottom:216px;min-width:0}#room-chip{padding:6px 10px}#hole-name{font-size:1.2rem}#tuning.lil-gui.root{top:auto;max-height:50vh}}@media (hover: hover) and (pointer: fine) and (min-width: 641px){#touch-bar #btn-rot-l,#touch-bar #btn-rot-r{display:none}}@media (prefers-reduced-motion: reduce){#big-word.pop{animation-duration:1.2s}#hole-card{animation:none}}#timer{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:6;font-family:var(--display);font-weight:700;font-size:1.35rem;color:var(--ink);background:#fff;border:3px solid var(--accent);padding:4px 18px;border-radius:999px;box-shadow:0 4px #1e2b3a2e;font-variant-numeric:tabular-nums;pointer-events:none}#timer.urgent{background:var(--accent);color:#fff;animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{50%{transform:translate(-50%) scale(1.08)}}@media (prefers-reduced-motion: reduce){#timer.urgent{animation:none}}.name-tag{position:relative}.emote-bubble{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) scale(0);transform-origin:50% 100%;background:#fff;color:var(--ink);font-size:.95rem;font-weight:700;padding:3px 10px;border-radius:12px;border:2px solid var(--c);white-space:nowrap;transition:transform .15s cubic-bezier(.3,1.6,.6,1);pointer-events:none}.emote-bubble:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--c)}.emote-bubble.show{transform:translate(-50%) scale(1)}#emote-bar{position:fixed;left:16px;bottom:calc(56px + env(safe-area-inset-bottom,0px));display:flex;gap:6px;z-index:6}#emote-bar button{font:600 .85rem var(--display);background:#fff;color:var(--ink);border:0;border-radius:999px;padding:6px 12px;box-shadow:0 3px #1e2b3a2e;cursor:pointer}#emote-bar button kbd{font:inherit;opacity:.5;margin-right:4px}#emote-bar button.confetti{background:var(--accent);color:#fff}body:not(.in-game) #emote-bar{display:none}#hole-mod{display:inline-block;margin-top:6px;font:700 .75rem var(--display);letter-spacing:.04em;text-transform:uppercase;background:#e6e0f5;color:#4a2e86;padding:2px 8px;border-radius:999px}#card-awards{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}#card-awards li{border:2px dashed var(--c, #c9844b);border-radius:12px;padding:8px 10px;font-size:.85rem}#card-awards b{display:block;font-family:var(--display);font-size:1rem}#card-awards span{color:#55687a}@media (max-width: 640px){#emote-bar{bottom:auto;top:calc(128px + env(safe-area-inset-top,0px))}#emote-bar kbd{display:none}}#btn-menu,#btn-emote-toggle,#touch-hints{display:none}@media (pointer: coarse){#hints{display:none}body.in-game #btn-menu{display:block;position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px));z-index:12;min-height:44px}#controls{display:none}body.in-game.menu-open #controls{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;gap:8px;position:fixed;top:calc(62px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px));bottom:auto;left:auto;width:min(260px,calc(100vw - 20px));max-width:none;padding:10px;background:var(--panel);border:2px solid #fff;border-radius:18px;box-shadow:0 6px #1e2b3a1f;z-index:12}body.in-game.menu-open #controls>*{min-height:44px;flex-shrink:0}#room-chip{text-align:center;align-self:stretch;display:flex;align-items:center;justify-content:center;gap:6px}#hole-info{top:calc(10px + env(safe-area-inset-top,0px));left:calc(10px + env(safe-area-inset-left,0px));padding:6px 12px 8px;min-width:0;border-radius:14px}#hole-info .row{font-size:.68rem;gap:8px}#hole-name{font-size:1.05rem;margin:0 0 2px}#hole-info .strokes b{font-size:1.1rem}#stroke-pips{display:none}#hole-mod{margin-top:3px}#player-list{top:calc(96px + env(safe-area-inset-top,0px));bottom:auto;left:calc(10px + env(safe-area-inset-left,0px));min-width:0;max-width:46vw;padding:3px;border-radius:14px}#player-list button{font-size:.8rem;padding:4px 8px;gap:6px}#player-list i{width:10px;height:10px}#touch-bar{bottom:calc(12px + env(safe-area-inset-bottom,0px));right:calc(10px + env(safe-area-inset-right,0px))}#touch-bar button{min-width:48px;min-height:48px;padding:8px 14px}#touch-bar #btn-rot-l,#touch-bar #btn-rot-r{display:block;font-size:1.2rem}#emote-bar{top:auto;left:calc(10px + env(safe-area-inset-left,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));flex-direction:column-reverse;align-items:flex-start}#emote-bar kbd{display:none}#btn-emote-toggle{display:block;min-width:48px;min-height:48px;font-size:1.3rem;padding:0}#emote-bar button:not(#btn-emote-toggle){display:none;font-size:1rem;padding:10px 16px}body.emotes-open #emote-bar button:not(#btn-emote-toggle):not([hidden]){display:block}body.in-game:not(.has-shot):not(.emotes-open):not(.menu-open) #touch-hints{display:flex;position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translate(-50%);margin:0;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:calc(100vw - 28px);pointer-events:none}#touch-hints span{background:#1e2b3a99;color:#fff;font-size:.85rem;font-weight:700;padding:4px 12px;border-radius:999px}#timer{top:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));font-size:1.15rem}#power-readout{bottom:auto;top:30%}#toast{top:calc(130px + env(safe-area-inset-top,0px));white-space:normal;max-width:calc(100vw - 40px);text-align:center}#big-word{top:40%}#tuning.lil-gui.root{top:auto;bottom:80px;max-height:45vh}}@media (pointer: coarse) and (max-height: 500px){#player-list{top:calc(62px + env(safe-area-inset-top,0px));left:auto;right:calc(10px + env(safe-area-inset-right,0px));max-width:30vw}#touch-hints{bottom:calc(70px + env(safe-area-inset-bottom,0px))}body.in-game.menu-open #controls{max-height:calc(100vh - 80px);overflow-y:auto}}#power-btn{position:fixed;left:50%;bottom:calc(52px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:7;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto auto;column-gap:8px;align-items:center;text-align:left;padding:6px 16px 6px 10px;border:3px solid #ffc93c;border-radius:18px}#power-btn:hover{transform:translate(-50%) translateY(-1px)}#power-btn:active{transform:translate(-50%) translateY(2px)}#power-icon{grid-row:span 3;font-size:1.6rem;line-height:1}#power-name{font-weight:700;font-size:1rem}#power-hint{font:700 .72rem var(--body);color:#5a6b7c;white-space:nowrap}#power-text{font:600 .78rem var(--body);color:var(--ink);max-width:230px;line-height:1.25}#power-intro{position:fixed;left:50%;top:calc(96px + env(safe-area-inset-top,0px));transform:translate(-50%,-12px);z-index:12;display:flex;gap:12px;align-items:center;width:min(380px,calc(100vw - 32px));padding:12px 16px;background:#fffdf5;color:var(--ink);border:3px solid #ffc93c;border-radius:20px;box-shadow:0 6px #1e2b3a2e;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}#power-intro.show{opacity:1;transform:translate(-50%)}#power-intro-icon{font-size:2.2rem;line-height:1}#power-intro b{font-family:var(--display);font-size:1.15rem}#power-intro p{margin:2px 0;font-weight:600;font-size:.92rem;line-height:1.3}#power-intro small{color:#5a6b7c;font-weight:700;font-size:.78rem}body:not(.in-game) #power-intro{display:none}#power-btn.armed{background:#ffc93c;border-color:#fff;animation:power-pulse .9s ease-in-out infinite}#power-btn.armed #power-hint{color:var(--ink)}@keyframes power-pulse{50%{box-shadow:0 0 0 6px #ffc93c73,0 4px #1e2b3a26}}#sticky-chip,#frozen-chip{position:fixed;left:50%;bottom:calc(112px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:7;background:#7ed957;color:var(--ink);font-weight:800;font-size:.85rem;padding:4px 12px;border-radius:999px;pointer-events:none;white-space:nowrap}#frozen-chip{background:#bfe9ff;bottom:calc(140px + env(safe-area-inset-bottom,0px))}body:not(.in-game) #power-btn,body:not(.in-game) #sticky-chip,body:not(.in-game) #frozen-chip{display:none}@media (prefers-reduced-motion: reduce){#power-btn.armed{animation:none}}@media (pointer: coarse){#power-btn{bottom:calc(76px + env(safe-area-inset-bottom,0px));min-height:52px}#sticky-chip{bottom:calc(138px + env(safe-area-inset-bottom,0px))}#frozen-chip{bottom:calc(166px + env(safe-area-inset-bottom,0px))}#timer{top:calc(62px + env(safe-area-inset-top,0px));bottom:auto;left:auto;right:calc(10px + env(safe-area-inset-right,0px));transform:none}@keyframes timer-pulse{50%{transform:scale(1.08)}}body:has(#power-btn:not([hidden])) #touch-hints{display:none}}@media (pointer: coarse) and (max-height: 500px){#power-btn{bottom:calc(12px + env(safe-area-inset-bottom,0px))}#sticky-chip{bottom:calc(74px + env(safe-area-inset-bottom,0px))}#frozen-chip{bottom:calc(102px + env(safe-area-inset-bottom,0px))}#timer{right:auto;left:50%;top:calc(10px + env(safe-area-inset-top,0px));transform:translate(-50%)}@keyframes timer-pulse{50%{transform:translate(-50%) scale(1.08)}}}#editor{position:fixed;inset:0;z-index:40;background:radial-gradient(120% 90% at 50% 40%,#3b8c43,#2c7234);display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);overflow:hidden}body.editing #start,body.editing #hole-card,body.editing #power-btn{display:none!important}.ed-top{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;padding:8px 10px;background:#fffffff0;box-shadow:0 1px #1e2b3a1a,0 6px 18px -10px #1e2b3a73;position:relative;z-index:3;min-width:0}.ed-top>*{flex:none}.ed-top button{height:42px;min-width:42px;border-radius:13px;font-size:.95rem}.ed-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}.ed-top svg .fill{fill:currentColor;stroke:none}.ed-icon{width:42px;padding:0;display:inline-grid;place-items:center}.ed-text{display:inline-flex;align-items:center;gap:7px;padding:0 16px}.ed-text svg{width:19px;height:19px}#ed-play svg{width:20px;height:20px;margin-left:-3px}.ed-top .primary.blocked{background:linear-gradient(180deg,#a9c2ac,#8fab93);text-shadow:none;box-shadow:none}.ed-name-wrap{position:relative;flex:1 1 auto;min-width:0;max-width:21em;margin-right:auto}.ed-top input{box-sizing:border-box;width:100%;height:42px;font:700 1rem var(--body);color:var(--ink);padding:0 42px 0 14px;border-radius:13px;border:2px solid #e3e9ee;background:#f6f9fb;min-width:0;outline:none;text-overflow:ellipsis}.ed-top input:focus{border-color:var(--grass);background:#fff}.ed-top .ed-save{position:absolute;right:1px;top:0;width:42px;height:42px;min-width:0;padding:0;border:0;background:none;box-shadow:none;display:grid;place-items:center;-webkit-backdrop-filter:none;backdrop-filter:none}.ed-top .ed-save:hover,.ed-top .ed-save:active{transform:none;box-shadow:none}.ed-save i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:900 11px/1 var(--body);font-style:normal;color:#fff;box-sizing:border-box;transition:background-color .2s}.ed-save[data-state=saved] i{background:#4cb050}.ed-save[data-state=saved] i:after{content:"✓"}.ed-save[data-state=saving] i{border:2.5px solid #cfe3d0;border-top-color:#3fae45;animation:spin .8s linear infinite}.ed-save[data-state=offline] i{background:#8a96a3}.ed-save[data-state=offline] i:after{content:"";width:9px;height:2.5px;border-radius:2px;background:#fff}.ed-save[data-state=full] i{background:#e2742b}.ed-save[data-state=full] i:after{content:"!"}#ed-menu:focus{outline:none}#ed-menu{position:fixed;z-index:46;top:calc(62px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px));width:min(290px,calc(100vw - 20px));max-height:calc(100dvh - 80px);overflow-y:auto;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;gap:6px;border-radius:18px;background:#fffffff5;animation:ed-pop .16s ease-out;transform-origin:top right}@keyframes ed-pop{0%{opacity:0;transform:scale(.96) translateY(-4px)}}#ed-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.ed-menu-save{margin:0 0 4px;padding:8px 10px;border-radius:12px;background:#eef7ee;font-size:.82rem;line-height:1.35;color:var(--muted)}.ed-menu-save b{display:block;color:var(--ink);font-size:.9rem}.ed-menu-save[data-state=offline]{background:#eef1f4}.ed-menu-save[data-state=full]{background:#fdeee2}.ed-menu-save[data-state=full] b{color:#b4532a}.ed-menu-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 0 6px;min-height:44px;font-weight:800;font-size:.9rem;color:var(--muted)}.ed-menu-row select{height:40px;min-width:128px;border-radius:12px;padding:0 12px}.ed-stepper{display:inline-flex;align-items:center;gap:4px}.ed-stepper button{width:40px;height:40px;padding:0;border-radius:12px;font-size:1.15rem;line-height:1}.ed-stepper b{min-width:3.6em;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums}#ed-menu .ed-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 10px;border-radius:12px;border:0;background:transparent;box-shadow:none;text-align:left;font-size:.98rem;-webkit-backdrop-filter:none;backdrop-filter:none}#ed-menu .ed-menu-item span{width:24px;text-align:center;font-size:1.1rem}#ed-menu .ed-menu-item:hover{background:#eef3f7;transform:none;box-shadow:none}#ed-menu .ed-menu-item:active{background:#e3ebf1;transform:none}.ed-body{flex:1;min-height:0;display:flex;flex-direction:column-reverse;position:relative}.ed-main{flex:1;min-height:0;min-width:0;position:relative}#ed-canvas{position:absolute;inset:0;touch-action:none;cursor:crosshair}#ed-status{position:absolute;left:50%;bottom:10px;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px);box-sizing:border-box;margin:0;padding:6px 14px;border-radius:999px;background:#1220188c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-weight:700;font-size:.86rem;line-height:1.3;text-align:center;pointer-events:none}#ed-status:empty{display:none}#ed-status.warn{background:#78460ab8;color:#ffe7a6}#editor.pv-open #ed-status{left:calc((100% - 316px)/2);max-width:calc(100% - 340px)}#ed-tools{position:relative;z-index:2}.ed-group h4{margin:0 0 6px 4px;font:800 .7rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:#6c7b89}.ed-grid{display:grid;gap:6px}.ed-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;min-width:0;padding:4px 2px;border-radius:13px;font-size:.74rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ed-grid button .ed-ti{font-size:1.3rem;line-height:1}.ed-grid button .ed-tl{max-width:100%;overflow:hidden;text-overflow:ellipsis}.ed-grid button.active{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 6px 14px -6px #1e2b3acc}.ed-tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:#1e2b3a12;margin-bottom:10px}.ed-tabs button{flex:1;height:40px;border-radius:11px;border:0;background:transparent;box-shadow:none;font-size:.92rem;color:var(--muted);-webkit-backdrop-filter:none;backdrop-filter:none}.ed-tabs button:hover{transform:none;box-shadow:none}.ed-tabs button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 2px 6px #1e2b3a26}.ed-dock{display:flex;gap:8px;align-items:center;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:#fffffff0;box-shadow:0 -1px #1e2b3a14,0 -6px 18px -12px #1e2b3a80}.ed-current{flex:1;min-width:0;height:50px;display:flex;align-items:center;gap:10px;padding:0 12px 0 8px;border-radius:14px;text-align:left}.ed-cur-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;font-size:1.35rem;border-radius:10px;background:#eef3f7}.ed-cur-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.15}.ed-cur-text b{font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-cur-text small{font:700 .75rem var(--body);color:var(--muted)}.ed-chev{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}#ed-tools.open .ed-chev{transform:rotate(180deg)}.ed-recent{display:flex;gap:6px}.ed-recent button{width:50px;height:50px;padding:0;border-radius:14px;font-size:1.3rem;display:grid;place-items:center}.ed-sheet{display:none}#ed-tools.open .ed-sheet{display:block;position:absolute;left:0;right:0;bottom:100%;padding:10px 10px 12px;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -12px 30px -14px #1e2b3a8c;animation:ed-sheet .18s ease-out}@keyframes ed-sheet{0%{transform:translateY(12px);opacity:0}}.ed-sheet .ed-group,.ed-sheet .ed-group h4{display:none}.ed-sheet[data-group=boden] .ed-group[data-group=boden],.ed-sheet[data-group=bauen] .ed-group[data-group=bauen],.ed-sheet[data-group=bearbeiten] .ed-group[data-group=bearbeiten]{display:block}.ed-group h5{margin:8px 0 5px 4px;font:800 .68rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:#7a8896}.ed-group h5:first-child{margin-top:0}.ed-svg{width:26px;height:26px;display:block}.ed-grid button{position:relative}.ed-grid button[data-drag]:after{content:"";position:absolute;top:5px;right:5px;width:11px;height:11px;opacity:.55;background:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 10L10 2M2 10V6.5M2 10h3.5M10 2v3.5M10 2H6.5' stroke='%231e2b3a' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}.ed-grid button.active[data-drag]:after{filter:invert(1);opacity:.8}.ed-grid button.active .ed-svg{filter:drop-shadow(0 0 1.5px rgba(255,255,255,.7))}.ed-grid .ed-svg{width:30px;height:30px}.ed-cur-icon .ed-svg,.ed-recent .ed-svg{width:28px;height:28px}#ed-menu .ed-menu-item span .ed-svg{width:22px;height:22px;margin:0 auto}#ed-props{position:absolute;z-index:2;left:10px;right:10px;bottom:10px;box-sizing:border-box;padding:10px 12px 12px;border-radius:18px;background:#fffffff7;display:flex;flex-direction:column;gap:8px;animation:ed-pop .14s ease-out}#ed-props[hidden]{display:none}.ed-props-head{display:flex;align-items:center;gap:8px}.ed-props-icon{width:34px;height:34px;border-radius:10px;background:#eef3f7;display:grid;place-items:center;flex:none}.ed-props-head b{flex:1;font-size:1rem}#ed-props .ed-props-x{width:40px;height:40px;min-width:0;padding:0;border-radius:12px;display:grid;place-items:center;background:transparent;box-shadow:none;border:0;color:var(--muted)}#ed-props .ed-props-x .ed-svg,.ed-props-actions .ed-svg{width:20px;height:20px}.ed-field{display:flex;flex-direction:column;gap:4px;font-weight:800;font-size:.84rem;color:var(--muted)}.ed-field>span{display:flex;justify-content:space-between}.ed-field>span b{color:var(--ink);font-variant-numeric:tabular-nums}.ed-field input[type=range]{width:100%;height:30px;accent-color:var(--grass-deep, #3fae45);margin:0}.ed-seg{display:flex;gap:4px;padding:3px;border-radius:12px;background:#1e2b3a12}.ed-seg button{flex:1;height:38px;min-width:0;border-radius:10px;border:0;background:transparent;box-shadow:none;font-size:.84rem;color:var(--muted)}.ed-seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 2px 6px #1e2b3a26}.ed-chips{display:flex;flex-wrap:wrap;gap:4px}.ed-chips button{height:34px;min-width:0;padding:0 10px;border-radius:10px;border:0;background:#1e2b3a12;box-shadow:none;font-size:.8rem;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.ed-chips button i{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px #00000026}.ed-chips button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 0 0 2px var(--grass-deep, #3fae45)}.ed-props-note{margin:0;font-size:.84rem;line-height:1.35;color:#44525f}.ed-props-actions{display:flex;gap:6px}.ed-props-actions button{flex:1;height:44px;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border-radius:12px;font-size:.86rem}.ed-props-actions button[hidden]{display:none}.ed-props-actions .ed-del{color:#c0392b}#editor.has-sel #ed-status{display:none}#ed-check{position:absolute;z-index:1;left:10px;top:10px;max-width:min(300px,calc(100% - 200px));border-radius:14px;background:#ffffffeb;box-shadow:var(--shadow)}#ed-check[hidden]{display:none}#ed-check-main{height:38px;min-width:0;max-width:100%;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:0;border-radius:14px;background:transparent;box-shadow:none;font-size:.86rem;color:var(--ink)}#ed-check-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-light{width:12px;height:12px;border-radius:50%;flex:none;background:#9aa6b2;box-shadow:0 0 0 3px #9aa6b240}#ed-check[data-light=green] .ed-light{background:#3fae45;box-shadow:0 0 0 3px #3fae4540}#ed-check[data-light=yellow] .ed-light{background:#f0b429;box-shadow:0 0 0 3px #f0b4294d}#ed-check[data-light=red] .ed-light{background:#e8433a;box-shadow:0 0 0 3px #e8433a40}#ed-check[data-light=wait] .ed-light{animation:ed-blink 1s ease-in-out infinite alternate}@keyframes ed-blink{0%{opacity:.35}to{opacity:1}}#ed-check-more{padding:0 12px 10px;display:flex;flex-direction:column;gap:8px}#ed-check-more[hidden]{display:none}#ed-check-text{margin:0;font-size:.84rem;line-height:1.35;color:#44525f}#ed-check-par{height:38px;border-radius:12px;font-size:.86rem}#ed-check-par[hidden],#editor.pv-big #ed-check{display:none}#ed-zoom{position:absolute;z-index:1;right:10px;top:10px;display:flex;gap:2px;padding:3px;border-radius:14px;background:#ffffffe6;box-shadow:var(--shadow)}#ed-zoom button{height:36px;min-width:36px;padding:0 10px;border-radius:11px;border:0;background:transparent;box-shadow:none;font-size:1.1rem;font-weight:800}#ed-zoom #ed-zoom-fit{font-size:.78rem}#ed-zoom button:disabled{opacity:.4}#editor.has-sel #ed-zoom{display:none}#ed-canvas.panning{cursor:grab}@media (min-width: 900px){#ed-zoom{inset:auto auto 12px 12px}#editor.has-sel #ed-zoom{display:flex}#editor.pv-big #ed-zoom{display:none}}.ed-area-acts{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ed-area-acts button{height:44px;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border-radius:12px;font-size:.86rem}.ed-area-acts .ed-svg{width:20px;height:20px}.ed-area-acts .ed-del{color:#c0392b}.ed-props-actions[hidden]{display:none}#ed-templates{position:fixed;z-index:48;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box;padding:18px 18px 14px;border-radius:22px;background:#fff;animation:ed-pop .16s ease-out}#ed-templates h3{margin:0 0 2px;font:700 1.3rem var(--display)}.ed-templates-sub{margin:0 0 12px;color:var(--muted);font-size:.9rem}.ed-templates-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.ed-tpl{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto 1fr;gap:2px 10px;align-items:start;text-align:left;padding:8px;min-height:0;border-radius:16px}.ed-tpl canvas{grid-row:span 2;width:64px;height:64px;border-radius:10px}.ed-tpl b{font-size:.98rem}.ed-tpl small{font:600 .78rem/1.3 var(--body);color:var(--muted);white-space:normal}.ed-templates-skip{display:block;margin:12px auto 0;height:40px;padding:0 18px;border-radius:12px;background:transparent;box-shadow:none;border:0;color:var(--muted)}@media (max-width: 520px){.ed-templates-list{grid-template-columns:1fr}}#btn-back-editor{display:none}body.in-game.testing #btn-back-editor{display:inline-flex;align-items:center;gap:6px;position:fixed;z-index:12;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);min-height:42px;padding:0 16px;border-radius:14px;font-weight:800}#ed-keys{position:fixed;z-index:48;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 32px));box-sizing:border-box;padding:18px 20px 16px;border-radius:20px;background:#fff;animation:ed-pop .16s ease-out}#ed-keys h3{margin:0 0 10px;font:700 1.2rem var(--display)}#ed-keys dl{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin:0 0 14px;font-size:.9rem;align-items:center}#ed-keys dt{white-space:nowrap}#ed-keys dd{margin:0;color:#44525f}#ed-keys kbd{display:inline-block;min-width:1.4em;padding:2px 6px;border-radius:6px;border:1px solid #cfd8e0;border-bottom-width:2px;background:#f6f9fb;font:700 .8rem var(--body);text-align:center}#ed-keys button{width:100%;height:44px;border-radius:13px}.ed-sheet .ed-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media (min-width: 560px){.ed-sheet .ed-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}}#editor:has(#ed-tools.open) #ed-status,#editor:has(#ed-tour:not([hidden])) #ed-status{display:none}@media (max-width: 420px){.ed-top{gap:4px;padding:7px 8px}.ed-top button{min-width:40px}.ed-icon,.ed-top .ed-text{width:40px;padding:0;justify-content:center}.ed-top input{padding-right:40px}.ed-top .ed-save{width:40px}.ed-top .ed-text span{display:none}#ed-play{width:46px}#ed-play svg{margin:0;width:22px;height:22px}.ed-top input{padding-left:10px;font-size:.95rem}}@media (min-width: 421px) and (max-width: 640px){#ed-share span{display:none}#ed-share{width:42px;padding:0;justify-content:center}}@media (max-height: 500px) and (max-width: 899px){.ed-top{padding:5px 8px}.ed-dock{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}.ed-current,.ed-recent button{height:42px}.ed-recent button{width:42px}#ed-tools.open .ed-sheet{max-height:calc(100dvh - 130px);overflow-y:auto}#ed-menu{top:calc(56px + env(safe-area-inset-top,0px))}}@media (min-width: 900px){.ed-body{flex-direction:row}#ed-tools{flex:none;align-self:flex-start;max-height:calc(100% - 20px);width:236px;margin:10px 0 10px 10px;padding:12px 10px;box-sizing:border-box;overflow-y:auto;scrollbar-width:thin;border-radius:20px;background:#ffffffe6;box-shadow:var(--shadow)}.ed-dock{display:none}.ed-sheet,#ed-tools.open .ed-sheet{display:flex;flex-direction:column;gap:14px;position:static;padding:0;background:none;box-shadow:none;border-radius:0;animation:none}.ed-sheet .ed-tabs{margin-bottom:0}.ed-sheet .ed-tabs button{font-size:.82rem;padding:0 4px}.ed-sheet .ed-grid{grid-template-columns:repeat(3,1fr)}#ed-props{inset:14px 14px auto auto;width:284px}#editor.has-sel #ed-status:not(:empty){display:block}#ed-status,#editor.pv-open #ed-status{left:calc((100% - 300px)/2);max-width:calc(100% - 340px)}.ed-top{padding:9px 14px;gap:8px}body.editing #fb-btn,body.editing #fb-btn:hover{top:auto;bottom:24px;transform:rotate(180deg)}}#ed-preview{position:absolute;right:14px;bottom:14px;width:300px;border-radius:18px;overflow:hidden;background:#ffffffeb;box-shadow:var(--shadow);z-index:1}.ed-preview-head{display:flex;align-items:center}#ed-preview-big{flex:none;height:32px;margin-right:6px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border-radius:10px;font-size:.8rem;box-shadow:none}#ed-preview-big svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}#ed-preview.closed #ed-preview-big{display:none}#editor.pv-big #ed-preview{left:14px;top:14px;width:auto;display:flex;flex-direction:column;z-index:3}#editor.pv-big .ed-preview-view{flex:1;height:auto}#editor.pv-big #ed-props,#editor.pv-big #ed-status{display:none}#ed-preview-canvas{cursor:grab}#ed-preview-canvas:active{cursor:grabbing}#ed-preview-toggle{flex:1;width:100%;height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 14px;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:.88rem;-webkit-backdrop-filter:none;backdrop-filter:none}#ed-preview-toggle:hover,#ed-preview-toggle:active{transform:none;box-shadow:none;background:#1e2b3a0a}#ed-preview-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}#ed-preview.closed #ed-preview-toggle svg{transform:rotate(180deg)}#ed-preview.closed{width:170px}.ed-preview-view{height:210px;margin:0 6px 6px;border-radius:13px;overflow:hidden;background:#cdeeff}#ed-preview.closed .ed-preview-view{display:none}#ed-preview-canvas{display:block;width:100%;height:100%}#ed-tour{position:fixed;inset:0;z-index:47;pointer-events:none}.ed-tour-ring{position:fixed;border-radius:16px;border:3px solid #ffc93c;box-shadow:0 0 0 9999px #0c181261;transition:all .25s ease;animation:ed-ring 1.6s ease-in-out infinite}@keyframes ed-ring{50%{border-color:#fff3c4}}#ed-tour .ed-tour-card{position:fixed;box-sizing:border-box;padding:16px 18px 14px;border-radius:20px;background:#fff;pointer-events:auto;transition:left .25s ease,top .25s ease;animation:ed-pop .2s ease-out}.ed-tour-card small{font:800 .72rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--grass-deep, #3fae45)}.ed-tour-card h3{margin:4px 0 6px;font:700 1.2rem var(--display)}.ed-tour-card p{margin:0 0 12px;font-size:.92rem;line-height:1.4;color:#44525f}.ed-tour-row{display:flex;justify-content:space-between;gap:8px}.ed-tour-row button{height:42px;padding:0 16px;border-radius:13px}@media (prefers-reduced-motion: reduce){.ed-tour-ring,.ed-save[data-state=saving] i{animation:none}}body.editing #toast{z-index:48;top:auto;bottom:calc(96px + env(safe-area-inset-bottom,0px));white-space:normal;max-width:calc(100vw - 40px);text-align:center}:root{--glass: rgba(255, 255, 255, .74);--glass-strong: rgba(255, 255, 255, .9);--glass-line: rgba(255, 255, 255, .8);--shadow: 0 12px 32px -10px rgba(30, 43, 58, .35), 0 2px 6px rgba(30, 43, 58, .08);--shadow-sm: 0 6px 16px -6px rgba(30, 43, 58, .35), 0 1px 2px rgba(30, 43, 58, .08);--muted: #5a6b7c;--grass-deep: #3fae45;--sky-top: #5fb8f2;--sky-horizon: #d9f1ff}body{background:linear-gradient(180deg,var(--sky-top) 0%,#9ed8fb 48%,var(--sky-horizon) 100%) fixed}.panel{background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);border:1px solid var(--glass-line);border-radius:20px;box-shadow:var(--shadow)}button,select{background:var(--glass-strong);border:1px solid var(--glass-line);box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}button:hover,select:hover{transform:translateY(-1px);box-shadow:0 10px 22px -8px #1e2b3a66,0 1px 2px #1e2b3a14}button:active{transform:translateY(1px) scale(.98);box-shadow:0 3px 8px -4px #1e2b3a66}button:disabled,select:disabled{transform:none;box-shadow:none}button.primary,#start button.primary,.ed-top .primary{background:linear-gradient(180deg,#74d670 0%,var(--grass-deep) 100%);border-color:#ffffff59;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.12);box-shadow:0 10px 22px -10px #2f8c34e6,inset 0 1px #ffffff59}button.primary:hover{box-shadow:0 14px 26px -10px #2f8c34f2,inset 0 1px #ffffff59}#loading{flex-direction:column;gap:18px;color:var(--ink);background:linear-gradient(180deg,var(--sky-top),var(--sky-horizon));display:flex;align-items:center;justify-content:center}.loader{position:relative;width:60px;height:70px}.loader i{position:absolute;left:14px;top:0;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 30%,#e8eef3 70%,#c9d3dc);box-shadow:inset -3px -4px #1e2b3a14;animation:bounce .7s cubic-bezier(.5,0,.5,1) infinite alternate}.loader b{position:absolute;left:12px;bottom:0;width:36px;height:8px;border-radius:50%;background:#1e2b3a2e;animation:shade .7s cubic-bezier(.5,0,.5,1) infinite alternate}@keyframes bounce{to{transform:translateY(32px) scaleY(.92)}}@keyframes shade{0%{transform:scale(.6);opacity:.5}}#start{width:min(420px,calc(100vw - 32px));padding:26px 26px 20px;gap:14px;border-radius:28px;animation:rise .45s cubic-bezier(.2,1.2,.4,1)}@keyframes rise{0%{opacity:0;transform:translate(-50%,-46%) scale(.97)}}#start .brand{display:flex;align-items:center;gap:14px}#start h1{font-size:2.1rem;letter-spacing:-.01em}#start .lead{margin:2px 0 0;font-size:.95rem}.logo{position:relative;flex:none;width:58px;height:58px;border-radius:18px;background:linear-gradient(160deg,#74d670,var(--grass-deep));box-shadow:0 10px 20px -10px #2f8c34e6,inset 0 1px #fff6}.logo i{position:absolute;left:15px;top:15px;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 35%,#e8eef3 75%,#cdd6de);box-shadow:0 3px 6px #0000002e}.logo:after{content:"";position:absolute;right:9px;top:8px;width:3px;height:22px;background:#fff;border-radius:2px}.logo:before{content:"";position:absolute;right:12px;top:8px;width:14px;height:10px;background:var(--accent);clip-path:polygon(100% 0,100% 100%,0 50%)}#start .field{color:var(--muted)}#start input{border:1px solid rgba(30,43,58,.12);background:#ffffffd9;border-radius:14px;transition:border-color .15s,box-shadow .15s}#start input:focus{border-color:var(--grass);box-shadow:0 0 0 4px #5bc25b38}#start button{padding:12px 18px;font-size:1.02rem}#start .join button{flex:none}#start .divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}#start .divider:before,#start .divider:after{content:"";flex:1;height:1px;background:#1e2b3a24}#start .start-more{display:grid;grid-template-columns:1fr 1fr;gap:10px}#start .start-more button{display:flex;align-items:center;justify-content:center;gap:8px}#start button.secondary{box-shadow:var(--shadow-sm)}#start .chips{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}#start .chips li{font-size:.76rem;font-weight:800;color:var(--muted);background:#fff9;border:1px solid rgba(30,43,58,.08);padding:3px 10px;border-radius:999px}#start .invite{background:#ffc93c40;border:1px solid rgba(255,201,60,.6);border-radius:14px}@media (max-height: 640px){#start .chips{display:none}#start{gap:10px;padding:18px}}body.in-game #btn-menu{display:flex;align-items:center;gap:6px;position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));z-index:12;min-height:42px}body.in-game.menu-open #btn-menu{background:var(--ink);color:#fff}#controls{display:none}body.in-game.menu-open #controls{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;gap:8px;position:fixed;top:calc(66px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));bottom:auto;left:auto;width:min(270px,calc(100vw - 20px));max-width:none;max-height:calc(100vh - 90px);overflow-y:auto;padding:12px;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border:1px solid var(--glass-line);border-radius:20px;box-shadow:var(--shadow);z-index:12;animation:drop .18s ease-out}body.in-game.menu-open #controls>*{min-height:42px;flex-shrink:0}@keyframes drop{0%{opacity:0;transform:translateY(-6px)}}#room-chip{text-align:center;align-self:stretch;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--ink);border-radius:14px}#hole-info{border-radius:20px}#hole-par{background:#5bc25b2e;color:#1f6b25}#stroke-pips i{background:#1e2b3a1f;transition:background-color .2s,transform .2s}#stroke-pips i.on{transform:scale(1.1)}#player-list{border-radius:18px}#player-list button{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;border:0}#player-list button:hover{background:#fff9;box-shadow:none}#player-list button.following{background:#5bc25b2e}#hints span,#touch-hints span{background:#1e2b3a80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#toast{background:#1e2b3adb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);padding:9px 18px;z-index:22}#emote-bar button{background:var(--glass-strong);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#emote-bar button.confetti{background:var(--accent)}#timer{border-width:2px;box-shadow:var(--shadow)}#power-btn{background:var(--glass-strong);border-width:2px;box-shadow:var(--shadow)}#power-readout{border:0;box-shadow:var(--shadow);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}#hole-card{border-radius:26px;padding:24px 22px 18px;background:#ffffffe0}#card-word{letter-spacing:-.01em}#card-table th.player.lead,#card-table td.lead{background:#ffc93c38}#card-table tr.total td.lead{background:#ffc93c73}#card-table td .medal{margin-right:3px;display:inline-block;text-decoration:none}#card-table tbody tr:not(.total):hover td{background:#ffffff80}#card-awards li{border-style:solid;border-width:1px;background:#fff9}#power-readout small{font:700 .72rem var(--body);opacity:.75}#waiting{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;width:min(440px,calc(100vw - 24px));max-height:calc(100% - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;padding:22px 22px 18px;display:flex;flex-direction:column;gap:14px;border-radius:28px;animation:rise .4s cubic-bezier(.2,1.2,.4,1);user-select:text;-webkit-user-select:text}.wait-eyebrow{font-weight:800;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grass-deep)}#waiting h2{font-family:var(--display);font-weight:700;font-size:1.8rem;margin:2px 0 0;line-height:1.1}#wait-code{letter-spacing:.12em}.wait-invite{display:flex;gap:14px;align-items:center;background:#ffffffb3;border:1px solid rgba(30,43,58,.08);border-radius:18px;padding:10px}#wait-qr{flex:none;width:112px;height:112px;background:#fff;border-radius:12px;overflow:hidden}#wait-qr svg{display:block;width:100%;height:100%}.wait-invite-text{display:flex;flex-direction:column;gap:6px;min-width:0}.wait-invite-text p{margin:0;font-weight:700;font-size:.9rem;color:var(--muted)}#wait-link{font:700 .82rem ui-monospace,Menlo,monospace;color:var(--ink);overflow-wrap:anywhere}#wait-copy{align-self:flex-start;padding:7px 14px;font-size:.9rem}#wait-players{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}#wait-players li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#ffffffbf;font-weight:800;min-width:0}#wait-players li i{width:14px;height:14px;border-radius:50%;background:var(--c);flex:none;box-shadow:inset 0 -2px #00000026}#wait-players li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#wait-players li small{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:#ffc93c;padding:2px 6px;border-radius:6px}#wait-players li.away{opacity:.5}#wait-players li.free{background:transparent;border:1px dashed rgba(30,43,58,.2);color:var(--muted);font-weight:700}#wait-players li.free i{background:#1e2b3a1f;box-shadow:none}.wait-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end}.wait-settings label{display:flex;flex-direction:column;gap:4px;font-weight:800;font-size:.8rem;color:var(--muted);min-width:0}.wait-settings label:first-child{grid-column:1 / -1}.wait-settings select,.wait-settings button{width:100%;min-height:42px}#wait-note{margin:0;font-weight:700;color:var(--muted);text-align:center}.wait-actions{display:flex;gap:8px}.wait-actions button{padding:12px 18px;font-size:1.02rem}#wait-start{flex:1;font-family:var(--display);font-size:1.15rem}.wait-actions:has(#wait-start[hidden]) #wait-leave{flex:1}body.waiting #hole-info,body.waiting #player-list,body.waiting #hints,body.waiting #touch-hints,body.waiting #touch-bar,body.waiting #power-btn,body.waiting #timer{display:none!important}@media (max-width: 400px){#waiting{padding:16px;gap:12px}#wait-qr{width:96px;height:96px}#waiting h2{font-size:1.5rem}}#waiting button:disabled,#waiting select:disabled{opacity:.6;cursor:default}#start .daily-start{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 14px;border-radius:18px;background:linear-gradient(135deg,#ffc93c59,#ffffffd9);border:1px solid rgba(255,201,60,.7)}.daily-icon{position:relative;flex:none;width:42px;height:46px;border-radius:10px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}.daily-icon:before{content:"";position:absolute;inset:0 0 auto;height:13px;background:var(--accent)}.daily-icon i{position:absolute;left:13px;top:20px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 30%,#e8eef3 70%,#c9d3dc);box-shadow:0 1px 2px #0003}.daily-text{display:flex;flex-direction:column;gap:1px;min-width:0}.daily-text b{font-family:var(--display);font-weight:600;font-size:1.05rem}.daily-text small{font-size:.82rem;font-weight:700;color:var(--muted)}#daily-state{color:#9a5b00}#daily-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:21;width:min(400px,calc(100vw - 32px));padding:22px;display:flex;flex-direction:column;gap:8px;text-align:center;border-radius:26px;animation:card-in .35s cubic-bezier(.2,1.3,.4,1);user-select:text;-webkit-user-select:text}#daily-word{font-family:var(--display);font-weight:700;font-size:2.3rem;line-height:1.05}#daily-line{margin:0;font-weight:800;color:var(--muted)}#daily-share{margin:6px 0 0;padding:12px;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;font:600 .86rem/1.5 var(--body);background:#ffffffbf;border:1px solid rgba(30,43,58,.08);border-radius:14px}#daily-note{margin:0;font-weight:700;font-size:.9rem}.daily-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}.daily-buttons button{padding:10px 16px}.daily-buttons .primary{flex:1 1 100%;font-family:var(--display);font-size:1.08rem}.host-tools{display:flex;gap:4px;flex:none}.host-tools button{min-width:30px;min-height:30px;padding:2px 6px;border-radius:9px;font-size:.85rem;line-height:1}.host-tools button[data-kick]:hover{background:#ffe1dc}#host-panel{position:fixed;right:max(12px,env(safe-area-inset-right,0px));top:64px;z-index:31;width:min(340px,calc(100vw - 24px));padding:16px;display:flex;flex-direction:column;gap:12px;border-radius:22px;animation:host-in .25s cubic-bezier(.2,1.2,.4,1)}@keyframes host-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}}.host-head{display:flex;align-items:center;justify-content:space-between}.host-head h2{margin:0;font-family:var(--display);font-weight:700;font-size:1.4rem}.host-head button{min-width:36px;min-height:36px;padding:0;border-radius:12px}#host-players{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}#host-players li{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 10px;border-radius:12px;background:#ffffffbf;font-weight:800;min-width:0;min-height:44px}#host-players li i{width:14px;height:14px;border-radius:50%;background:var(--c);flex:none}#host-players li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#host-players li small{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:#ffc93c;padding:2px 6px;border-radius:6px}#host-players li.away{opacity:.6}.host-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.host-actions button{min-height:42px}.host-actions button:disabled{opacity:.55;cursor:default}.host-note{margin:0;font-size:.82rem;font-weight:700;color:var(--muted)}.look-box{border-radius:14px;background:#ffffff8c;border:1px solid rgba(30,43,58,.08);padding:0 12px}.look-box summary{cursor:pointer;padding:10px 0;font-weight:800;font-size:.9rem;color:var(--muted)}.look-box[open]{padding-bottom:12px}.look-picker{display:flex;flex-direction:column;gap:8px}.look-row{display:flex;flex-wrap:wrap;gap:5px}.look-row button{--c: var(--accent);flex:none;width:36px;height:36px;min-height:36px;padding:0;border-radius:12px;display:grid;place-items:center;font-size:1.15rem;line-height:1}.look-row button[aria-pressed=true]{box-shadow:0 0 0 3px var(--grass-deep),var(--shadow-sm);background:#fff}.look-pattern i{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 -3px #00000026,0 0 0 1px #00000014;background:var(--c)}.pat-band{background:linear-gradient(to bottom,var(--c) 0 38%,#fff 38% 62%,var(--c) 62%)!important}.pat-dots{background:radial-gradient(circle,#fff 0 24%,transparent 26%) 0 0 / 50% 50%,var(--c)!important}.pat-half{background:linear-gradient(90deg,var(--c) 50%,#fff 50%)!important}.pat-stripes{background:repeating-linear-gradient(0deg,var(--c) 0 4px,#fff 4px 7px)!important}.pat-swirl{background:conic-gradient(var(--c) 0 60deg,#fff 60deg 120deg,var(--c) 120deg 180deg,#fff 180deg 240deg,var(--c) 240deg 300deg,#fff 300deg)!important}.pat-checker{background:conic-gradient(var(--c) 0 25%,#fff 25% 50%,var(--c) 50% 75%,#fff 75%) 0 0 / 50% 50%!important}.pat-zigzag{background:linear-gradient(135deg,transparent 0 40%,#fff 40% 55%,transparent 55%) 0 50% / 8px 100%,var(--c)!important}.pat-rings{background:repeating-radial-gradient(circle at 20% 50%,var(--c) 0 3px,#fff 3px 5px)!important}#start .look-row button,#waiting .look-row button{padding:0}.look-row button.locked{opacity:.45;position:relative;filter:grayscale(.6)}.look-row button.locked:after{content:"🔒";position:absolute;right:-3px;bottom:-3px;font-size:.7rem;filter:none}.look-secrets{margin:4px 0 0;font:700 .78rem var(--body);color:#5a6b7c}.wait-look{display:flex;flex-direction:column;gap:6px}.wait-look>span{font-weight:800;font-size:.8rem;color:var(--muted)}.wait-look .look-picker{flex-direction:row;flex-wrap:wrap;gap:6px 12px}.wait-look .look-row button{width:32px;height:32px;min-height:32px}@media (max-width: 480px){.look-row{gap:4px}.look-row button{width:32px;height:32px;min-height:32px;font-size:1rem}}#emote-wheel{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#141e2847;animation:fade-in .15s ease-out}#emote-wheel[hidden]{display:none}#emote-ring{--rx: min(250px, calc(50vw - 18px) );--ry: min(180px, 30vh);--ri: 74px;position:relative;width:calc(var(--rx) * 2);height:calc(var(--ry) * 2 + 50px);animation:wheel-in .22s cubic-bezier(.2,1.3,.4,1)}#emote-ring button{position:absolute;left:50%;top:50%;white-space:nowrap;font:600 .92rem var(--display);padding:8px 12px;border:0;border-radius:999px;background:var(--glass-strong, #fff);color:var(--ink);box-shadow:var(--shadow-sm);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#emote-ring button.word{transform:translate(calc(var(--ax) + var(--x) * var(--rx)),calc(-50% + var(--y) * var(--ry)))}#emote-ring button.emoji{transform:translate(calc(-50% + var(--x) * var(--ri)),calc(-50% + var(--y) * var(--ri)))}#emote-ring button.emoji{font-size:1.5rem;padding:4px 10px}#emote-ring button:hover,#emote-ring button:focus-visible{background:#fff;outline:3px solid var(--grass-deep)}#emote-ring kbd{font:inherit;font-size:.75rem;opacity:.45;margin-right:5px}#emote-ring button.emoji kbd{font-size:.75rem;vertical-align:middle}#emote-ring,#emote-close{grid-area:1 / 1}#emote-close{width:52px;height:52px;min-height:52px;padding:0;border-radius:50%;font-size:1.2rem}@keyframes wheel-in{0%{transform:scale(.6);opacity:0}}@keyframes fade-in{0%{opacity:0}}@media (pointer: coarse){#emote-ring kbd{display:none}}.mode-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border-radius:16px;background:#1e2b3a0f}#start .mode-pick button{color:#1e2b3a;padding:9px 4px;font-size:.92rem;border-radius:12px;box-shadow:none;background:transparent;border-color:transparent;white-space:nowrap}#start .mode-pick button[aria-pressed=true]{background:#fff;box-shadow:0 3px 10px -4px #1e2b3a59;color:var(--ink, #1e2b3a)}#start .mode-note{margin:-6px 0 0;text-align:center;font-size:.85rem}#start .link-button{background:none;border:none;box-shadow:none;padding:2px;font-weight:800;font-size:.92rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px;align-self:center}#start .link-button:hover{color:var(--ink, #1e2b3a)}#start .start-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}#records-card,#gallery-card,#gfx-card,#help-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:12px;border-radius:26px;animation:card-in .35s cubic-bezier(.2,1.3,.4,1)}.rec-head{display:flex;align-items:center;justify-content:space-between}.rec-head h2{margin:0;font-family:var(--display);font-weight:700;font-size:1.6rem}.rec-head button{width:38px;height:38px;padding:0;border-radius:12px}.rec-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.rec-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:14px;background:#ffffffb3;border:1px solid rgba(30,43,58,.08)}.rec-tile b{font-family:var(--display);font-size:1.5rem;line-height:1.1}.rec-tile span{font-size:.76rem;font-weight:800;color:var(--muted);text-align:center}.rec-fav{margin:0;font-weight:700}.rec-round{border-radius:14px;background:#ffffff8c;border:1px solid rgba(30,43,58,.08);padding:0 12px}.rec-round summary{cursor:pointer;padding:10px 0;font-weight:800}.rec-round table{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:.9rem}.rec-round th{text-align:left;font-size:.74rem;color:var(--muted);font-weight:800;padding:2px 4px}.rec-round td{padding:5px 4px;border-top:1px solid rgba(30,43,58,.07)}.rec-round td:nth-child(n+2),.rec-round th:nth-child(n+2){text-align:right;white-space:nowrap}.rec-round td small{color:var(--muted);font-weight:700}.rec-round td.good{color:#2f8c34;font-weight:800}.rec-round td.bad{color:#b4532a}.rec-ace{color:#e0a800}.rec-note{margin:0;font-size:.8rem;color:var(--muted)}.replay-banner{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 20px 7px;border-radius:18px;background:#1e2b3ad1;color:#fff;font-family:var(--display);text-align:center;pointer-events:none;box-shadow:0 6px 18px #0003;animation:replay-in .35s ease-out;max-width:calc(100vw - 32px)}.replay-banner[hidden]{display:none}.replay-banner b{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#ffd34d}.replay-banner b:before{content:"▶ "}.replay-banner span{font-size:1.25rem;font-weight:700}.replay-banner small{font-family:var(--body);font-size:.75rem;opacity:.7}body.replaying #hole-info,body.replaying #emote-bar,body.replaying #controls{opacity:.35}@keyframes replay-in{0%{opacity:0;transform:translate(-50%,-8px)}}.team-tag{background:var(--t)!important;color:#fff!important;border-radius:999px;padding:1px 8px}.team-dot{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--t);margin-left:6px;box-shadow:0 0 0 2px #fff;vertical-align:middle}#card-table tr.team-row td{border-top:2px solid var(--t)}#card-table tr.team-row td:first-child b{color:var(--t);margin-right:6px}#card-table tr.team-row td:first-child small{opacity:.7}#card-table tr.team-row td.num{text-align:center;font-weight:700}body.watching #emote-bar,body.watching #btn-powerups,body.watching #power-readout{display:none!important}#btn-watch{padding:7px 12px}.watchers span{font-weight:600}#card-table.many{font-size:.8rem;display:block;max-width:100%;overflow-x:auto}#card-table.many th,#card-table.many td{padding-left:3px;padding-right:3px}#card-table.many tr.team-row small{display:none}#gallery-card{width:min(900px,calc(100vw - 32px));box-sizing:border-box;overflow-x:hidden;overscroll-behavior:contain}.gal-bar{display:flex;flex-wrap:wrap;gap:8px}.gal-sort{flex:1 1 180px}.gal-tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:#1e2b3a12;min-width:0}.gal-tabs button{flex:1;min-width:0;min-height:40px;border:none;box-shadow:none;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--muted);font-weight:800;padding:6px 8px;border-radius:10px;white-space:nowrap}#gallery-close{width:44px;height:44px;border-radius:14px}.gal-tabs button[aria-pressed=true]{background:#fff;color:var(--ink, #1e2b3a);box-shadow:0 3px 10px -4px #1e2b3a59}.gal-pars{flex:3 1 300px;align-items:center}.gal-par-label{flex:none;padding:0 4px 0 8px;font-weight:800;font-size:.8rem;color:var(--muted)}.gal-mine{flex:none;min-height:48px;padding:6px 16px;border-radius:14px;font-weight:800}.gal-mine[aria-pressed=true]{background:var(--grass-deep);border-color:var(--grass-deep);color:#fff}#gallery-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:12px}.gal-tile{display:grid;grid-template-columns:116px minmax(0,1fr);grid-template-areas:"thumb info" "acts acts";gap:10px 12px;padding:10px;border-radius:20px;background:#ffffffd1;border:1px solid rgba(30,43,58,.08);box-shadow:var(--shadow-sm);min-width:0}.gal-tile.gal-week{position:relative;grid-column:1 / -1;padding-top:30px;background:linear-gradient(160deg,#fff8dc,#ffffffeb 55%);border-color:transparent;box-shadow:0 0 0 2px #e8b923,0 10px 26px -12px #b080008c}.gal-week-ribbon{position:absolute;top:0;left:14px;padding:3px 12px 4px;border-radius:0 0 12px 12px;background:#e8b923;color:#3b2a00;font:800 .78rem var(--body);letter-spacing:.02em;display:inline-flex;gap:5px;align-items:center}.gal-tile.mine{border-color:transparent;box-shadow:0 0 0 2px #3fae458c,var(--shadow-sm)}.gal-thumb{grid-area:thumb;position:relative;height:104px;border-radius:14px;overflow:hidden;background:radial-gradient(circle at 30% 20%,#3f9a48,#2a6e33);box-shadow:inset 0 0 0 1px #00000014}.gal-thumb canvas{position:absolute;inset:0;width:100%;height:100%}.gal-badge{position:absolute;left:6px;bottom:6px;padding:1px 8px;border-radius:999px;background:var(--grass-deep);color:#fff;font:800 .68rem var(--body);box-shadow:0 2px 6px #0003}.gal-info{grid-area:info;min-width:0;display:flex;flex-direction:column;gap:3px;justify-content:center}.gal-info b{font-family:var(--display);font-weight:600;font-size:1.15rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gal-info small{color:var(--muted);font-weight:700;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gal-meta{display:flex;flex-wrap:wrap;gap:4px}.gal-meta span{font-size:.76rem;font-weight:800;color:#1f6b25;background:#5bc25b29;padding:1px 8px;border-radius:999px}.gal-meta span+span{color:var(--muted);background:#1e2b3a0f}.gal-acts{grid-area:acts;display:flex;gap:6px;min-width:0}.gal-acts button{flex:1 1 0;min-width:0;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;border-radius:14px;font-size:.92rem;white-space:nowrap}.gal-acts button span{font-size:.88rem}.gal-acts .gal-like,.gal-acts .gal-del{flex:0 0 auto;padding:6px 12px}.gal-like i{font-style:normal;font-weight:800}.gal-like[aria-pressed=true]{background:#fff3c4;border-color:#e0b300;color:var(--ink, #1e2b3a)}.gal-del em{font-style:normal}.gal-del:hover{background:#ffe8e4;color:#b4321f}.gal-note{grid-column:1 / -1;color:var(--muted);font-weight:700;text-align:center;padding:12px 4px}.gal-note-btn{margin-left:4px;min-height:40px;padding:4px 14px;font-size:.85rem}@media (max-width: 480px){#gallery-card{padding:16px 14px}.gal-sort{flex:1 1 0}.gal-mine{order:1}.gal-pars{order:2;flex:1 1 100%}.gal-del em{display:none}.gal-tile{grid-template-columns:96px minmax(0,1fr)}.gal-thumb{height:88px}.gal-acts button{padding:6px;font-size:.88rem}.gal-acts .gal-like,.gal-acts .gal-del{padding:6px 10px}}.gfx-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem}.gfx-row select{min-width:150px}.gfx-row input[type=range]{width:150px}.gfx-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent, #2f8f5b)}.gfx-row output{color:var(--muted);font-size:.85rem;margin-left:4px}#gfx-bench-out{margin:0;padding-left:0;list-style:none;display:grid;gap:4px;font-size:.9rem}#gfx-bench-out li{display:flex;justify-content:space-between;padding:4px 10px;border-radius:10px;background:#ffffff59}#gfx-bench-out li.best{background:#2f8f5b38;font-weight:700}#fps-meter{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:25;padding:3px 10px;border-radius:999px;background:#1e2b3ab3;color:#fff;font:600 .8rem var(--display, sans-serif);pointer-events:none}.gfx-costs{margin:0;padding:0;list-style:none;display:grid;gap:2px;font-size:.8rem;color:var(--muted)}.gfx-costs li{display:flex;justify-content:space-between;padding:0 10px}.gfx-costs li:first-child{color:var(--ink);font-weight:700}#fb-btn{position:fixed;left:0;top:50%;z-index:60;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;padding:12px 7px;border-radius:0 12px 12px 0;border-left:0;font-size:.88rem;opacity:.86}#fb-btn:hover{opacity:1;transform:translateY(-50%) rotate(180deg)}#fb-btn[hidden],#fb-card[hidden]{display:none}#fb-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:70;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:10px;border-radius:22px;animation:card-in .3s cubic-bezier(.2,1.3,.4,1)}#fb-card .fb-head{display:flex;align-items:center;justify-content:space-between;gap:8px}#fb-card h2{margin:0;font-family:var(--display);font-size:1.3rem}#fb-card .fb-x{padding:4px 10px}#fb-card .fb-kinds{display:flex;gap:6px;flex-wrap:wrap}#fb-card .fb-kinds button{font-size:.9rem;padding:6px 12px}#fb-card .fb-kinds button.active{background:var(--ink);border-color:var(--ink);color:#fff}#fb-card textarea{font:inherit;font-size:.98rem;resize:vertical;min-height:96px;border-radius:14px;border:1px solid var(--glass-line);padding:10px 12px;background:#ffffffd9;color:var(--ink)}#fb-card .fb-name{display:flex;align-items:center;gap:8px;font-size:.9rem}#fb-card .fb-name input{flex:1;font:inherit;border-radius:10px;border:1px solid var(--glass-line);padding:6px 10px;background:#ffffffd9}#fb-card .fb-where{margin:0;font-size:.78rem;color:#5a6b7c;line-height:1.35}#fb-card .fb-actions{display:flex;justify-content:flex-end;gap:8px}#fb-card .fb-send{background:var(--grass);border-color:var(--grass);color:#fff}#help-body h3{margin:10px 0 4px;font-family:var(--display);font-size:1.1rem}#help-body p{margin:0 0 6px;line-height:1.4;font-size:.92rem}.help-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.help-list li{display:grid;grid-template-columns:7.5em 1fr;gap:8px;align-items:baseline;font-size:.9rem;line-height:1.3}.help-list.icons li{grid-template-columns:1.8em 7.5em 1fr}.help-list i{font-style:normal;font-size:1.2rem}.help-list small{display:block;color:#5a6b7c;font-weight:700;font-size:.76rem}@media (max-width: 420px){.help-list li,.help-list.icons li{grid-template-columns:1fr;gap:0}.help-list.icons li{grid-template-columns:1.8em 1fr}.help-list.icons li span{grid-column:2}}#start .profile-chip{align-self:flex-end;margin:-12px -12px -8px 0;display:inline-flex;align-items:center;gap:8px;min-height:40px;max-width:75%;padding:4px 14px 4px 5px;font-size:.92rem}#start .profile-chip #profile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#start .profile-chip.in{box-shadow:var(--shadow-sm),inset 0 0 0 2px #3fae458c}.profile-ball,.acc-ball{--c: var(--player);position:relative;flex:none;display:block;width:30px;height:30px;border-radius:50%}.profile-ball i,.acc-ball i{display:block;width:100%;height:100%;border-radius:50%;background:var(--c);box-shadow:inset -3px -4px #00000029,0 0 0 1px #0000000f}.profile-chip:not(.in) .profile-ball{--c: #c4ced8}.profile-chip:not(.in) .profile-ball i{background:radial-gradient(circle at 50% 38%,#fff 0 18%,transparent 19%),radial-gradient(ellipse at 50% 100%,#fff 0 42%,transparent 43%),var(--c)!important}#start input[readonly]{background:#5bc25b1a;border-color:#3fae4566;cursor:default}#start input[readonly]:focus{box-shadow:none}.name-note{font-size:.78rem;font-weight:800;color:#2f8c34}#start .start-more{grid-template-columns:repeat(3,1fr);gap:8px}#start .start-more button{flex-direction:column;gap:3px;padding:10px 4px 9px;font-size:.92rem;line-height:1.15;min-height:64px}#start .start-more button span{font-size:1.3rem;line-height:1}body.page-open #toast{z-index:60;top:auto;bottom:calc(96px + env(safe-area-inset-bottom,0px));white-space:normal;max-width:calc(100vw - 40px);width:max-content;text-align:center}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}}#mine-page{position:fixed;top:max(calc(16px + env(safe-area-inset-top,0px)),5vh);left:0;right:0;max-height:calc(100dvh - (2*max(calc(16px + env(safe-area-inset-bottom,0px)),5vh)));margin:0 auto;box-shadow:var(--shadow),0 0 0 100vmax #14202c47;z-index:46;width:min(1080px,calc(100vw - 32px));box-sizing:border-box;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;padding:22px 24px 0;display:flex;flex-direction:column;gap:14px;border-radius:28px;background:#ffffffd6;animation:page-in .3s cubic-bezier(.2,1.2,.4,1);user-select:text;-webkit-user-select:text}.mine-head{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"title actions x";align-items:center;gap:12px}.mine-head h2{grid-area:title;margin:0;font-family:var(--display);font-weight:700;font-size:1.9rem;letter-spacing:-.01em}.mine-head-actions{grid-area:actions;display:flex;gap:8px}.mine-head-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 18px}.mine-x{grid-area:x;width:44px;height:44px;padding:0;border-radius:14px}.mine-status{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 12px;border-radius:18px;border:1px solid}.mine-status p{flex:1;margin:0;font-weight:800;font-size:.94rem;line-height:1.3}.mine-status button{flex:none;min-height:40px;padding:6px 16px}.mine-who{font-weight:700;color:var(--muted)}.mine-dot{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 .95rem var(--display)}.mine-status.ok{background:#5bc25b29;border-color:#3fae4573;color:#1f6b25}.mine-status.ok .mine-dot{background:var(--grass-deep)}.mine-status.warn{background:#ffc93c3d;border-color:#e0a8008c;color:#6e4b00}.mine-status.warn .mine-dot{background:#e0a800}.mine-status.off{background:#5fb8f22e;border-color:#1f6fd159;color:#164e93}.mine-status.off .mine-dot{background:#1f6fd1}.mine-status.bad{background:#e8433a1f;border-color:#e8433a66;color:#8f2a1d}.mine-status.bad .mine-dot{background:var(--player)}#mine-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:14px}.mine-tile{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"thumb info" "thumb main" "tools tools";gap:8px 14px;padding:10px;border-radius:22px;background:#ffffffd1;border:1px solid rgba(30,43,58,.08);box-shadow:var(--shadow-sm);min-width:0}.mine-tile.current{border-color:transparent;box-shadow:0 0 0 2.5px var(--grass-deep),var(--shadow-sm)}.mine-tile.fresh{animation:tile-in .9s ease-out}@keyframes tile-in{0%{transform:scale(.96);box-shadow:0 0 0 6px #ffc93ce6}to{transform:none}}.mine-thumb{grid-area:thumb;position:relative;height:150px;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 30% 20%,#3f9a48,#2a6e33);box-shadow:inset 0 0 0 1px #00000014;cursor:pointer}.mine-thumb canvas{position:absolute;inset:0;width:100%;height:100%}.mine-badge{position:absolute;left:6px;right:6px;bottom:6px;padding:2px 6px;border-radius:999px;background:var(--grass-deep);color:#fff;font:800 .68rem var(--body);text-align:center;letter-spacing:.02em;box-shadow:0 2px 6px #0003}.mine-info{grid-area:info;min-width:0;display:flex;flex-direction:column;gap:4px;padding-top:2px}.mine-info b{font-family:var(--display);font-weight:600;font-size:1.2rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mine-meta{display:flex;flex-wrap:wrap;gap:4px}.mine-meta span{font-size:.76rem;font-weight:800;color:#1f6b25;background:#5bc25b29;padding:1px 8px;border-radius:999px}.mine-meta span+span{color:var(--muted);background:#1e2b3a0f}.mine-info small{color:var(--muted);font-weight:700;font-size:.8rem}.mine-issue{color:#b4532a}.mine-main{grid-area:main;align-self:end;display:flex;gap:6px}.mine-main button{flex:1;min-width:0;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px;white-space:nowrap;font-size:.95rem;border-radius:14px}.mine-main button span{font-size:.9rem}.mine-main [data-act=edit]{flex:1.45}.mine-pick-row{grid-area:main;align-self:end;display:flex}.mine-pick-row button{flex:1;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;font-size:.95rem}.mine-pick-row button b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--grass-deep, #3fae45);font-size:.85rem}.mine-pick-row button[aria-pressed=true]{background:var(--grass-deep, #3fae45);color:#fff;border-color:transparent}.mine-tile.picked{box-shadow:0 0 0 2.5px var(--grass-deep, #3fae45),var(--shadow-sm)}#mine-page.picking .mine-tile{grid-template-areas:"thumb info" "thumb main" "thumb main"}.mine-main[hidden],.mine-tools[hidden]{display:none}#mine-round[aria-pressed=true]{background:var(--ink);color:#fff}.mine-round-bar{position:sticky;bottom:10px;z-index:2;margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;border-radius:20px;background:#fffffff7;box-shadow:var(--shadow)}.mine-round-bar[hidden]{display:none}.mine-round-bar p{flex:1 1 220px;margin:0;font-weight:700;font-size:.95rem}.mine-round-actions{display:flex;gap:6px;flex:1 1 auto;justify-content:flex-end}.mine-round-actions button{min-height:44px;padding:6px 14px;white-space:nowrap}@media (max-width: 520px){.mine-round-actions button{flex:1;padding:6px 8px}}.mine-tools{grid-area:tools;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding-top:8px;border-top:1px solid rgba(30,43,58,.08)}.mine-tools button{min-width:0;min-height:40px;display:flex;align-items:center;justify-content:center;gap:5px;padding:4px 6px;font-size:.84rem;border-radius:12px;box-shadow:none;background:#1e2b3a0d;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;white-space:nowrap}.mine-tools button:hover{background:#fff;box-shadow:var(--shadow-sm)}.mine-tools button span{font-size:.95rem}.mine-tools .mine-del:hover{background:#ffe8e4;color:#b4321f}.mine-empty{grid-column:1 / -1;padding:28px 12px;text-align:center;font-weight:800;color:var(--muted);border:2px dashed rgba(30,43,58,.15);border-radius:20px}.mine-more{border-radius:18px;background:#ffffff8c;border:1px solid rgba(30,43,58,.08);padding:0 16px}.mine-more summary{min-height:48px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:800;color:var(--muted);list-style:none}.mine-more summary::-webkit-details-marker{display:none}.mine-more summary:before{content:"›";font:700 1.3rem var(--display);transition:transform .15s;width:14px}.mine-more[open] summary:before{transform:rotate(90deg)}.mine-more-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;padding-bottom:16px}.mine-more-body .rec-note{grid-column:1 / -1}.mine-box{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:16px;background:#fffc;border:1px solid rgba(30,43,58,.08)}.mine-box h3{margin:0;font:600 1.05rem var(--display)}.mine-box p{margin:0;font-size:.86rem;font-weight:600;color:var(--muted)}.mine-box .bk-key{font:800 1.2rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;user-select:all;-webkit-user-select:all}.mine-box .bk-row{display:flex;flex-wrap:wrap;gap:6px}.mine-box .bk-row button{min-height:40px;padding:6px 14px;border-radius:12px;font-size:.88rem}.mine-box .bk-err{color:#b4532a;font-weight:700}.undo-bar{position:sticky;bottom:calc(14px + env(safe-area-inset-bottom,0px));align-self:center;z-index:2;display:flex;align-items:center;gap:14px;max-width:100%;box-sizing:border-box;padding:6px 6px 6px 18px;margin-top:-4px;border-radius:999px;background:#1e2b3af0;color:#fff;font-weight:800;box-shadow:var(--shadow);overflow:hidden;animation:page-in .2s ease-out}.undo-bar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.undo-bar button{flex:none;min-height:40px;padding:6px 16px;background:#ffc93c;border-color:#ffc93c;color:var(--ink)}.undo-bar i{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#ffc93c;transform-origin:left}.undo-bar.run i{animation:undo-time 6s linear forwards}@keyframes undo-time{to{transform:scaleX(0)}}#mine-page:after{content:"";flex:none;height:6px}#account-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:47;width:min(440px,calc(100vw - 32px));box-sizing:border-box;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;border-radius:26px;background:#ffffffdb;animation:card-in .35s cubic-bezier(.2,1.3,.4,1);user-select:text;-webkit-user-select:text}#account-card .rec-head button{width:44px;height:44px;border-radius:14px}#account-body{display:flex;flex-direction:column;gap:12px}.acc-tabs button{min-height:42px;font-size:.9rem;line-height:1.1;padding:6px 4px}.acc-lead{margin:0;font-size:.92rem;font-weight:700;color:var(--muted);line-height:1.4}.acc-wait:before{content:"";display:inline-block;vertical-align:-2px;width:12px;height:12px;margin-right:8px;border-radius:50%;border:3px solid #cfe3d0;border-top-color:var(--grass);animation:spin .8s linear infinite}.acc-form{display:flex;flex-direction:column;gap:10px}.acc-form label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:800;color:var(--muted)}.acc-form input{font:600 1rem var(--body);color:var(--ink);min-height:44px;box-sizing:border-box;padding:9px 14px;border-radius:14px;border:1px solid rgba(30,43,58,.14);background:#ffffffeb;outline:none;min-width:0;transition:border-color .15s,box-shadow .15s}.acc-form input:focus{border-color:var(--grass);box-shadow:0 0 0 4px #5bc25b38}.acc-form button[type=submit]{min-height:46px;font-size:1.02rem}.acc-form button:disabled{opacity:.6;cursor:progress}.acc-hint{font-size:.8rem;font-weight:700;color:var(--muted);margin-top:-4px}.acc-err{margin:0;color:#b4532a;font-weight:800;font-size:.88rem}.acc-err:empty{display:none}.acc-note{margin:0;font-size:.86rem;font-weight:700;color:var(--muted)}.acc-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.acc-row button{min-height:44px;font-size:.92rem;line-height:1.15;padding:6px 10px}.acc-wide{width:100%;min-height:46px}.acc-link{display:flex;align-items:center;gap:8px;justify-content:flex-start;border-radius:16px}.acc-link small{margin-left:auto;font:700 .82rem var(--body);color:var(--muted)}.acc-hero{display:flex;align-items:center;gap:14px}.acc-hero .acc-ball{width:56px;height:56px}.acc-hero div{display:flex;flex-direction:column;min-width:0}.acc-hero b{font:700 1.6rem var(--display);line-height:1.1;overflow:hidden;text-overflow:ellipsis}.acc-hero small{font-weight:700;color:var(--muted)}.acc-state{margin:0;padding:10px 14px;border-radius:14px;font-weight:700;font-size:.88rem;line-height:1.35}.acc-state.ok{background:#5bc25b24;color:#1f6b25}.acc-state.off{background:#5fb8f22e;color:#164e93}.acc-sec{border-radius:16px;background:#ffffffa6;border:1px solid rgba(30,43,58,.08);padding:0 14px}.acc-sec summary{min-height:46px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:800;list-style:none}.acc-sec summary::-webkit-details-marker{display:none}.acc-sec summary:after{content:"›";margin-left:auto;font:700 1.3rem var(--display);color:var(--muted);transition:transform .15s}.acc-sec[open] summary:after{transform:rotate(90deg)}.acc-sec[open]{padding-bottom:14px}.acc-danger summary{color:#b4321f}button.danger{background:linear-gradient(180deg,#f0645a,#d63a2f);border-color:#ffffff59;color:#fff}.code-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 14px 16px;border-radius:20px;background:linear-gradient(160deg,#fff4d2,#fffdf6);border:2px dashed #e8b93a;text-align:center}.code-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9a6b00}.code-key{font:800 1.45rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em;color:var(--ink);user-select:all;-webkit-user-select:all;overflow-wrap:anywhere}.code-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:.84rem;font-weight:700;color:var(--muted)}@media (max-width: 640px){#mine-page{inset:0;width:100vw;max-height:none;box-shadow:none;border-radius:0;padding:calc(14px + env(safe-area-inset-top,0px)) 14px 0;border:0;gap:12px}.mine-head{grid-template-columns:1fr auto;grid-template-areas:"title x" "actions actions";gap:10px}.mine-head h2{font-size:1.6rem}.mine-head-actions button{flex:1;padding:8px 10px}.mine-status{flex-wrap:wrap}.mine-status p{flex:1 1 calc(100% - 44px);font-size:.88rem}.mine-status button{flex:1 1 100%}.mine-tile{grid-template-columns:96px minmax(0,1fr);gap:8px 12px}.mine-thumb{height:128px}.mine-main [data-act=edit] span{display:none}.mine-tools button{flex-direction:column;gap:1px;font-size:.74rem;min-height:46px}#start .profile-chip{margin:-8px -8px -6px 0}}.profile-ball:after,.acc-ball:after{content:"";position:absolute;left:22%;top:16%;width:28%;height:22%;border-radius:50%;background:#ffffffb3;filter:blur(.5px)}.profile-chip:not(.in) .profile-ball:after{display:none}
