:root{color:#173f35;font-synthesis:none;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;background:#f8f1df;font-family:Avenir Next,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%;margin:0}body{overscroll-behavior:none;background:radial-gradient(circle at 15% 0,#ffffffb3,#0000 34rem),#f8f1df;min-height:100dvh;overflow-x:hidden}button{font:inherit}.app-shell{width:min(100%,900px);min-height:100dvh;padding:calc(44px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(36px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));margin:0 auto}.hero{margin-bottom:36px}.hero__eyebrow{color:#cb6544;letter-spacing:.14em;font-size:.85rem;font-weight:800}.hero h1{letter-spacing:-.06em;margin:10px 0 4px;font-size:clamp(2.5rem,8vw,4.5rem);line-height:1}.hero p{color:#527267;margin:12px 0 0;font-size:1.1rem}.app-actions{align-items:center;gap:12px;min-height:44px;margin-top:14px;display:flex}.check-update{color:#527267;background:#fffdf6d1;border:1px solid #173f352e;border-radius:999px;padding:10px 18px;font-size:.95rem;font-weight:800}.update-status{color:#698379;font-size:.95rem}.game-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;display:grid}.game-card{color:#173f35;cursor:pointer;text-align:center;background:#fffdf6;border:0;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;min-height:176px;padding:20px 12px;transition:transform .16s,box-shadow .16s;display:flex;box-shadow:0 14px 35px #3848311a}.game-card:not(:disabled):active{transform:scale(.97)}.game-card[hidden]{display:none}.recent-games{margin:0 0 24px}.recent-games h2{margin:0 0 12px;font-size:1.1rem}.recent-games div,.game-categories{flex-wrap:wrap;gap:10px;display:flex}.game-categories{margin-bottom:22px}.recent-games button,.game-categories button{color:#173f35;cursor:pointer;background:#fffdf6;border:1px solid #d8cdbb;border-radius:16px;min-height:48px;padding:10px 16px}.game-categories [aria-pressed=true]{color:#fffdf6;background:#173f35}.game-card:disabled{cursor:default;opacity:.58}.game-card__symbol{font-size:3.4rem;line-height:1}.game-card__title{margin-top:12px;font-size:1.3rem;font-weight:800}.game-card__status{color:#698379;margin-top:4px;font-size:.92rem}.edit-order{color:#527267;background:#fffdf6d1;border:1px solid #173f352e;border-radius:999px;padding:10px 18px;font-size:.95rem;font-weight:800}.order-editor{color:#173f35;background:#eef3e6;border-radius:18px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:22px;padding:12px 18px;font-weight:700;display:flex}.order-editor button{color:#fffdf6;cursor:pointer;background:#173f35;border:0;border-radius:14px;min-height:44px;padding:8px 18px;font-size:.95rem;font-weight:800}.order-editor [data-order-reset]{color:#527267;background:#fffdf6;border:1px solid #d8cdbb}.game-grid--editable{touch-action:none}.game-card--editing{cursor:grab;animation:.4s ease-in-out infinite card-wiggle}.game-grid.dragging .game-card--editing{animation:none}.game-card--lifted{opacity:.35}.game-card--ghost{z-index:90;pointer-events:none;margin:0;animation:none;position:fixed;transform:scale(1.06);box-shadow:0 22px 46px #3848313d}@keyframes card-wiggle{0%,to{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}.update-toast,.updated-toast,.exit-help{right:max(20px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));left:max(20px, env(safe-area-inset-left));z-index:20;color:#fff;background:#173f35;border-radius:18px;justify-content:space-between;align-items:center;gap:14px;max-width:560px;margin:auto;padding:14px 16px;display:flex;position:fixed;box-shadow:0 12px 30px #00000038}.updated-toast,.exit-help{text-align:center;justify-content:center}.update-toast[hidden],.updated-toast[hidden],.exit-help[hidden],.exit-confirm[hidden]{display:none}.update-toast button{color:#173f35;background:#f8f1df;border:0;border-radius:999px;padding:9px 12px;font-weight:800}.exit-confirm{z-index:30;background:#173f3575;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.exit-confirm__panel{text-align:center;background:#fffdf6;border-radius:26px;width:min(100%,420px);padding:28px;box-shadow:0 22px 60px #0000003d}.exit-confirm__panel h2{margin:0;font-size:1.65rem}.exit-confirm__panel p{color:#527267;margin:12px 0 22px;line-height:1.55}.exit-confirm__panel div{justify-content:center;gap:12px;display:flex}.exit-confirm__panel button{color:#173f35;background:#e8e2d3;border:0;border-radius:999px;min-width:112px;min-height:48px;font-weight:800}.exit-confirm__panel [data-exit-confirm]{color:#fffaf0;background:#cb6544}.game-screen,.game-host{width:100%;height:100dvh;position:fixed;inset:0}.game-screen{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#f8f1df}.game-host{inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);touch-action:none;-webkit-user-select:none;user-select:none;width:auto;height:auto}.game-host canvas{display:block}.game-screen[data-preferred-orientation=any] .game-host canvas{width:100%!important;height:100%!important;margin:0!important}.game-loading{color:#527267;margin:0;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.orientation-hint{z-index:10;color:#527267;text-align:center;pointer-events:none;background:#fffdf6eb;border:1px solid #173f3524;border-radius:999px;max-width:180px;padding:10px 15px;font-size:.9rem;font-weight:800;line-height:1.35;display:none;position:fixed;box-shadow:0 8px 24px #3848311a}@media (orientation:portrait){.game-screen[data-preferred-orientation=landscape] .orientation-hint{top:calc(116px + env(safe-area-inset-top));display:block;left:50%;transform:translate(-50%)}}@media (orientation:landscape){.game-screen[data-preferred-orientation=portrait] .orientation-hint{top:50%;right:max(24px, env(safe-area-inset-right));display:block;transform:translateY(-50%)}}@media (width<=560px){.game-grid{grid-template-columns:1fr}.game-card{min-height:160px}}@media (orientation:landscape) and (height<=620px){.app-shell{padding-top:calc(22px + env(safe-area-inset-top))}.hero{margin-bottom:20px}.hero h1{font-size:2.7rem}.game-card{min-height:150px}}@media (orientation:landscape) and (width>=700px){.app-shell{padding-top:calc(28px + env(safe-area-inset-top))}.hero{margin-bottom:24px}.hero h1{font-size:3.25rem}.game-card{min-height:174px}}
