:root { color-scheme: light; --paper:#f5ecdc; --paper2:#eadbc3; --ink:#253631; --muted:#758078; --line:rgba(48,68,60,.13); --teal:#28786b; --aqua:#4fbeb1; --coral:#ee7868; --gold:#e3b53f; --violet:#9273bd; font-family:Inter,ui-rounded,"Segoe UI",system-ui,sans-serif; }
*{box-sizing:border-box} body{margin:0;min-height:100vh;min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 50% 0,rgba(255,255,255,.9),transparent 28rem),linear-gradient(150deg,var(--paper),var(--paper2))}button{font:inherit;color:inherit}.shell{width:min(100%,480px);min-height:100vh;min-height:100dvh;margin:auto;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column}
header{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:10px}.round{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;color:var(--ink);background:rgba(255,255,255,.47);box-shadow:0 8px 24px rgba(72,56,34,.09);font-size:1.4rem;text-decoration:none;cursor:pointer}.brand{text-align:center}.brand small,.level-line small,.kicker{color:var(--teal);font-size:.58rem;font-weight:900;letter-spacing:.16em}.brand h1{margin:3px 0 0;font-family:Georgia,serif;font-size:1.15rem;letter-spacing:.12em}
.level-line{margin:19px 3px 9px;display:flex;align-items:end;justify-content:space-between;gap:14px}.level-line h2{margin:3px 0 0;font-family:Georgia,serif;font-size:1.65rem;font-weight:500}.turns{text-align:right}.turns small{display:block;color:var(--muted)}.turns strong{font-size:1.1rem}.tray-card{padding:12px 14px;border:1px solid rgba(255,255,255,.75);border-radius:18px;background:rgba(255,255,255,.44);box-shadow:0 12px 30px rgba(74,58,35,.07)}.tray-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.1em}.tray{min-height:38px;margin-top:8px;display:flex;align-items:center;gap:7px}.tray-slot{width:31px;height:31px;display:grid;place-items:center;border:1px dashed rgba(48,68,60,.18);border-radius:10px;background:rgba(255,255,255,.32)}.tray-token{width:22px;height:22px;border-radius:7px;transform:rotate(45deg);box-shadow:inset 2px 2px rgba(255,255,255,.3),0 3px 8px rgba(54,48,35,.16)}.aqua{--tile:var(--aqua)}.coral{--tile:var(--coral)}.gold{--tile:var(--gold)}.violet{--tile:var(--violet)}.tray-token,.tile{background:var(--tile)}
.instruction{min-height:40px;margin:9px 12px 4px;color:#637169;text-align:center;font-size:.76rem;line-height:1.35}.stage{display:grid;grid-template:". top ." 58px "left board right" 1fr ". bottom ." 58px/58px 1fr 58px;align-items:center;gap:6px;margin:auto 0}.edge{width:100%;height:100%;display:grid;place-items:center;align-content:center;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.4);cursor:pointer;box-shadow:0 7px 18px rgba(65,54,39,.06)}.edge span{font-size:1.15rem}.edge small{color:var(--muted);font-size:.49rem;font-weight:850;letter-spacing:.08em}.edge i{height:6px;margin-top:3px;display:flex;gap:2px}.edge i b{width:5px;height:5px;border-radius:50%;background:var(--tile)}.edge.hint{border-color:var(--teal);background:rgba(40,120,107,.12);box-shadow:0 0 0 3px rgba(40,120,107,.1);animation:pulse 1s infinite}.edge-top{grid-area:top}.edge-left{grid-area:left}.edge-right{grid-area:right}.edge-bottom{grid-area:bottom}.board-wrap{grid-area:board;padding:8px;border:1px solid rgba(255,255,255,.75);border-radius:25px;background:rgba(255,255,255,.36);box-shadow:inset 0 1px rgba(255,255,255,.8),0 18px 45px rgba(72,55,32,.1)}.board{--cols:4;display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:7px;transition:.25s ease}.cell{aspect-ratio:1;display:grid;place-items:center;border-radius:15px;background:rgba(255,255,255,.38);box-shadow:inset 0 0 0 1px rgba(70,76,61,.04)}.tile{width:62%;aspect-ratio:1;border-radius:24%;transform:rotate(45deg);box-shadow:inset 3px 3px rgba(255,255,255,.34),inset -3px -3px rgba(79,53,33,.09),0 7px 13px rgba(68,51,32,.16)}.tile::after{content:"";display:block;width:32%;height:32%;margin:34%;border:2px solid rgba(255,255,255,.82);border-radius:50%}
.tutorial-card{margin:0 4px 7px;padding:11px 13px;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;border:1px solid rgba(40,120,107,.22);border-radius:15px;background:rgba(255,255,255,.58);box-shadow:0 8px 22px rgba(40,120,107,.08)}.tutorial-card[hidden]{display:none}.tutorial-number{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--teal);font-weight:900}.tutorial-card strong{font-size:.78rem}.tutorial-card p{margin:3px 0 0;color:var(--muted);font-size:.68rem;line-height:1.35}.edge.tutorial-target{border-color:var(--teal);background:rgba(40,120,107,.15);box-shadow:0 0 0 4px rgba(40,120,107,.12);animation:tutorialPulse .9s infinite}.edge:disabled:not(.tutorial-target){cursor:default}.flying-token{position:fixed;z-index:30;width:22px;height:22px;border-radius:7px;background:var(--tile);pointer-events:none;box-shadow:inset 2px 2px rgba(255,255,255,.35),0 5px 12px rgba(54,48,35,.22)}
nav{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;margin-top:9px}nav button{min-height:50px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.45);cursor:pointer;font-size:1rem}nav button small{display:block;color:var(--muted);font-size:.58rem;font-weight:800}nav button.primary{color:#fff;border-color:var(--teal);background:var(--teal);box-shadow:0 9px 22px rgba(40,120,107,.18)}nav button.primary small{color:#fff}nav button:disabled{opacity:.38}
dialog{color:var(--ink);border:1px solid rgba(255,255,255,.8);background:linear-gradient(155deg,#faf5ec,#eee2ce);box-shadow:0 30px 90px rgba(49,40,26,.3)}dialog::backdrop{background:rgba(38,45,40,.42);backdrop-filter:blur(6px)}.info-dialog{width:min(calc(100% - 34px),390px);padding:27px 24px 23px;border-radius:27px;text-align:center}.info-dialog h2,.level-dialog h2{margin:5px 0 11px;font-family:Georgia,serif;font-size:1.7rem;font-weight:500}.info-dialog>p:not(.kicker){color:var(--muted);font-size:.84rem;line-height:1.48}.info-dialog ul{padding:0;display:grid;gap:7px;list-style:none;text-align:left}.info-dialog li{padding:9px 11px;border-radius:11px;background:rgba(255,255,255,.45);font-size:.74rem}.mini-board{width:86px;height:86px;margin:0 auto 16px;padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:6px;border-radius:20px;background:rgba(40,120,107,.12)}.mini-board i{border-radius:8px;background:var(--aqua)}.mini-board i:nth-child(2){background:var(--coral)}.mini-board i:nth-child(3){background:var(--gold)}.mini-board i:nth-child(4){background:var(--violet)}.wide{width:100%;min-height:49px;border:0;border-radius:14px;color:#fff;background:var(--teal);font-weight:850;cursor:pointer;box-shadow:0 10px 24px rgba(40,120,107,.18)}.quiet{margin-top:11px;border:0;color:var(--teal);background:transparent;font-weight:750;cursor:pointer}.success,.fail{width:64px;height:64px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--teal);font-size:1.6rem;font-weight:800}.fail{background:var(--coral)}.stars{margin:15px 0 18px;color:var(--gold);font-size:1.5rem;letter-spacing:.15em}
.level-dialog{width:min(calc(100% - 28px),420px);max-height:min(86vh,720px);max-height:min(86dvh,720px);padding:20px;border-radius:25px;overflow-y:auto}.dialog-head{position:sticky;top:-20px;z-index:2;padding:20px 0 8px;background:linear-gradient(#faf5ec 78%,transparent);display:flex;justify-content:space-between;align-items:center}.dialog-head button{width:42px;height:42px;border:0;border-radius:14px;background:rgba(255,255,255,.7);font-size:1.3rem}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:7px}.level-tile{aspect-ratio:1;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.5);font-weight:800}.level-tile.current{color:#fff;border-color:var(--teal);background:var(--teal)}.level-tile.locked{opacity:.36}.level-tile small{display:block;font-size:.48rem}.toast{position:fixed;left:50%;bottom:82px;z-index:10;padding:10px 15px;border-radius:12px;color:#fff;background:rgba(38,75,66,.95);opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:.2s;font-size:.76rem;box-shadow:0 12px 35px rgba(36,43,35,.22)}.toast.visible{opacity:1;transform:translate(-50%,0)}
.tutorial-replay{display:block;margin:12px auto;min-height:32px}.level-pages{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin:12px 0;text-align:center;font-size:.78rem;font-weight:800}.level-pages button{height:44px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.6);font-size:1.4rem;cursor:pointer}.level-pages button:disabled{opacity:.3;cursor:default}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(40,120,107,.12)}}@keyframes tutorialPulse{50%{transform:translateY(-3px);box-shadow:0 0 0 7px rgba(40,120,107,.08)}}@media(max-height:780px){.level-line{margin-top:10px}.instruction{display:none}.stage{grid-template-rows:48px 1fr 48px}.rule-bar{display:none}.tutorial-card{padding:8px 10px}.tutorial-card p{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Quiet, code-native art: no final logo or external image dependency. */
:root{--paper:#f5f0e8;--paper2:#e9e1d5;--ink:#233e38;--muted:#64756e;--teal:#246b60;--aqua:#45b6ab;--coral:#ec8174;--gold:#d8ad43;--violet:#a48ac9}
[hidden]{display:none!important}body{background:radial-gradient(ellipse at 10% 10%,#fffaf3 0,transparent 50%),radial-gradient(ellipse at 95% 65%,#dce8df 0,transparent 50%),var(--paper);-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #bd8730;outline-offset:4px}button:disabled{cursor:default}.shell{max-width:490px;gap:3px}.brand h1{font-family:inherit;font-size:1rem;letter-spacing:.13em;font-weight:800}.brand small{font-size:.56rem}.round{background:#ffffffa6;border-color:#fff;box-shadow:0 5px 18px #24413909}.level-line h2{font-size:1.5rem;line-height:1.1}.level-line small{letter-spacing:.09em}.tray-card{background:#ffffffb5;border-radius:20px;box-shadow:0 7px 25px #3d4b3710}.tray{gap:7px;flex-wrap:wrap}.tray-slot{width:34px;height:34px;border-color:#697e7033;background:#edf1e899;box-shadow:inset 0 2px 3px #3e5a3a07;flex-shrink:0}.tray-slot.overflow{border-color:var(--coral);background:#ec81741a}.instruction{color:#576c62;font-size:.78rem}.board-wrap{background:#ffffff92;border-radius:23px;border-color:#fff;box-shadow:0 20px 40px #405d3915;padding:10px}.cell{border-radius:12px;background:#fff7;box-shadow:inset 0 0 0 1px #6078540a}.tile{width:59%;box-shadow:inset 3px 3px #ffffff70,inset -3px -3px #244a3620,0 5px 8px #35563a25;position:relative}.tile.aqua::after{border-radius:50%}.tile.coral::after{border-radius:2px}.tile.gold::after{border-radius:0;border-width:0 2px 2px 0;transform:rotate(-45deg);width:35%;height:35%;margin:28% 34%}.tile.violet::after{border-radius:0;border-width:2px 0 0 2px;transform:rotate(45deg);width:35%;height:35%}.edge{background:#ffffff8c;border-color:#dce3d8;box-shadow:0 4px 13px #385d3908;transition:background .18s,transform .18s}.edge:active:not(:disabled){transform:scale(.96)}.edge small{color:#4f695c;font-size:.53rem;letter-spacing:.03em}.edge i{gap:3px;max-width:100%;flex-wrap:wrap;justify-content:center;height:auto;min-height:6px}.edge i b{width:6px;height:6px}.edge:disabled:not(.tutorial-target){opacity:.5}nav{margin-top:13px}nav button{background:#ffffffa1;min-height:54px}nav button small{font-size:.64rem}dialog{background:linear-gradient(155deg,#fffaf3,#ece7dc)}.tutorial-card{background:#edf6ec;border-color:#4c8b7433}.tutorial-card p{color:#536b5d}.toast{max-width:calc(100vw - 30px);width:max-content;text-align:center}
.welcome{min-height:100vh;min-height:100dvh;display:flex;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 24px max(22px,env(safe-area-inset-bottom))}.welcome-inner{width:min(100%,410px);text-align:center;display:flex;flex-direction:column;align-items:center}.welcome-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}.studio-wordmark{font-size:.64rem;font-weight:850;letter-spacing:.14em}.preview-tag{font-size:.58rem;color:var(--muted);padding:6px 8px;border:1px solid #7b927521;border-radius:20px}.hero-art{width:270px;height:235px;position:relative;margin:30px auto 9px;flex-shrink:0}.hero-grid{position:absolute;width:154px;height:154px;left:58px;top:33px;padding:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;transform:rotate(-12deg);border:1px solid #fff;border-radius:30px;background:#ffffffb0;box-shadow:0 25px 50px #39583420,inset 0 1px #fff;animation:heroFloat 6s ease-in-out infinite}.hero-grid i{background:var(--tile);border-radius:8px;box-shadow:inset 2px 2px #fff8,inset -2px -2px #3f57361c,0 5px 10px #3f573623}.hero-grid i:nth-child(-n+3){animation:heroEdge 6s ease-in-out infinite}.hero-orbit{position:absolute;border:1px solid #769d6d20;border-radius:50%;width:240px;height:180px;left:15px;top:30px;transform:rotate(-23deg)}.orbit-two{width:185px;height:230px;top:0;left:45px;transform:rotate(45deg);border-style:dashed}.hero-chip{position:absolute;width:24px;height:24px;background:var(--tile);border-radius:7px;transform:rotate(27deg);box-shadow:inset 2px 2px #fff8,0 8px 16px #3f57361a}.hero-chip.coral{left:22px;top:150px}.hero-chip.aqua{right:8px;top:60px}.hero-chip.gold{right:39px;bottom:5px}.hero-spark{position:absolute;left:43px;top:3px;color:#c8a254;font-size:1.5rem}.welcome .kicker{font-size:.67rem;letter-spacing:.06em;text-transform:uppercase;margin:10px 0}.welcome h1{font-family:Georgia,'Times New Roman',serif;font-size:2.6rem;line-height:1.04;font-weight:500;letter-spacing:-.035em;margin:3px 0 17px;max-width:370px}.welcome-copy{margin:0;max-width:350px;font-size:.88rem;color:var(--muted);line-height:1.65}.welcome-features{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px 0 25px}.welcome-features span{font-size:.65rem;color:#4f6c5a;padding:8px 12px;border:1px solid #dae4d7;border-radius:30px;background:#ffffff78}.language-heading{width:100%;display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-bottom:10px}.language-picker{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.language-picker button{border:1px solid #dce3d8;background:#ffffffa3;border-radius:12px;min-height:44px;font-size:.72rem;padding:7px 3px;cursor:pointer}.language-picker button.selected{border-color:var(--teal);color:var(--teal);background:#dfede4;box-shadow:0 0 0 1px var(--teal);font-weight:800}.welcome-play{margin-top:21px;min-height:55px;font-size:.92rem;background:linear-gradient(135deg,#2b7b6c,#235a52);border:1px solid #ffffff38}.welcome>.quiet,.welcome-inner>.quiet{min-height:36px;font-size:.76rem}.save-note{color:#718477;font-size:.63rem;margin:12px 0 0}
/* Board directions are physical, never mirrored by RTL text layout. */
.stage,.board{direction:ltr}.edge small{direction:inherit}html[dir=rtl] .edge small{direction:rtl}html[dir=rtl] .turns{text-align:left}html[dir=rtl] .info-dialog ul{text-align:right}html[dir=rtl] .welcome h1{font-family:'Segoe UI',Tahoma,Arial,sans-serif;font-size:2.25rem;font-weight:600;line-height:1.3;letter-spacing:0}html[dir=rtl] .kicker,html[dir=rtl] .brand small,html[dir=rtl] .level-line small{letter-spacing:0}html[lang=ru] .welcome h1{font-size:2.1rem}html[lang=ru] .edge small{font-size:.48rem}
.numeric-isolate{direction:ltr;unicode-bidi:isolate;display:inline-block}#levelPageLabel{display:block}
.board .tile{width:var(--tile-size,32px);max-width:59%}
.stage{grid-template-columns:58px var(--board-width,minmax(0,1fr)) 58px;justify-content:center}
.board-wrap{min-width:0}
.studio-credit{display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:22px;width:100%;flex-shrink:0}
.studio-credit span{font-size:.62rem;color:var(--muted)}
.studio-credit img{width:210px;max-width:80%;height:auto;display:block;object-fit:contain}
.welcome .rimdrop-top{margin-top:16px}
.welcome .rimdrop-top .studio-wordmark{font-size:2.25rem;line-height:1.1}
.app-mark{display:block;position:relative;animation:rimdropFloat 6s ease-in-out infinite}
.app-mark .rimdrop-mark{animation:none}
.app-mark-badge{position:absolute;right:4%;bottom:4%;width:19%;height:auto;display:block;object-fit:contain}
@media(max-width:360px){.stage{grid-template-columns:50px var(--board-width,minmax(0,1fr)) 50px}}
.welcome-levels{width:100%;min-height:44px;margin-top:12px;border:1px solid var(--teal);border-radius:14px;background:#ffffff87;color:var(--teal);font-weight:750;cursor:pointer}.level-picker-button{align-content:center;gap:0;font-size:1.05rem}.level-picker-button small{display:block;font-size:.52rem;font-weight:750;line-height:1.15}
.rimdrop-top{justify-content:center}.rimdrop-top .studio-wordmark{font-size:1.65rem;letter-spacing:-.045em;font-weight:800;color:var(--teal)}.rimdrop-hero{display:grid;place-items:center}.rimdrop-mark{display:block;width:220px;height:220px;object-fit:contain;animation:rimdropFloat 6s ease-in-out infinite}.brand .rimdrop-brand{display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:-.03em;font-size:1.3rem}.rimdrop-brand img{object-fit:contain;flex-shrink:0}@keyframes rimdropFloat{50%{transform:translateY(-5px)}}
@keyframes heroFloat{50%{transform:rotate(-8deg) translateY(-8px)}}@keyframes heroEdge{0%,20%,100%{opacity:1;transform:translateY(0)}40%,65%{opacity:.35;transform:translateY(-6px)}}
@media(min-width:700px){.welcome-inner{justify-content:center}.welcome{padding-top:35px;padding-bottom:35px}.hero-art{margin-top:32px}}
@media(max-height:780px){.welcome .hero-art{height:190px;margin-top:20px;transform:scale(.85);transform-origin:top center;margin-bottom:-15px}.welcome h1{font-size:2.25rem}.welcome-features{margin:14px 0 18px}.tutorial-card p{display:block;font-size:.63rem}.instruction{display:block;min-height:32px;font-size:.7rem}.stage{margin:5px 0}.shell{justify-content:space-between}}
@media(max-width:360px){.welcome{padding-inline:18px}.welcome h1{font-size:2.1rem}.shell{padding-inline:10px}.stage{grid-template-columns:50px 1fr 50px;gap:4px}.board{gap:5px}.board-wrap{padding:7px}.language-picker{gap:5px}.tray-slot{width:30px;height:30px}.welcome-top{flex-direction:column;gap:6px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(max-width:360px){.stage{grid-template-columns:50px var(--board-width,minmax(0,1fr)) 50px}}
@media(max-height:900px){
  .welcome{padding-top:18px;padding-bottom:18px}
  .welcome .rimdrop-hero{width:200px;height:160px;margin:16px auto 8px;transform:none}
  .welcome .rimdrop-mark{width:140px;height:140px}
  .welcome h1{font-size:2.2rem;margin-bottom:10px}
  .welcome-copy{font-size:.8rem;line-height:1.45}
  .welcome-features{margin:12px 0 16px}
  .studio-credit{margin-top:14px}
}
