.tos-wrap{--tos-ink:#252525;--tos-muted:#58636d;--tos-ocean:#dff7ff;--tos-ocean-deep:#1596d1;--tos-sand:#fff3cf;--tos-coral:#f0445e;--tos-leaf:#35a852;--tos-violet:#8b5cf6;padding:24px 0 76px}.tos-layout,.tos-wrap>.container{position:relative;z-index:1}.tos-wrap .activity-hero{margin-bottom:30px}.tos-wrap .activity-hero__eyebrow{background:#ffffff;color:var(--tos-ocean-deep);box-shadow:0 10px 24px rgba(21,150,209,.12)}.tos-wrap .activity-hero__title{font-size:64px}.tos-wrap .activity-hero__card{border-color:rgba(21,150,209,.18);background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,243,207,.7)),#ffffff;box-shadow:0 24px 60px rgba(21,150,209,.12)}.tos-layout{display:grid;grid-template-columns:minmax(260px,336px) minmax(0,1fr);gap:24px;align-items:start;max-width:var(--max);margin:0 auto;padding:0 24px}.tos-wrap .game-panel.tos-panel{z-index:2}.tos-main{display:grid;gap:18px;min-width:0}.tos-plan-grid{display:grid;grid-template-columns:1fr;gap:9px}.tos-wrap .game-selector-btn{border-color:rgba(21,150,209,.13);background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(223,247,255,.38));box-shadow:0 8px 18px rgba(21,150,209,.08)}.tos-wrap .game-selector-btn:focus-visible,.tos-wrap .game-selector-btn:hover{border-color:rgba(21,150,209,.42);box-shadow:0 14px 28px rgba(21,150,209,.13);outline:none}.tos-wrap .game-selector-btn.active{border-color:var(--brand-orange);background:linear-gradient(135deg,#fff4d1,#ffffff 52%,#e9fbff);box-shadow:0 0 0 4px rgba(255,152,0,.13),0 14px 28px rgba(255,138,0,.1)}.tos-progress-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tos-progress-row strong{display:inline-flex;min-width:58px;justify-content:center;padding:6px 10px;border-radius:999px;background:#fff3df;color:var(--brand-orange-deep);font-size:14px;font-weight:900}.tos-task-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tos-task-btn{position:relative;display:grid;min-height:42px;place-items:center;overflow:hidden;border:2px solid rgba(21,150,209,.12);border-radius:14px;background:#ffffff;color:var(--tos-ink);font:inherit;font-size:14px;font-weight:900;cursor:pointer;box-shadow:inset 0 -3px 0 rgba(21,150,209,.06);transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.tos-task-btn:focus-visible,.tos-task-btn:hover{border-color:rgba(255,138,0,.45);transform:translateY(-2px);box-shadow:inset 0 -3px 0 rgba(255,138,0,.12),0 10px 20px rgba(255,138,0,.11);outline:none}.tos-task-btn--active{border-color:var(--brand-orange);background:linear-gradient(135deg,#ffcf64,#ff8a00);color:#3d2500;box-shadow:inset 0 -4px 0 rgba(162,74,0,.2),0 12px 22px rgba(255,138,0,.2)}.tos-stat-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;overflow:hidden;border:2px solid rgba(53,168,82,.18);border-radius:18px;background:linear-gradient(135deg,#ffffff,#f0ffe8 52%,#e9fbff);box-shadow:0 14px 28px rgba(53,168,82,.1)}.tos-stat-card:after{content:"";position:absolute;right:-18px;bottom:-22px;width:92px;height:70px;border-radius:24px;background:linear-gradient(135deg,rgba(53,168,82,.18),rgba(21,150,209,.1));transform:rotate(-14deg)}.tos-stat-card span,.tos-stat-card strong{position:relative;z-index:1}.tos-stat-card span{color:#3d6f45;font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tos-stat-card strong{color:var(--tos-leaf);font-size:34px;line-height:1;text-shadow:0 3px 0 rgba(255,255,255,.9)}.tos-wrap .game-panel__rules{border-color:rgba(21,150,209,.24);background:linear-gradient(135deg,rgba(233,251,255,.9),rgba(255,253,241,.92))}.tos-wrap .game-panel__rules ol{color:#37606f}.tos-wrap .btn-primary{color:#2f2200;background:linear-gradient(135deg,#ffd96a,#ff9800);box-shadow:0 12px 24px rgba(255,152,0,.22)}.tos-wrap .btn-primary:hover:not(:disabled){box-shadow:0 16px 30px rgba(255,152,0,.28)}.tos-wrap .game-status{position:relative;overflow:hidden;border-width:2px;font-size:16px;line-height:1.45}.tos-wrap .game-status--info{border-color:rgba(255,138,0,.26);background:linear-gradient(135deg,#fff7df,#ffffff);color:#9a4a00}.tos-wrap .game-status--win{border-color:rgba(53,168,82,.25);background:linear-gradient(135deg,#e5ffd9,#ffffff 70%,#e9fbff);color:#166534;animation:tosStatusPop .45s ease}.tos-play-card,.tos-tray{border:2px solid rgba(21,150,209,.12);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,253,246,.92));box-shadow:0 26px 60px rgba(31,91,121,.13)}.tos-play-card{position:relative;overflow:hidden;padding:clamp(14px,2vw,24px)}.tos-play-card:before{content:"";position:absolute;inset:16px 16px auto auto;width:126px;height:50px;border-radius:18px;background:repeating-linear-gradient(90deg,rgba(255,217,106,.5) 0 12px,transparent 12px 24px);opacity:.35;transform:rotate(8deg);pointer-events:none}.tos-card-head,.tos-tray-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.tos-card-head h2,.tos-tray-head h2{margin:0;color:var(--tos-ink);font-size:28px;font-weight:850;line-height:1.1}.tos-card-head>span,.tos-tray-head>span{flex:0 0 auto;max-width:100%;padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,rgba(21,150,209,.14),rgba(53,168,82,.12));color:#0c5c82;font-size:12px;font-weight:900;text-transform:uppercase;box-shadow:inset 0 -2px 0 rgba(21,150,209,.08)}.tos-card-head-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}.tos-board-reset-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid rgba(21,150,209,.18);border-radius:10px;background:rgba(255,255,255,.8);color:var(--tos-muted);font-size:20px;line-height:1;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .2s ease}.tos-board-reset-btn:focus-visible,.tos-board-reset-btn:hover{border-color:rgba(240,68,94,.36);color:var(--tos-coral);background:rgba(240,68,94,.07);outline:none;transform:rotate(-30deg)}.tos-board-reset-btn:active{transform:rotate(-60deg) scale(.92)}.tos-kicker{display:inline-flex;width:-moz-fit-content;width:fit-content;margin:0 0 7px;padding:5px 9px;border-radius:999px;background:#fff4d1;color:#a24a00;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.tos-board{--cell-size:minmax(0,1fr);position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--board-cols),var(--cell-size));grid-template-rows:repeat(var(--board-rows),var(--cell-size));gap:clamp(5px,.8vw,9px);width:min(100%,720px);aspect-ratio:var(--board-cols) /var(--board-rows);margin:0 auto;padding:clamp(12px,2vw,20px);border:3px solid rgba(21,150,209,.2);border-radius:24px;background:linear-gradient(90deg,rgba(255,255,255,.68) 1px,transparent 0),linear-gradient(rgba(255,255,255,.68) 1px,transparent 0),linear-gradient(180deg,#dff7ff,#f8fdff 48%,#fff7df);background-size:42px 42px,42px 42px,auto;box-shadow:inset 0 0 0 6px rgba(255,255,255,.74),inset 0 -20px 40px rgba(255,217,106,.14),0 22px 42px rgba(21,150,209,.16);touch-action:none;animation:tosBoardReady .35s ease}.tos-cell{position:relative;min-width:0;border:0;border-radius:clamp(8px,1vw,13px);font:inherit;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,opacity .14s ease,filter .14s ease;-webkit-tap-highlight-color:transparent}.tos-cell:focus-visible{outline:3px solid var(--brand-orange);outline-offset:2px}.tos-cell--void{background:linear-gradient(135deg,rgba(21,150,209,.09),rgba(255,255,255,.28));opacity:.48;cursor:default;box-shadow:inset 0 0 0 1px rgba(21,150,209,.06)}.tos-cell--target{background:linear-gradient(145deg,#ffffff,#fff8e8);box-shadow:inset 0 0 0 2px rgba(21,150,209,.17),inset 0 -5px 0 rgba(255,217,106,.16),0 7px 16px rgba(21,150,209,.1)}.tos-cell--target:before{content:"";position:absolute;inset:18%;border:2px dashed rgba(21,150,209,.14);border-radius:inherit}.tos-cell--target:not(.tos-cell--filled):hover{transform:translateY(-2px) scale(1.02);box-shadow:inset 0 0 0 2px rgba(255,138,0,.36),inset 0 -5px 0 rgba(255,217,106,.24),0 12px 20px rgba(255,138,0,.14)}.tos-cell--filled{background:linear-gradient(145deg,rgba(255,255,255,.34),transparent 48%),var(--piece-color);box-shadow:inset 0 -5px 0 rgba(0,0,0,.16),inset 0 2px 0 rgba(255,255,255,.34),0 12px 20px rgba(38,38,38,.16)}.tos-cell--filled:after{content:"";position:absolute;inset:16% 22% 48% 18%;border-radius:999px 999px 18px 18px;background:rgba(255,255,255,.24);transform:rotate(-10deg)}.tos-cell--filled:before{display:none}.tos-cell--selected{transform:translateY(-2px) scale(1.03);filter:saturate(1.1);box-shadow:inset 0 -5px 0 rgba(0,0,0,.16),0 0 0 4px rgba(37,37,37,.16),0 16px 24px rgba(38,38,38,.2);animation:tosSelectedPulse 1.35s ease-in-out infinite}.tos-cell--preview{opacity:.96}.tos-cell--preview-valid{background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,255,255,.1) 52%),color-mix(in srgb,var(--piece-color),white 38%);box-shadow:inset 0 -4px 0 color-mix(in srgb,var(--piece-color),transparent 48%),inset 0 0 0 2px color-mix(in srgb,var(--piece-color),transparent 22%),0 8px 16px color-mix(in srgb,var(--piece-color),transparent 68%)}.tos-cell--preview-invalid{background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,255,255,.2) 52%),color-mix(in srgb,var(--piece-color),white 58%);box-shadow:inset 0 0 0 4px rgba(240,68,94,.44),0 10px 18px rgba(240,68,94,.14);animation:tosInvalidHint .35s ease}.tos-tray{position:relative;padding:clamp(14px,2vw,20px)}.tos-piece-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px}.tos-piece-btn{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:7px 12px;min-height:96px;padding:13px;overflow:hidden;border:2px solid rgba(38,38,38,.08);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,250,252,.92));color:var(--tos-ink);text-align:left;font:inherit;cursor:grab;touch-action:none;box-shadow:0 12px 24px rgba(38,38,38,.07);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease,background .16s ease}.tos-piece-btn:after{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--piece-color);opacity:.72}.tos-piece-btn:focus-visible,.tos-piece-btn:hover{border-color:color-mix(in srgb,var(--piece-color),white 14%);box-shadow:0 16px 30px color-mix(in srgb,var(--piece-color),transparent 78%);outline:none;transform:translateY(-3px)}.tos-piece-btn:active{transform:translateY(-1px) scale(.99)}.tos-piece-btn--selected{border-color:var(--piece-color);background:linear-gradient(135deg,color-mix(in srgb,var(--piece-color),white 86%),#ffffff 62%);box-shadow:0 0 0 4px color-mix(in srgb,var(--piece-color),transparent 78%),0 18px 32px color-mix(in srgb,var(--piece-color),transparent 76%)}.tos-piece-btn--placed{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(229,255,217,.78))}.tos-piece-btn--placed small{animation:tosStatusPop .28s ease}.tos-piece-btn--dragging{cursor:grabbing;transform:scale(.98);opacity:.86}.tos-piece-btn span:not(.tos-piece-shape):not(.tos-piece-dot):not(.tos-piece-gap){min-width:0;font-size:14px;font-weight:900;line-height:1.2}.tos-piece-btn small{grid-column:2;width:-moz-fit-content;width:fit-content;max-width:100%;padding:4px 9px;border-radius:999px;background:#e5ffd9;color:#166534;font-size:11px;font-weight:900;text-transform:uppercase;box-shadow:inset 0 -2px 0 rgba(53,168,82,.1)}.tos-piece-shape{display:grid;grid-template-columns:repeat(var(--piece-cols),18px);grid-template-rows:repeat(var(--piece-rows),18px);gap:3px;grid-row:1/span 2;place-content:center;min-width:68px;min-height:60px;padding:8px;border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(223,247,255,.72));box-shadow:inset 0 0 0 1px rgba(21,150,209,.09),inset 0 -5px 0 rgba(21,150,209,.06)}.tos-piece-shape--compact{grid-template-columns:repeat(var(--piece-cols),12px);grid-template-rows:repeat(var(--piece-rows),12px);gap:2px;min-width:0;min-height:0;padding:4px}.tos-piece-dot{border-radius:5px;background:linear-gradient(145deg,rgba(255,255,255,.32),transparent 52%),var(--piece-color);box-shadow:inset 0 -2px 0 rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.34),0 2px 4px color-mix(in srgb,var(--piece-color),transparent 72%)}.tos-piece-gap{opacity:0}@keyframes tosBoardReady{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tosSelectedPulse{0%,to{box-shadow:inset 0 -5px 0 rgba(0,0,0,.16),0 0 0 4px rgba(37,37,37,.16),0 16px 24px rgba(38,38,38,.2)}50%{box-shadow:inset 0 -5px 0 rgba(0,0,0,.16),0 0 0 6px rgba(255,217,106,.32),0 18px 28px rgba(38,38,38,.22)}}@keyframes tosInvalidHint{0%,to{transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}}@keyframes tosStatusPop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width:980px){.tos-wrap{padding-bottom:40px}.tos-wrap .activity-hero{margin-bottom:16px}.tos-wrap .activity-hero__title{font-size:44px}.tos-wrap .activity-hero__card,.tos-wrap .activity-hero__text{display:none}.tos-board{width:min(100%,680px,max(200px,calc((100dvh - 550px) * var(--board-cols) / var(--board-rows))))}}@media (max-width:980px){.tos-layout{grid-template-columns:1fr}.tos-wrap .game-panel.tos-panel{position:relative}.tos-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.tos-wrap .activity-hero__title{font-size:42px;line-height:1}}@media (max-width:640px){.tos-wrap{padding-top:16px}.tos-layout{padding:0 12px}.tos-card-head,.tos-tray-head{flex-direction:column;gap:10px}.tos-card-head h2,.tos-tray-head h2{font-size:22px}.tos-board{gap:4px;padding:9px;border-radius:18px}.tos-cell{border-radius:8px}.tos-piece-list{grid-template-columns:1fr}.tos-piece-btn{min-height:88px}}@media (max-width:420px){.tos-plan-grid{grid-template-columns:1fr}.tos-task-grid{gap:6px}.tos-task-btn{min-height:38px;border-radius:12px}}@media (prefers-reduced-motion:reduce){.tos-board,.tos-cell--preview-invalid,.tos-cell--selected,.tos-piece-btn--placed small,.tos-wrap .game-status--win{animation:none}.tos-cell,.tos-piece-btn,.tos-task-btn,.tos-wrap .game-selector-btn{transition:none}}