:root{color-scheme:light;--paper:#f7f7f2;--ink:#193c33;--muted:#7a857e;--green:#245647;--line:#e4e8df;--orange:#ed835a;--yellow:#f4cc67;--white:#fff;--radius:22px;font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e8a644;outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}button{border:0}h1,h2,h3,p{margin:0}small{font-size:12px}button{transition:background .18s,transform .18s,box-shadow .18s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}
.sidebar{width:224px;position:fixed;inset:0 auto 0 0;padding:32px 22px 24px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:12}.brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;white-space:nowrap}.brand small{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-top:6px}.brand-mark{display:grid;place-items:center;position:relative;width:40px;height:43px;border-radius:13px;background:var(--green);color:white;font-size:29px;font-weight:900;transform:rotate(-6deg)}.brand-mark span{position:absolute;right:-5px;top:-8px;font-size:20px;color:#e6ac54}.nav-label{font-size:10px;color:#98a19a;letter-spacing:2px;margin:48px 14px 16px}.nav-item{display:flex;align-items:center;gap:13px;background:transparent;width:100%;text-align:left;padding:14px 15px;border-radius:11px;color:#737d77;font-size:13px;margin-bottom:7px;font-weight:600}.nav-item>span{font-size:20px;width:20px;line-height:1}.nav-item.active{background:#e8f0e7;color:var(--green)}.nav-item:hover{background:#f2f5ef}.nav-item i{font-size:8px;font-style:normal;background:#f5d695;color:#7c552a;padding:3px 4px;border-radius:4px;margin-left:auto}.sidebar-note{margin:auto 0 24px;padding:22px 15px;background:#f7f7ef;border:1px solid #edeee4;border-radius:15px}.sidebar-note>span{font-size:31px;color:#d59b48}.sidebar-note b{display:block;font-size:12px;margin:10px 0}.sidebar-note p{font-size:11px;color:var(--muted);line-height:1.9}.profile{display:flex;align-items:center;gap:10px;background:none;text-align:left;padding:16px 0 0;border-top:1px solid var(--line)}.avatar{border-radius:50%;width:35px;height:35px;display:grid;place-items:center;background:#eddcb6;font-size:14px;flex-shrink:0}.profile b{font-size:12px}.profile small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.profile>span:last-child{margin-left:auto}.workspace{margin-left:224px;padding:0 42px}.topbar{height:89px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{margin:0 15px;color:#c8ccc4}.breadcrumb b{color:var(--ink);font-weight:500}.top-actions{display:flex;align-items:center;gap:14px}.today{font-size:11px;color:var(--muted)}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:30px;padding:9px 13px;min-height:36px;font-size:12px}.icon-btn:hover{border-color:#95b09e}.icon-btn span{margin-left:6px}main{max-width:1420px;margin:auto;min-height:calc(100vh - 162px);padding:32px 0 24px}.greeting{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:23px}.greeting h1{font-size:27px;letter-spacing:-1px;font-weight:800}.greeting h1 span{font-size:24px;margin-left:8px;color:#d9ac47}.greeting p{color:var(--muted);font-size:12px;margin-top:9px}.live-badge{display:flex;align-items:center;gap:6px;color:#6b8372;font-size:10px}.live-badge:before{content:"";height:6px;width:6px;border-radius:50%;background:#7c9a67}.feature{height:330px;border-radius:24px;overflow:hidden;position:relative;background:#123f33;isolation:isolate;color:#fff9e5}.feature>img{position:absolute;right:0;top:0;width:72%;height:100%;object-fit:cover;object-position:center 60%;z-index:-2}.feature:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#153d30 0%,#153d30 23%,#153d30dd 37%,#153d3055 61%,#153d3000 87%)}.feature-copy{padding:35px 37px;max-width:600px;position:relative;z-index:2}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:5px;font-size:10px;letter-spacing:1px;background:#f2d277;color:#4f4829;font-weight:700}.feature h2{font-size:38px;letter-spacing:1px;line-height:1.4;margin:13px 0 9px}.feature h2 em{font-style:normal;color:#f3d37e}.feature p{font-size:12px;line-height:1.9;color:#dbdfcd}.feature .btn{margin-top:24px}.feature-meta{margin-left:15px;font-size:10px;color:#c5d1bd}.feature-stamp{position:absolute;right:28px;bottom:27px;border:1px solid #fff8;background:#25372d66;backdrop-filter:blur(8px);padding:11px 16px;border-radius:12px;color:#fff4d5;font-size:11px;transform:rotate(-5deg)}.feature-stamp b{font-size:27px;display:block;letter-spacing:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:13px 21px;background:var(--green);color:#fff;border-radius:9px;font-weight:700;font-size:12px;min-height:44px}.btn:hover{background:#356c59;box-shadow:0 5px 16px #173c3315}.btn.warm{background:#f4d17a;color:#284034}.btn.warm:hover{background:#ffdd88}.btn.light{background:#edf2e9;color:var(--green)}.btn.outline{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#bc5849}.section-head{display:flex;align-items:center;justify-content:space-between;margin:30px 0 17px}.section-head h2{font-size:18px;letter-spacing:-.4px}.section-head h2 small{margin-left:10px;font-size:10px;font-weight:400;color:var(--muted)}.filters{display:flex;gap:7px}.filter{background:transparent;padding:7px 12px;font-size:10px;border-radius:16px;color:#79857b}.filter.active{background:#e6eee2;color:var(--green)}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.game-card-v2{border:1px solid #e1e6dc;border-radius:18px;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s}.game-card-v2:hover{transform:translateY(-5px);box-shadow:0 12px 30px #23433012}.game-art{height:178px;position:relative;overflow:hidden;background:#dfe8cb}.game-art>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.game-card-v2:hover .game-art>img{transform:scale(1.05)}.game-art .tag{position:absolute;top:13px;left:13px;background:#fffdf1ed;padding:5px 8px;border-radius:5px;font-size:9px;z-index:2}.game-info{padding:19px 20px 17px}.game-info h3{font-size:17px}.game-info p{font-size:11px;color:var(--muted);margin:9px 0 15px;line-height:1.7}.game-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:13px;border-top:1px solid #eff0e9;gap:8px}.game-bottom span{font-size:10px;color:#7f887a}.game-bottom button{font-size:11px;font-weight:700;color:var(--green);background:none;padding:7px 0}.tiles-art{display:flex;align-items:center;justify-content:center;gap:3px;background:radial-gradient(ellipse at center,#e9f4d6,#d9e8c2)}.deco-tile{display:grid;place-items:center;width:66px;height:83px;background:#fff8e8;border-radius:12px;border:1px solid #fff;box-shadow:0 6px 0 #bac69c,0 13px 25px #38523522;transform:rotate(-14deg) translateY(9px);font-size:35px}.deco-tile:nth-child(3){transform:rotate(9deg) translateY(-5px);background:#fef9e9}.deco-tile:nth-child(4){transform:rotate(20deg) translateY(10px)}.tiles-art:before,.fortune-art:before{content:"✧";position:absolute;left:33px;bottom:26px;font-size:40px;color:#839968}.fortune-art{display:flex;align-items:center;justify-content:center;gap:13px;background:radial-gradient(ellipse at top,#fde5b1,#efd2a4)}.packet{position:relative;background:#c95439;color:#fddd90;width:65px;height:87px;border-radius:9px;box-shadow:0 5px 0 #a2412c,0 14px 23px #99542325;transform:rotate(-17deg);display:grid;place-items:center;font-size:33px}.packet:nth-child(3){transform:rotate(9deg) translateY(10px);width:77px;height:102px;background:#dc6748}.packet:nth-child(4){transform:rotate(22deg) translateY(-8px);width:48px;height:67px}.fortune-art:after{content:"✦";color:#d29431;position:absolute;right:30px;top:30px;font-size:33px}.daily-strip{margin-top:25px;border:1px solid var(--line);background:#eeefe5;border-radius:14px;padding:19px 23px;display:flex;align-items:center;gap:18px}.daily-icon{font-size:27px;color:#b18f45}.daily-strip h3{font-size:12px;margin-bottom:6px}.daily-strip p{font-size:11px;color:var(--muted)}.daily-strip button{margin-left:auto;white-space:nowrap}.footer{min-height:73px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#899187;gap:12px}.footer i{font-style:normal;margin:0 8px}.footer button{font-size:9px;background:none;color:#71816d;margin-left:12px}.music-dock{position:fixed;bottom:18px;right:27px;z-index:18;display:flex;align-items:center;gap:13px;background:#fffdf4ed;border:1px solid #dde4d9;border-radius:15px;padding:11px 13px;box-shadow:0 8px 30px #1f3f2d1c;backdrop-filter:blur(15px)}.music-dock b{display:block;font-size:11px}.music-dock small{color:var(--muted);font-size:9px;display:block;margin-top:4px}.music-dock button{background:none;padding:8px}.record-spin{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#244d3f;color:#f2d076;font-size:20px}.music-dock.playing .record-spin{animation:spin 8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
dialog{color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:0;background:#fffef8;width:min(540px,calc(100vw - 28px));max-height:88dvh;box-shadow:0 24px 100px #18372b33}dialog::backdrop{background:#122c2677;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:24px 26px 15px}.dialog-head h2{font-size:22px}.dialog-close{border-radius:50%;background:#edf0e6;width:33px;height:33px;font-size:22px}.dialog-body{padding:0 26px 26px;line-height:1.8;font-size:13px}.dialog-body p{color:var(--muted);margin:10px 0 17px}.dialog-body .actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.music-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.music-row div{flex:1}.music-row b{font-size:12px}.music-row small{display:block;color:var(--muted);font-size:10px}.music-row button,.music-row a{font-size:11px;background:#ebf0e4;padding:9px 13px;border-radius:9px}.volume{display:flex;align-items:center;gap:15px;margin-top:20px;font-size:12px}.volume input{flex:1;accent-color:var(--green)}.credit{font-size:10px;color:var(--muted);margin-top:16px}.credit a{text-decoration:underline}.player-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.player-choice{padding:15px 6px;background:#f1f3e8;border-radius:12px;font-size:13px}.player-choice.selected{box-shadow:inset 0 0 0 2px var(--green)}.name-form{display:flex;gap:8px;margin-top:16px}.name-form input{min-width:0;flex:1;padding:11px;border:1px solid var(--line);border-radius:8px}.app-toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%,12px);padding:12px 20px;border-radius:11px;background:#173c33f5;color:#fffef0;opacity:0;pointer-events:none;z-index:100;font-size:12px;max-width:88vw;text-align:center;transition:.2s}.app-toast.show{opacity:1;transform:translate(-50%,0)}.empty{padding:50px 24px;border:1px dashed #cfd9c8;border-radius:17px;text-align:center;color:var(--muted);font-size:13px;line-height:2}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px}.stat b{font-size:30px;display:block}.stat span{font-size:11px;color:var(--muted)}.record-row{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:17px 5px;font-size:12px}.record-row div{flex:1}.record-row small{display:block;color:var(--muted);margin-top:4px}.record-row strong{font-size:19px}.record-row .stars{color:#b28d38}.game-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:10px}.game-toolbar h1{font-size:24px}.game-toolbar .back{background:none;font-size:12px;color:var(--muted);padding:10px 0}.legacy-frame{display:block;width:100%;height:calc(100dvh - 190px);min-height:630px;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}.game-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;align-items:center;background:#fff;border:1px solid var(--line);padding:24px;border-radius:22px}.intro-image{width:100%;height:310px;object-fit:cover;border-radius:14px}.intro-copy h2{font-size:28px;margin:13px 0}.intro-copy p{font-size:12px;color:var(--muted);line-height:1.9}.mode-buttons{display:flex;gap:7px;margin-top:20px;flex-wrap:wrap}.mode-btn{background:#eff2e9;font-size:12px;padding:11px 14px;border-radius:8px}.mode-btn.active{background:var(--green);color:white}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.level-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-align:left;padding:0}.level-card img{width:100%;height:143px;object-fit:cover}.level-card div{padding:17px}.level-card h3{font-size:15px;margin-bottom:8px}.level-card p{font-size:11px;color:var(--muted);line-height:1.9}.level-card .level-num{font-size:10px;color:#a08040;margin-bottom:6px;display:block}.level-card footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-top:14px}.stars{color:#d8ac47;letter-spacing:3px}
.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:21px;align-items:start}.puzzle-main{min-width:0}.puzzle-hud{display:flex;align-items:center;gap:20px;background:white;border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:12px}.puzzle-hud .metric{flex:1}.puzzle-hud .metric small{display:block;color:var(--muted);font-size:9px;letter-spacing:1px;margin-bottom:6px}.puzzle-hud .metric b{font-size:21px;font-variant-numeric:tabular-nums}.puzzle-hud .metric b.danger{color:#bf513c}.timer-bar{height:3px;background:#e1e9d9;overflow:hidden;border-radius:2px;margin-top:7px}.timer-bar span{display:block;height:100%;background:#659476;width:100%}.scene-viewport{overflow:auto;border-radius:17px;background:#d2c3a2;position:relative;border:4px solid white;box-shadow:0 0 0 1px var(--line);max-height:70dvh;touch-action:pan-x pan-y}.scene{position:relative;width:100%;aspect-ratio:1.5;isolation:isolate;cursor:crosshair;min-height:0}.scene>img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}.puzzle-object{position:absolute;left:var(--x);top:var(--y);width:var(--w);aspect-ratio:1;transform:translate(-50%,-50%) rotate(var(--r));padding:0;background:transparent;line-height:0;filter:drop-shadow(1px 2px 1px #241f1888);border-radius:30%;touch-action:manipulation;z-index:2}.puzzle-object svg{width:100%;height:100%;overflow:visible;pointer-events:none}.puzzle-object:hover{filter:drop-shadow(1px 2px 1px #241f1888)}.puzzle-object:active{transform:translate(-50%,-50%) rotate(var(--r))!important}.puzzle-object.found{filter:none;pointer-events:none}.puzzle-object.found:after{content:"✓";position:absolute;inset:-5px;display:grid;place-items:center;line-height:1;border:2px solid #fff6c4;border-radius:50%;background:#215e4666;color:#fff8bc;font-size:clamp(14px,2vw,30px);box-shadow:0 0 0 3px #38845e88}.puzzle-object.hinted:before{content:"";position:absolute;inset:-15px;border:3px dashed #fff3a4;border-radius:50%;animation:hint 1s ease-in-out infinite}@keyframes hint{50%{transform:scale(1.2);opacity:.45}}.scene.flash-error{animation:err .2s ease 2}@keyframes err{50%{box-shadow:inset 0 0 80px #cd4838aa}}.scene-tools{display:flex;justify-content:space-between;gap:8px;margin:14px 0;flex-wrap:wrap}.scene-tools .group{display:flex;gap:7px}.tool{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:8px;font-size:11px;min-height:42px}.tool.active{background:#edf1e3}.game-note{font-size:10px;color:var(--muted);line-height:1.8}.clue-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.clue-panel .case-label{font-size:9px;color:#a58a52;letter-spacing:2px}.clue-panel h2{font-size:20px;margin:9px 0}.clue-panel>p{font-size:11px;color:var(--muted);line-height:1.8}.clue-count{padding:14px 0 12px;margin-top:9px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px}.clue-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.clue-list li{border:1px solid #e7ebdf;border-radius:9px;padding:10px;font-size:11px;display:flex;gap:9px;align-items:center;color:#9ba093}.clue-list li.solved{background:#f0f5e9;color:var(--green)}.clue-list li span{width:20px;height:20px;border-radius:50%;background:#edf0e5;display:grid;place-items:center;flex-shrink:0;font-size:10px}.clue-list li small{font-size:9px;color:#83917e}.combo-badge{color:#b67c29;font-size:12px;font-weight:700;min-height:18px;margin-top:14px}.result-top{text-align:center;padding-top:10px}.result-top .stars{font-size:35px}.result-top h3{font-size:29px;margin:15px 0 5px}.result-top .big-score{font-size:49px;font-weight:800;color:var(--green)}.answers{margin-top:19px;display:grid;gap:9px}.answer{background:#f1f3e8;border-radius:10px;padding:11px 14px;font-size:11px}.answer b{font-size:12px}.answer p{margin:4px 0 0;font-size:11px;line-height:1.7}.pause-surface{position:absolute;inset:0;z-index:8;background:#244035d9;backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;color:#fffae7;cursor:default}.pause-surface h2{font-size:25px}.pause-surface p{font-size:12px}.mode-caption{color:var(--muted);font-size:11px;margin-top:12px}
@media(min-width:1600px){.workspace{padding:0 60px}.feature{height:390px}.feature-copy{padding:48px}.feature h2{font-size:45px}.game-art{height:215px}}
@media(max-width:1150px){.sidebar{width:190px;padding:29px 15px}.brand{font-size:13px}.brand small{font-size:6px}.workspace{margin-left:190px;padding:0 25px}.feature-copy{padding:30px}.feature h2{font-size:34px}.feature-meta{display:none}.game-art{height:151px}.game-info{padding:16px}.puzzle-layout{grid-template-columns:minmax(0,1fr) 205px;gap:15px}.clue-panel{padding:16px}.puzzle-hud{gap:14px;padding:14px}.intro-image{height:290px}}
@media(max-width:850px){.sidebar{width:76px;padding:25px 10px}.brand{justify-content:center}.brand>span:last-child,.nav-label,.nav-item i,.sidebar-note,.profile>span:not(.avatar){display:none}.sidebar nav{margin-top:35px}.nav-item{font-size:0;justify-content:center;padding:16px}.nav-item>span{font-size:22px}.profile{margin-top:auto;justify-content:center}.workspace{margin-left:76px;padding:0 22px}.topbar{height:73px}.feature{height:320px}.feature h2{font-size:32px}.feature-copy{padding:30px 25px}.feature-stamp{display:none}.game-grid{gap:13px}.game-info h3{font-size:15px}.game-info p{font-size:10px}.game-art{height:132px}.deco-tile{width:44px;height:60px;font-size:27px}.packet{width:46px;height:65px;font-size:23px}.packet:nth-child(3){width:56px;height:75px}.packet:nth-child(4){display:none}.game-intro{grid-template-columns:1fr;gap:17px}.intro-image{height:250px}.intro-copy{padding:0 6px 10px}.puzzle-layout{grid-template-columns:1fr}.clue-panel .clue-list{grid-template-columns:repeat(4,1fr)}.clue-panel>p{display:none}.clue-panel h2{font-size:16px}.clue-panel{padding:15px}.clue-panel .case-label{float:right}.clue-count{margin-top:5px}.clue-list li{padding:7px;font-size:10px}.scene-viewport{max-height:none}}
@media(max-width:580px){.sidebar{width:100%;height:65px;inset:auto 0 0;flex-direction:row;padding:0 5px;border-right:0;border-top:1px solid var(--line);background:#fffef9f5;backdrop-filter:blur(16px)}.sidebar .brand,.sidebar .profile{display:none}.sidebar nav{margin:0;display:flex;width:100%;align-items:center;justify-content:space-around}.nav-item{padding:9px 3px;margin:0;gap:4px;flex-direction:column;font-size:9px;line-height:1.4;width:19%;border-radius:9px;font-weight:500;white-space:nowrap}.nav-item>span{font-size:20px}.workspace{margin:0;padding:0 18px 65px}.topbar{height:64px}.breadcrumb{font-size:11px}.breadcrumb span{margin:0 9px}.today{display:none}.top-actions{gap:6px}.icon-btn{padding:8px 11px}.icon-btn span{font-size:10px}.greeting{margin-bottom:19px}.greeting h1{font-size:24px}.greeting h1 span{font-size:20px}.greeting p{font-size:11px}.live-badge{display:none}main{padding:25px 0 20px}.feature{height:367px;border-radius:19px}.feature>img{width:100%;height:100%;object-position:66% center}.feature:after{background:linear-gradient(90deg,#153d30ed 0%,#153d30c2 34%,#153d3044 100%)}.feature-copy{padding:30px 23px}.feature h2{font-size:34px;margin-top:20px;line-height:1.5}.feature p{font-size:11px}.feature .btn{margin-top:28px}.feature .pill{font-size:9px}.feature-stamp{display:block;right:16px;bottom:23px;font-size:9px;padding:8px 10px}.feature-stamp b{font-size:20px}.section-head{margin:25px 0 15px}.section-head h2{font-size:17px}.section-head h2 small{display:none}.filters{gap:0}.filter{padding:6px 8px;font-size:9px}.game-grid{grid-template-columns:1fr;gap:15px}.game-card-v2{display:grid;grid-template-columns:115px 1fr;border-radius:16px}.game-art{height:100%;min-height:161px}.game-art>img{object-position:center}.game-art .tag{top:10px;left:9px;font-size:8px}.tiles-art{gap:0}.deco-tile{position:absolute;width:43px;height:62px;font-size:28px}.deco-tile:nth-child(2){left:9px;top:44px;transform:rotate(-15deg)}.deco-tile:nth-child(3){left:36px;top:62px;transform:rotate(7deg)}.deco-tile:nth-child(4){display:none}.fortune-art{gap:0}.packet{width:40px;height:61px;position:absolute;left:13px;top:41px}.packet:nth-child(3){width:48px;height:68px;left:46px;top:65px}.fortune-art:after{right:12px;top:33px;font-size:23px}.tiles-art:before,.fortune-art:before{font-size:22px;left:10px;bottom:14px}.game-info{padding:19px 16px}.game-info h3{font-size:16px}.game-info p{font-size:11px;margin:8px 0 12px}.game-bottom{padding-top:8px}.game-bottom span{font-size:9px}.game-bottom button{font-size:10px}.daily-strip{padding:17px 14px;gap:11px}.daily-strip p{font-size:10px}.daily-strip .btn{padding:9px 12px;font-size:10px}.daily-strip .daily-icon{display:none}.daily-strip h3{font-size:11px}.footer{flex-direction:column;justify-content:center;padding:16px 0;gap:10px}.music-dock{bottom:75px;right:12px;left:12px;gap:10px}.music-dock>div{flex:1}.app-toast{bottom:146px;font-size:11px}.game-toolbar h1{font-size:20px}.game-toolbar .back{font-size:10px}.game-intro{padding:14px;gap:15px}.intro-image{height:196px}.intro-copy h2{font-size:25px}.intro-copy p{font-size:11px}.mode-btn{font-size:10px;padding:10px 12px}.level-grid{grid-template-columns:1fr;gap:13px}.level-card{display:grid;grid-template-columns:110px 1fr}.level-card img{height:100%;min-height:160px}.level-card div{padding:15px}.level-card h3{font-size:15px}.level-card p{font-size:10px}.level-card footer{margin-top:9px}.stats-grid{gap:9px}.stat{padding:16px 12px}.stat b{font-size:26px}.stat span{font-size:9px}.puzzle-hud{padding:12px;gap:10px}.puzzle-hud .metric b{font-size:19px}.puzzle-hud .metric small{font-size:8px}.scene-viewport{border-width:2px;border-radius:12px}.scene-tools{gap:7px}.tool{font-size:10px;padding:10px 9px}.clue-panel .clue-list{grid-template-columns:repeat(2,1fr)}.clue-list li{padding:8px}.legacy-frame{height:calc(100dvh - 208px);min-height:530px}.dialog-head{padding:22px 20px 12px}.dialog-body{padding:0 20px 23px}.dialog-head h2{font-size:20px}.scene.zoomed{width:200%}.game-note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* Mobile mini-program surface: safe areas, compact entry, large touch controls. */
.mobile-shortcuts{display:none}.pause-surface{position:fixed;inset:89px 0 0 224px;z-index:25;border-radius:0}.puzzle-object svg{filter:contrast(.94) sepia(.18)}.puzzle-object{opacity:.94}.scene-viewport{overscroll-behavior:contain}.scene-tools{position:sticky;bottom:0;background:#f7f7f2f5;padding:8px 0;z-index:6}.legacy-frame{scroll-margin-top:15px}
@media(max-width:1150px){.pause-surface{left:190px}}@media(max-width:850px){.pause-surface{top:73px;left:76px}}
@media(max-width:580px){
  .sidebar{height:calc(65px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .workspace{padding-bottom:calc(65px + env(safe-area-inset-bottom,0px));padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
  .topbar{padding-top:env(safe-area-inset-top,0px);height:calc(64px + env(safe-area-inset-top,0px))}
  .icon-btn{min-width:44px;min-height:44px}.nav-item{min-height:52px}.tool{min-width:44px;min-height:44px}
  .mobile-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:19px}.mobile-shortcuts button{background:#edf1e3;border:1px solid #dfe6d7;border-radius:14px;padding:13px 6px;text-align:center}.mobile-shortcuts button:nth-child(2){background:#e8efd9}.mobile-shortcuts button:nth-child(3){background:#f5e7c9}.mobile-shortcuts span{font-size:25px;display:block;margin-bottom:6px}.mobile-shortcuts b{font-size:11px;display:block}.mobile-shortcuts small{font-size:9px;display:block;color:#869079;margin-top:4px}
  .feature{height:290px}.feature-copy{padding:23px}.feature h2{font-size:28px;margin:14px 0 7px;line-height:1.4}.feature p{font-size:10px}.feature .btn{margin-top:19px;padding:12px 15px;font-size:11px}.feature-stamp{font-size:8px;bottom:21px}.feature-stamp b{font-size:18px}.feature-meta{display:none}
  .scene-tools{bottom:calc(65px + env(safe-area-inset-bottom,0px))}.pause-surface{inset:64px 0 calc(65px + env(safe-area-inset-bottom,0px));padding:20px;text-align:center}.pause-surface p{font-size:11px;line-height:1.8}.music-dock{bottom:calc(75px + env(safe-area-inset-bottom,0px))}.app-toast{bottom:calc(140px + env(safe-area-inset-bottom,0px))}.music-row button,.music-row a{min-height:44px;display:inline-flex;align-items:center}.game-toolbar .back{min-height:44px}
}

@media(max-width:580px){
 body[data-game="match"] main,body[data-game="fortune"] main{padding-top:0}
 body[data-game="match"] .game-toolbar,body[data-game="fortune"] .game-toolbar{margin-bottom:4px;min-height:44px}
 body[data-game="match"] .workspace,body[data-game="fortune"] .workspace{padding-left:8px;padding-right:8px}
 body[data-game="match"] .topbar,body[data-game="fortune"] .topbar{height:50px}
 .puzzle-object:not(.hinted)::before{content:"";position:absolute;inset:-6px;border-radius:30%}
}

.mini-host .external-music{display:none}
@media(max-width:580px){.greeting{gap:12px;flex-wrap:wrap}.greeting button{white-space:nowrap;min-height:44px;padding:10px 15px;font-size:11px}}

.music-context{padding:12px 14px;margin:14px 0;background:#edf2e3;border-radius:10px;font-size:12px}.soundtrack-list{max-height:43dvh;overflow:auto;overscroll-behavior:contain;margin-top:12px;padding-right:4px}.music-credits{margin-top:16px;font-size:10px;line-height:1.8;color:#71806f}.music-credits p{font-size:10px;margin:10px 0}.music-credits a{text-decoration:underline}

.puzzle-object.baked-object{height:var(--h);aspect-ratio:auto;filter:none;opacity:1;transform:translate(-50%,-50%);border-radius:5px;cursor:crosshair}.puzzle-object.baked-object:hover{filter:none}.puzzle-object.found{pointer-events:auto}.puzzle-object.baked-object.found:after{inset:-3px;border-radius:8px;background:#24564730}.music-on{background:#dbead6;box-shadow:inset 0 0 0 1px #b7ceae}

/* Photographic atlas props: identical treatment for targets and period decoys. */
.puzzle-object.sprite-object{height:var(--h);aspect-ratio:auto;opacity:1;filter:none;border-radius:12%;cursor:crosshair}
.prop-sprite{display:block;width:100%;height:100%;background-size:400% 400%;background-repeat:no-repeat;pointer-events:none;transform:scaleX(var(--flip));filter:brightness(var(--light)) saturate(.7) sepia(var(--warm)) contrast(.92) drop-shadow(1px 2px 1px #211b1599)}
.sprite-object.found .prop-sprite{opacity:.55}.sprite-object.found:after{inset:0;border-radius:12%;font-size:18px;background:#24564733}.case-ticket{border-top:1px solid #e0e6d9;margin-top:16px;padding-top:12px}.case-ticket small{display:block;color:#7b8878;font-size:10px;margin-bottom:8px}.case-ticket .tool{width:100%;justify-content:center}.share-url{width:100%;padding:12px;border:1px solid #cdd9c6;border-radius:10px}.level-card:hover img{filter:brightness(1.05)}
@media(max-width:580px){body[data-game=match] .legacy-frame{border:0;border-radius:14px}.sprite-object:not(.hinted)::before{inset:-4px}.clue-panel .case-ticket{display:flex;align-items:center;justify-content:space-between;gap:10px}.case-ticket .tool{width:auto}.case-ticket small{max-width:110px;line-height:1.6}}

@media(max-width:580px){.game-bottom button{min-height:44px;min-width:66px}.tiles-art:before{display:none}}
