[hidden]{display:none!important}button{touch-action:manipulation}.stage-actions{display:flex;align-items:center;gap:12px}.input-switch{font-size:10px;color:#8a739f;padding:8px;border-radius:8px;background:#f0eaf6}.touch-controls{padding:12px 16px 10px;border-top:1px solid #e4e9da;background:#f8faf3}.touch-tabs{display:flex;background:#e9eddf;padding:4px;border-radius:13px;gap:4px;margin-bottom:11px}.touch-tabs button{flex:1;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;font-size:12px;font-weight:700;color:#929a82}.touch-tabs button.active{color:#7156a3;background:#fff;box-shadow:0 2px 7px #43483909}.touch-tabs svg{width:18px;height:18px}.touch-main-actions{display:grid;grid-template-columns:1.2fr 1fr 1.3fr;gap:8px}.touch-main-actions button{display:flex;justify-content:center;align-items:center;gap:7px;min-height:50px;border:1px solid #dedfd3;border-radius:12px;background:white;font-size:13px;font-weight:700;box-shadow:0 2px 0 #dfe3d5}.touch-main-actions svg{width:19px;height:19px}.touch-main-actions .touch-primary{background:#7761b0;border-color:#7761b0;color:#fff;box-shadow:0 3px 0 #5c478f}.touch-main-actions .touch-primary:disabled{background:#aaa2b8;border-color:#aaa2b8;box-shadow:none;opacity:.55}.touch-position{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:11px;color:#929b83;font-size:11px}.touch-position button{border:1px solid #e0e4d7;background:#fff;min-width:44px;min-height:44px;border-radius:11px;font-size:20px;display:inline-flex;align-items:center;justify-content:center;gap:4px}.touch-position #touch-hint{font-size:11px;margin-left:auto;padding:0 10px;color:#aa9457;background:#f4efdf}.touch-position #touch-hint svg{width:16px;height:16px}.touch-camera{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.touch-camera button{min-height:58px;border:1px solid #e0e4d7;background:#fff;border-radius:12px;font-size:25px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:#7a6b94}.touch-camera span{font-size:10px;color:#919780}.touch-camera svg{width:23px;height:23px}#touch-viewing p{font-size:11px;color:#a0a48f;text-align:center;margin:13px 0 2px}html[data-input=touch] .stage-toolbar{display:none}html[data-input=touch] #scene{cursor:crosshair}html[data-input=touch] .shortcuts{display:none}html[data-input=touch] .input-switch{min-height:38px}html[data-input=touch] .workspace{grid-template-columns:minmax(0,1fr) 255px}html[data-input=touch] .parts{grid-column:1/-1;padding:14px 18px;position:sticky;top:0;z-index:3;box-shadow:0 5px 20px #33362f06}html[data-input=touch] .parts .panel-heading{margin-bottom:8px}html[data-input=touch] .parts .subtle,html[data-input=touch] .part-tip{display:none}html[data-input=touch] .parts-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}html[data-input=touch] .piece-card{min-height:80px;justify-content:center}html[data-input=touch] .piece-key{display:none}html[data-input=touch] .piece-card canvas{width:66px;height:54px}html[data-input=touch] .piece-card .piece-name{font-size:12px}html[data-input=touch] .piece-card .piece-meta{font-size:10px}html[data-input=touch] .canvas-wrap{min-height:350px}html[data-input=touch] .guide{grid-column:auto;display:block}html[data-input=touch] .guide-note{font-size:10px}html[data-input=touch] .status{font-size:12px;line-height:1.5;padding:8px 15px 13px}html[data-input=touch] .help-steps>div{padding:16px}html[data-input=touch] .help-steps p{font-size:12px}html[data-input=touch] .help-steps b{font-size:14px}html[data-input=touch] .modal-close{min-width:44px;min-height:44px}html[data-input=touch] .primary-button,html[data-input=touch] .secondary-button{min-height:48px}html[data-input=touch] .plan-stages button{min-height:56px}html[data-input=touch] .soft-button{min-height:40px}
.success-art{height:145px;width:210px;margin:4px auto 18px;position:relative}.success-house{position:absolute;left:47px;top:10px;background:#f5cf75;width:115px;height:115px;border-radius:30px;color:#aa793c;font:900 98px/.97 'Nunito',sans-serif;transform:rotate(-8deg);box-shadow:inset -7px -7px #e7b958,0 10px 0 #ede7d7;animation:house-pop .65s cubic-bezier(.2,1.3,.4,1) both}.success-smile{position:absolute;right:10px;bottom:1px;width:62px;height:62px;display:grid;place-items:center;background:#a6c6ad;border:5px solid #fffdf7;border-radius:50%;color:#5f8166;font-size:46px;animation:house-pop .6s .25s both}.success-star{position:absolute;color:#aa91c8;font-size:36px;animation:star-pop .8s .2s both}.star-a{left:0;top:0}.star-b{right:0;top:8px;font-size:29px;color:#d49b7e;animation-delay:.35s}.star-c{left:14px;bottom:6px;font-size:28px;color:#d1ab55;animation-delay:.45s}.praise{font-size:32px!important;color:#7761b0;animation:praise-pop .6s .15s both}.success-animation>p{color:#96937f;line-height:1.7;font-size:14px}.success-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.success-buttons button{margin:0;min-height:48px}.success-buttons .secondary-button{border:1px solid #e4e1d4;border-radius:12px;padding:12px 16px}.success-animation{padding:13px 0}.success-animation .eyebrow{font-size:10px}@keyframes house-pop{from{transform:translateY(30px) scale(.3) rotate(-20deg);opacity:0}to{transform:translateY(0) scale(1) rotate(-8deg);opacity:1}}@keyframes star-pop{from{opacity:0;transform:scale(0) rotate(-70deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes praise-pop{from{opacity:0;transform:translateY(14px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:1100px){html[data-input=touch] .piece-card{flex-direction:column;padding:4px 2px;gap:0}html[data-input=touch] .piece-card canvas{height:44px;width:60px}html[data-input=touch] .piece-card>span{padding-bottom:2px}html[data-input=touch] .piece-card .piece-name{font-size:11px;display:inline}html[data-input=touch] .piece-card .piece-meta{font-size:9px;display:inline;margin-left:5px}}
@media(max-width:849px){html[data-input=touch] .workspace{display:flex;flex-direction:column}html[data-input=touch] .parts{order:0}html[data-input=touch] .play{order:1}html[data-input=touch] .guide{order:2;display:grid;grid-template-columns:180px minmax(0,1fr);gap:0 20px}html[data-input=touch] .guide>.panel-heading{grid-column:1;grid-row:1}html[data-input=touch] .model-preview{grid-column:1;grid-row:2/7}html[data-input=touch] .difficulty{grid-column:1;grid-row:7}html[data-input=touch] .progress-info{grid-column:2;grid-row:1}html[data-input=touch] .progress-track{grid-column:2;grid-row:2}html[data-input=touch] .steps{grid-column:2;grid-row:3/6}html[data-input=touch] .guide-note{grid-column:2;grid-row:6/8}html[data-input=touch] .canvas-wrap{min-height:320px}html[data-input=touch] .piece-card .piece-name{display:block}html[data-input=touch] .piece-card .piece-meta{display:block;margin:3px 0 0}html[data-input=touch] .intro{margin-bottom:18px}}
@media(max-width:640px){.stage-top{flex-wrap:wrap;gap:7px}.stage-actions{gap:7px}.input-switch{font-size:9px;padding:6px}.soft-button{font-size:10px}.touch-controls{padding:10px}.touch-tabs button{font-size:12px;gap:5px}.touch-tabs svg{width:16px;height:16px}.touch-main-actions{gap:6px}.touch-main-actions button{font-size:12px;gap:4px}.touch-main-actions svg{width:16px;height:16px}.touch-position{gap:6px;font-size:10px}.touch-position #touch-hint{padding:0 7px;font-size:10px}html[data-input=touch] .parts{padding:11px 10px}html[data-input=touch] .piece-card .piece-name{font-size:10px}html[data-input=touch] .piece-card .piece-meta{font-size:9px}html[data-input=touch] .piece-card canvas{width:100%;max-width:60px;height:40px}html[data-input=touch] .piece-card{min-height:79px}html[data-input=touch] .parts-list{gap:5px}html[data-input=touch] .canvas-wrap{min-height:285px}html[data-input=touch] .guide{grid-template-columns:130px minmax(0,1fr);gap:0 13px}html[data-input=touch] .stage-label{font-size:11px}.touch-position #touch-hint svg{width:13px;height:13px}.praise{font-size:28px!important}.success-buttons{flex-direction:column}.success-animation>p{font-size:13px}.success-art{transform:scale(.9);margin-top:0;margin-bottom:5px}html[data-input=touch] .help-steps{grid-template-columns:1fr}html[data-input=touch] .help-steps>div{padding:13px}.touch-camera{gap:5px}}
@media(prefers-reduced-motion:reduce){.success-house,.success-smile,.success-star,.praise{animation:none!important}}
