:root{--ink:#483320;--muted:#806c55;--purple:#61843d;--paper:#faf6ee;--line:#d7b58b}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:DM Sans Variable,sans-serif;background:#334b2e;min-height:100vh}.ambient{position:fixed;top:-25px;right:-25px;bottom:-25px;left:-25px;z-index:-2;background:linear-gradient(90deg,#172817d9,#233a2080,#172817d9),url(/assets/garden.png) center 35%/cover;filter:blur(12px);pointer-events:none}button,input,select{font:inherit}button,a,label.file-button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffd466;outline-offset:4px}header{max-width:1440px;margin:auto;min-height:88px;display:flex;align-items:center;justify-content:space-between;padding:18px 44px;border-bottom:1px solid #ffffff20}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand-mark{display:grid;place-items:center;width:45px;height:45px;background:linear-gradient(#ffd785,#e39537);border:2px solid #ffe9b2;border-radius:15px;box-shadow:inset 0 -4px #ad601c,0 4px 10px #13221260;transform:rotate(-8deg);font-size:30px!important;color:#80541d!important}.brand span{font-family:Outfit Variable,sans-serif;font-size:23px;font-weight:800;color:#fff6df;text-shadow:0 2px 3px #18230a}.brand small{display:block;font-size:9px;letter-spacing:2.2px;margin-top:4px;color:#d8dfb5;text-shadow:none}nav{display:flex;background:#182e2480;padding:5px;border:1px solid #ffffff22;border-radius:15px;gap:3px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}nav button{border:0;background:transparent;padding:11px 20px;color:#e6e7c9;border-radius:10px;font-size:12px;font-weight:700}nav button.active{background:linear-gradient(#fff7dc,#efddb1);color:#6b512a;box-shadow:inset 0 -2px #c5a578,0 3px 8px #10251433}.badge{font-size:9px;font-weight:700;letter-spacing:1.5px;padding:8px 11px;border:1px solid #ffffff40;border-radius:20px;color:#ecefcf}main{max-width:1320px;margin:30px auto;display:grid;grid-template-columns:1fr 460px .82fr;gap:36px;padding:0 30px;align-items:start}.intro{padding-top:32px}.eyebrow{font-size:9px;font-weight:800;letter-spacing:1.8px;color:#738845}.intro>.eyebrow,.journey>.eyebrow{color:#e7cb89}h1{font-family:Outfit Variable,sans-serif;font-weight:800;font-size:43px;line-height:1.1;letter-spacing:-1.4px;margin:16px 0;color:#fff5dd;text-shadow:0 3px 6px #15250c88}h1 em{font-style:normal;color:#f5d68e}p{color:var(--muted);font-size:13px;line-height:1.75}.intro>p{color:#e4e6cc;font-size:12px;margin:20px 0}.mascot-art{position:relative;height:225px;display:flex;align-items:center;justify-content:center;margin:12px 0 25px}.mascot-art:before{content:"";position:absolute;bottom:10px;width:190px;height:35px;border-radius:50%;background:#0c190680;filter:blur(12px)}.mascot-art img{height:100%;width:80%;object-fit:contain;filter:drop-shadow(0 10px 15px #10260b70);animation:idle 4s ease-in-out infinite}.mascot-name{position:absolute;bottom:-10px;right:0;background:#fff2d2;box-shadow:0 5px 10px #17210c50;border-radius:15px 15px 15px 3px;transform:rotate(-5deg);padding:11px 15px;font-size:12px;font-weight:800;color:#9b672c}h2,h3{font-family:Outfit Variable,sans-serif}h2{font-size:21px;margin:4px 0 0;font-weight:700}h3{font-size:20px}.level-picker{margin:23px 0}.level-picker label{display:block;font-size:10px;font-weight:700;margin-bottom:9px;color:#e9e8cb}.level-picker select{width:100%;box-shadow:0 4px 10px #17251230}select,input{border:1px solid #cbb58f;background:#fff7e6;border-radius:12px;padding:12px;color:var(--ink);min-width:0}.how{display:grid;grid-template-columns:25px 1fr;gap:12px 9px;margin:24px 0;padding:19px;background:#16291970;border:1px solid #d3dcb133;border-radius:17px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.how span{color:#e4c476;font-size:10px;font-weight:800;padding-top:3px}.how p{margin:0;font-size:11px;color:#e4e6cc}.local-note{font-size:10px;color:#c2c9a3;line-height:1.7}.game-card{position:relative;background:url(/assets/garden.png) center/100% 100%;border:3px solid #c09c5c;border-radius:32px;padding:25px 27px 22px;box-shadow:0 0 0 5px #e8c98c44,0 25px 65px #07180880;overflow:hidden}.game-top{display:flex;justify-content:space-between;align-items:center;border-radius:16px;padding:12px 14px;background:#fff6ddd9;border:1px solid #fff4d8;box-shadow:0 6px 15px #65512725;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hearts{font-size:16px;letter-spacing:2px;color:#e66c68;text-shadow:0 2px 1px #86262030}.scene{position:relative;height:255px;margin-top:9px;overflow:visible}.scene svg{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 5px 3px #533b3040)}.cat{position:absolute;bottom:20px;left:39%;width:73px;text-align:center;transition:transform .3s}.cat:before{content:"";position:absolute;bottom:8px;left:5%;width:90%;height:12px;background:#4a2f3170;filter:blur(4px);border-radius:50%}.cat img{width:100%;height:84px;object-fit:contain;position:relative;filter:drop-shadow(0 3px 2px #70321d44);animation:idle 3s ease-in-out infinite}.cat span{position:relative;display:inline-block;font-size:7px;letter-spacing:1.4px;background:#fff5d3dd;border-radius:8px;padding:3px 7px;color:#775525;font-weight:800}.scene-label{position:absolute;bottom:3px;width:100%;text-align:center;font-size:7px;letter-spacing:1.4px;color:#7f5b34;font-weight:800}.progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 13px;font-size:9px;color:#694925;font-weight:700;background:#fff4d5d9;padding:10px 12px;border-radius:10px}.progress>div{height:8px;background:#98744040;width:42%;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 3px #46390c25}.progress i{display:block;background:linear-gradient(#a7cb67,#638735);height:100%;border-radius:10px;box-shadow:inset 0 1px #dff3a8;transition:width .3s}.board{display:grid;gap:9px;grid-template-columns:repeat(var(--size,5),1fr);padding:14px;background:linear-gradient(135deg,#d6a466d9,#f9d396c9,#c88e51dd);border:2px solid #a06f37;border-top-color:#f8dcb0;border-left-color:#eccb91;border-radius:20px;aspect-ratio:1;box-shadow:0 8px 12px #55391238,inset 0 2px 10px #5b330f35}.tile{--tile-color:#65b9c3;position:relative;border:1px solid color-mix(in srgb,var(--tile-color),white 22%);border-radius:15%;font-size:28px;font-weight:800;color:#fffbe5;text-shadow:0 2px 2px #49314850;background:radial-gradient(ellipse at 30% 0%,#ffffff85,transparent 60%),linear-gradient(170deg,color-mix(in srgb,var(--tile-color),white 8%),var(--tile-color) 65%,color-mix(in srgb,var(--tile-color),black 10%));box-shadow:inset 0 -6px #0002,inset 2px 2px 1px #fff7,inset -2px -2px 1px #00000013,0 4px 2px #5c391e50,0 7px 8px #74461c25;display:flex;align-items:center;justify-content:center;min-width:0;padding:0;transition:transform .14s,opacity .2s;touch-action:manipulation}.tile:before{content:"";position:absolute;inset:4px 7px auto;height:24%;border-radius:40%;background:linear-gradient(#fff4,#fff0);pointer-events:none}.tile:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #ffffff25;border-radius:15%;pointer-events:none}.tile svg{width:52%;height:52%;filter:drop-shadow(0 2px 1px #66352460);pointer-events:none;transform:rotate(var(--arrow-turn));position:relative}.tile:hover{transform:translateY(-3px);filter:brightness(1.07)}.tile:active{transform:translateY(2px);box-shadow:inset 0 -2px #0002,0 1px 2px #63371b44}.tile.empty{visibility:hidden;pointer-events:none}.tile.hinted{outline:3px solid #fff5ab;outline-offset:3px;animation:pulse .7s infinite alternate}.tile.blocked{animation:shake .3s}.tile.leaving{pointer-events:none;animation:leave .24s ease-in both}.status{min-height:32px;text-align:center;font-size:11px;line-height:1.5;margin:12px 0;color:#6d4d2e;background:#fff4d6db;padding:8px;border-radius:10px}.game-actions{display:flex;gap:9px}.primary,.secondary,.file-button{padding:13px 12px;border-radius:12px;border:1px solid #c0a171;font-size:11px;font-weight:800;text-align:center;box-shadow:inset 0 1px #fff8,0 3px #85643850;transition:transform .15s}.primary{background:linear-gradient(#9fbd57,#698c35);color:#fff8da;border-color:#547827;text-shadow:0 1px #34541466;box-shadow:inset 0 1px #c8e484,0 4px #466525,0 5px 8px #3c521c30}.secondary,.file-button{background:linear-gradient(#fff6dd,#ead4a7);color:#7d552e}.primary:hover,.secondary:hover{transform:translateY(-2px)}.game-actions button{flex:1}.ad-note{text-align:center;color:#7b6245;font-size:8px;line-height:1.6;margin:11px 0 0;text-shadow:0 1px #ffe7b8}.journey{padding-top:35px;color:#fff4d8}.journey>h3{font-size:21px;margin:14px 0 22px}.journey-item{position:relative;display:flex;align-items:center;gap:12px;margin:13px 0;padding:13px 12px;background:linear-gradient(120deg,#fff1c6f0,#efdbade8);border-radius:16px;border:1px solid #ffe8b6;box-shadow:0 4px #17271650,0 5px 15px #15251230;color:#6e5029}.journey-item b{display:grid;place-items:center;background:linear-gradient(#d0ba89,#a48a5a);border:2px solid #e7d9b4;border-radius:50%;width:38px;height:38px;flex-shrink:0;font-size:13px;color:#fff8dd;box-shadow:inset 0 -3px #6f573844;text-shadow:0 1px #715e30}.journey-item.current{outline:2px solid #e7d68d;outline-offset:3px;transform:translate(-5px)}.journey-item.current b{background:linear-gradient(#b9d479,#7a9b45);border-color:#e7edb8;color:#fff}.journey-item.complete b{background:linear-gradient(#aed077,#6b973f);color:#fff}.journey-item span{font-size:11px;font-weight:800}.journey-item small{display:block;font-size:9px;color:#9a805e;margin-top:4px}.tip{position:relative;border:1px solid #cdd5ac33;border-radius:18px;margin-top:36px;padding:23px;background:#152b1970;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tip>span{color:#e5d28d;font-size:25px}.tip h3{font-size:16px;margin:10px 0;color:#f8ebc7}.tip p{font-size:11px;color:#d9dfb9}.tip-dragon{position:absolute;right:4px;top:-24px;width:86px;filter:drop-shadow(0 5px 4px #16241580);transform:rotate(9deg)}footer{max-width:1320px;margin:30px auto 0;padding:22px 30px;border-top:1px solid #ffffff20;font-size:9px;color:#cbd4b8;display:flex;justify-content:space-between}#studio-view{grid-template-columns:1fr 500px;max-width:1080px;gap:65px}.studio-intro{padding-top:25px}.studio-intro>p{color:#e2e4cc}.editor-card{background:linear-gradient(145deg,#fff6e4,#f0dfbc);border:2px solid #d6b782;border-radius:26px;padding:26px;box-shadow:0 20px 60px #17270b50}.editor-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.editor-heading .badge{color:#977547;border-color:#ccae79}.editor-card label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;margin:15px 0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.editor-help{font-size:12px}.library{margin-top:40px;border-top:1px solid #dde4bb33;padding-top:15px;color:#f3ebcf}.library-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #dde4bb33;font-size:12px;gap:10px}.library-item button{font-size:10px;padding:8px}.library p{color:#d1d9b9}.library>.secondary,.file-button{display:block;margin-top:15px;width:100%;cursor:pointer}.file-button input{display:none}dialog{border:3px solid #e4c58b;padding:28px;border-radius:26px;max-width:370px;width:90%;background:linear-gradient(#fff6dc,#ecdbb6);box-shadow:0 20px 80px #10240780;color:var(--ink);text-align:center}dialog::backdrop{background:#1b301b99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}dialog .result-character{width:150px;height:160px;object-fit:contain;filter:drop-shadow(0 8px 6px #86674530);animation:idle 3s ease-in-out infinite}dialog .big{font-size:54px}dialog h2{font-size:26px}dialog button{margin:5px;min-width:110px}.demo-screen{background:#dce6b9;border:1px solid #c5d28d;border-radius:18px;padding:25px 15px;margin:20px 0;color:#678438}.particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.spark{position:absolute;left:var(--x);top:var(--y);width:8px;height:8px;border-radius:2px;background:var(--spark-color);animation:confetti 1.4s ease-out forwards}.rescued img{animation:rescue .6s ease-in-out 2}.dragon-head{transform-box:fill-box;transform-origin:center;animation:dragon-idle 3s ease-in-out infinite}@keyframes dragon-idle{50%{transform:rotate(-4deg)}}@keyframes shake{25%{transform:translate(-5px) rotate(-3deg)}75%{transform:translate(5px) rotate(3deg)}}@keyframes pulse{to{filter:brightness(1.25);transform:scale(.93)}}@keyframes idle{50%{transform:translateY(-5px) rotate(1deg)}}@keyframes rescue{50%{transform:translateY(-12px) rotate(-6deg)}}@keyframes leave{to{transform:translate(var(--exit-x),var(--exit-y)) scale(.8);opacity:0}}@keyframes confetti{to{transform:translate(var(--dx),var(--dy)) rotate(240deg);opacity:0}}@media(max-width:1150px){main{grid-template-columns:1fr 440px;gap:36px;max-width:920px}.journey{display:none}#studio-view{gap:35px;grid-template-columns:1fr 440px}h1{font-size:40px}.mascot-art{height:235px}.game-card{padding:22px 25px}}@media(max-width:740px){header{padding:12px 15px;min-height:69px;gap:9px;flex-wrap:wrap}.brand{gap:8px}.brand-mark{width:33px;height:33px;border-radius:11px;font-size:22px!important}.brand span{font-size:17px}.brand small{font-size:6px;letter-spacing:1.4px}header>.badge{display:none}nav{padding:3px}nav button{padding:9px 10px;font-size:9px}main,#studio-view{display:flex;flex-direction:column;margin:13px auto;padding:0 12px;gap:12px}.intro{padding:0;width:100%}.intro h1,.intro>p,.mascot-art,.how,.intro>.local-note,.intro>.eyebrow{display:none}.level-picker{margin:0}.level-picker label{display:none}.level-picker select{padding:10px 12px;font-size:12px;background:#f9edce;border-radius:12px}.game-card,.editor-card{width:100%;max-width:460px;align-self:center;padding:17px 22px 16px;border-radius:25px}.game-top{padding:9px 11px}h2{font-size:19px}.hearts{font-size:12px;letter-spacing:1px}.scene{height:198px;margin-top:4px}.cat{width:65px;bottom:13px;left:39%}.cat img{height:72px}.scene-label{bottom:0;font-size:6px;letter-spacing:1.2px}.progress{margin:7px 0 10px;padding:8px 10px;font-size:8px}.board{gap:7px;padding:10px;border-radius:17px}.status{font-size:10px;margin:9px 0;min-height:28px;padding:6px}.game-actions button{padding:11px 8px;font-size:10px}.ad-note{font-size:7px;margin-top:8px}.studio-intro{padding:8px 4px;width:100%}.studio-intro h1{font-size:31px}.library{margin-top:20px}footer{padding:17px;gap:12px;font-size:8px;margin-top:20px}.editor-card{padding:19px}.editor-card .board{padding:12px}.editor-help{font-size:11px}.editor-card .game-actions button{padding:13px 9px}.tile{font-size:24px}}@media(max-width:370px){header{padding:10px}.brand small{display:none}.brand span{font-size:15px}nav button{padding:8px 7px;font-size:8px}.scene{height:175px}.game-card{padding:15px 17px}.board{gap:5px}.cat{width:57px;bottom:12px}.cat img{height:63px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:740px)and (max-height:900px){.scene{height:145px}.game-card{padding-top:12px;padding-bottom:12px}.status{margin:7px 0;padding:5px;min-height:25px}.game-top{padding:8px 10px}.cat{width:53px;bottom:10px}.cat img{height:57px}.scene-label{font-size:5px;letter-spacing:1px}.progress{margin:6px 0 8px}.game-actions button{padding:10px 8px}}.board.photo-board{background-size:cover;background-position:center;isolation:isolate}.photo-board .tile.empty{opacity:0;background:transparent;box-shadow:none}.game-actions{flex-wrap:wrap}.game-actions button{min-height:44px}.intro #sync-levels{margin-top:12px}.studio-intro a{color:#ffe3a1}body{padding-bottom:env(safe-area-inset-bottom)}header{padding-top:max(18px,env(safe-area-inset-top))}@media(max-width:740px){.intro>.local-note{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.intro>.local-note br{display:none}.intro #sync-levels{margin:0;padding:8px;font-size:10px;min-height:44px}.intro #catalog-status{font-size:10px;max-width:58%}.ad-note{font-size:10px;background:#fff7dfdd;border-radius:8px;padding:5px;color:#59472d}}.game-card{background:linear-gradient(145deg,#fff8df,#f4e7bf 65%,#e8d9ac);border:1px solid #fff3c6;box-shadow:0 22px 55px #071b1559,inset 0 1px #fffdf0}.board-stage{position:relative;isolation:isolate;width:100%}.world-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none;z-index:2}.has-3d-board .tile,.has-3d-board .tile:hover,.has-3d-board .tile:active{background:transparent!important;box-shadow:none!important;border-color:transparent!important;transform:none;animation:none;color:transparent}.has-3d-board .tile svg,.has-3d-board .tile:before,.has-3d-board .tile:after{visibility:hidden}.has-3d-board .tile:focus-visible{outline:3px solid #fff4ba;outline-offset:-2px;z-index:3}.has-3d-board .board{background:linear-gradient(135deg,#d8c595,#efdfb4);border-color:#c3a779;box-shadow:inset 0 3px 10px #7b613844,0 2px 1px #fff8df;padding:12px}.has-3d-board .board.photo-board{background-size:cover;background-position:center}.scene.has-diorama{position:relative;isolation:isolate;height:250px;overflow:hidden;border-radius:22px;background:radial-gradient(ellipse at 50% 90%,#d6dcac 5%,#eef0d3 55%,#f9f5df);margin:14px 0 4px}.has-diorama #snake,.has-diorama .cat{visibility:hidden}.has-diorama .scene-label{z-index:3;color:#677447;bottom:9px;text-shadow:none;font-size:7px;letter-spacing:1.4px}.game-top{background:transparent;box-shadow:none;border:0;padding:7px 2px}.game-card .progress{background:#fffae6;border:1px solid #ddcc9f}.game-card .status{background:transparent}.game-card .ad-note{color:#766748;background:transparent}.game-card .game-actions{gap:9px}.game-card .hearts{color:#d8787b;text-shadow:0 1px 0 white}.game-card .game-actions .primary{background:linear-gradient(#98b95c,#719741);box-shadow:inset 0 1px #c6da8b,0 4px #526d31,0 6px 12px #657d3b26}.game-card .game-actions .primary:active{transform:translateY(2px);box-shadow:inset 0 1px #c6da8b,0 2px #526d31}.progress i{transition:width .45s cubic-bezier(.16,1,.3,1)}dialog[open]{animation:result-in .24s ease-out}@keyframes result-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@media(max-width:740px){.scene.has-diorama{height:202px;margin-top:5px}.game-card{padding:16px}.has-3d-board .board{padding:10px}.has-diorama .scene-label{font-size:6px;letter-spacing:1px}.game-card .ad-note{font-size:9px}.game-card h2{font-size:18px}}@media(prefers-reduced-motion:reduce){dialog[open]{animation:none}.progress i{transition:none}}.admin-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1fr);gap:48px;max-width:1120px;margin:36px auto;padding:24px}.admin-layout h1{font-size:48px}.admin-layout form{display:grid;gap:18px}.admin-layout input,.admin-layout select{width:100%;box-sizing:border-box}.admin-layout #message{min-height:40px;padding:12px;background:#fff8e6;border-radius:12px}.admin-layout #catalog{display:grid;gap:10px}.admin-layout #catalog button{text-align:left;padding:18px;border:1px solid #d8d7c8;border-radius:12px;background:#fffaf0}.admin-layout #photo-preview{width:150px;border-radius:16px;margin:12px 0}.admin-layout #draft{margin-top:32px}.admin-layout #delete{margin-top:24px}.admin-layout .board button{min-width:0;font-size:24px}.admin-layout .editor-card{align-self:start}[hidden]{display:none!important}@media(max-width:720px){.admin-layout{grid-template-columns:1fr;padding:18px;gap:24px}.admin-layout h1{font-size:36px}}.admin-layout>section:first-child>p,.admin-layout>section:first-child>form label{color:#fff2d2}.admin-layout #message{color:#483320}.admin-layout>section:first-child .eyebrow{color:#e7cb89}header>.brand{color:#fff2d2}#admin-board{display:block;width:100%;height:auto;border:8px solid #f7e6c1;border-radius:12px;background:#e5d6b8;cursor:crosshair}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
