:root{font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17191c;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--accent: #ff6b45;--accent-strong: #f45731;--ink-soft: #7b818a;--surface: #f7f8fa}*{box-sizing:border-box}html,body,#root{width:100%;min-width:100%;min-height:100%;margin:0}html{background:#fff;overscroll-behavior:none}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden;background:#fff;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}#root{height:100vh;height:100dvh}.app-shell{width:min(100%,430px);height:100%;min-height:100%;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));background:#fff;position:relative;overflow:hidden}.primary-button{min-height:54px;border:0;border-radius:18px;padding:0 22px;background:var(--accent);color:#fff;font-weight:800;font-size:17px;letter-spacing:-.02em;cursor:pointer;box-shadow:0 8px 20px #ff6b452e;transition:transform .12s ease,background .12s ease}.primary-button:active{transform:scale(.98);background:var(--accent-strong)}.primary-button:focus-visible{outline:3px solid rgb(49 130 246 / 28%);outline-offset:3px}.start-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:max(34px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom));text-align:center}.brand-mark{width:118px;height:118px;position:relative;margin-bottom:24px;filter:drop-shadow(0 12px 18px rgb(255 107 69 / 13%))}.brand-mark__left,.brand-mark__right{position:absolute;top:16px;width:47px;height:86px;background:#ff7552;border-radius:40px 10px 10px 40px}.brand-mark__left{left:8px;transform:rotate(-8deg)}.brand-mark__right{right:8px;transform:scaleX(-1) rotate(-8deg)}.brand-mark__cut{position:absolute;left:57px;top:10px;width:4px;height:98px;background:#fff;transform:rotate(13deg);border-radius:999px;z-index:2}.start-copy h1{margin:0;font-size:clamp(40px,12vw,52px);line-height:1;letter-spacing:-.055em}.start-copy p{margin:16px 0 0;color:#626872;font-size:18px;line-height:1.55;font-weight:650;letter-spacing:-.025em}.start-demo{display:flex;align-items:center;gap:12px;margin-top:28px;color:#999fa8;font-size:13px;font-weight:750}.start-demo i{width:1px;height:22px;background:#dadde2;transform:rotate(18deg)}.start-button{width:100%;margin-top:auto}.game-screen{display:flex;flex-direction:column;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}.game-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;min-height:42px}.mini-logo{font-weight:900;font-size:19px;letter-spacing:-.045em}.progress{display:flex;gap:5px;align-items:baseline;color:#a2a7ae;font-size:15px;font-weight:750}.progress__current{color:#282b30;font-size:20px;font-weight:900}.progress__divider{color:#d1d4d8}.round{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center}.cut-stage{width:100%;max-width:390px;margin:0 auto;aspect-ratio:1 / 1;flex:0 1 auto;min-height:0;user-select:none;-webkit-user-select:none}.cut-stage--invalid{animation:stage-shake .22s ease}.cut-stage__svg{width:100%;height:100%;display:block;overflow:visible;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:crosshair}.object-shadow{fill:#141c2714;filter:blur(.5px)}.object-whole{transform-origin:center;animation:object-in .26s cubic-bezier(.2,.8,.2,1)}.cut-preview-guide-backdrop,.cut-preview-guide,.cut-preview-segment,.cut-release-flash,.cut-marker{pointer-events:none}.cut-preview-guide-backdrop{stroke:#ffffffdb;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}.cut-preview-guide{stroke:var(--accent-strong);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.cut-preview-segment{stroke:#30343a85;stroke-width:1.35;stroke-linecap:round;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.cut-marker__halo{fill:#ffffffe0}.cut-marker__ring{fill:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.cut-release-flash{stroke:var(--accent);stroke-width:3.4;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:release-flash .1s ease-out forwards}.cut-piece{transform-box:fill-box;transform-origin:center}.cut-flash{stroke:#fff;stroke-width:3.2;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none;animation:cut-flash .3s ease-out forwards}.round-feedback{flex:0 0 154px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding-top:5px}.round-feedback--result{animation:feedback-in .24s .12s ease both}.play-hint{margin:8px 0 0;color:#7c828a;font-size:15px;font-weight:650;letter-spacing:-.02em}.ratio-row{display:flex;align-items:baseline;gap:14px;color:#777d85;font-size:16px}.ratio-row strong{color:#373a40;font-size:20px;letter-spacing:-.03em}.ratio-row span{color:#c4c7cc}.score{position:relative;margin-top:3px;color:#17191c;font-size:38px;font-weight:900;line-height:1.05;letter-spacing:-.055em}.score>span:not(.sparkle){margin-left:2px;font-size:17px;letter-spacing:-.02em}.score--great{color:var(--accent-strong)}.sparkle{position:absolute;right:-28px;top:-8px;color:#ffb32c;font-size:22px;animation:sparkle .54s ease both}.result-label{margin:6px 0 0;color:#777d85;font-weight:750;font-size:14px}.next-button{min-height:48px;width:min(220px,70vw);border-radius:16px;margin-top:12px;font-size:16px}.summary-screen{display:flex;flex-direction:column;padding-top:max(44px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.summary-header{text-align:center}.summary-eyebrow{color:var(--accent-strong);font-size:16px;font-weight:900;letter-spacing:-.03em}.summary-header h1{margin:20px 0 4px;font-size:20px;letter-spacing:-.03em}.total-score{font-size:clamp(44px,13vw,56px);font-weight:950;line-height:1.1;letter-spacing:-.06em}.total-score span{color:#a1a6ad;font-size:18px;font-weight:750;letter-spacing:-.02em}.result-list{list-style:none;margin:34px 0 0;padding:6px 4px;border-top:1px solid #f0f1f3;border-bottom:1px solid #f0f1f3}.result-list li{min-height:52px;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;font-size:16px}.result-list__index{color:#b2b6bc;font-size:14px;font-weight:750}.result-list__name{font-weight:750}.result-list strong{font-size:17px;font-variant-numeric:tabular-nums}.retry-button{width:100%;margin-top:auto}@keyframes object-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes stage-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}55%{transform:translate(5px)}78%{transform:translate(-2px)}}@keyframes release-flash{0%{opacity:1}to{opacity:.28}}@keyframes cut-flash{0%{opacity:1}50%{opacity:.9}to{opacity:0}}@keyframes feedback-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes sparkle{0%{opacity:0;transform:scale(.3) rotate(-25deg)}60%{opacity:1;transform:scale(1.2) rotate(8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(max-height:700px){.game-header{min-height:34px}.cut-stage{max-width:min(100%,calc(100dvh - 215px))}.round-feedback{flex-basis:138px}.score{font-size:34px}.next-button{margin-top:8px}.summary-screen{padding-top:max(25px,env(safe-area-inset-top))}.result-list{margin-top:20px}.result-list li{min-height:45px}}@media(max-width:340px){.app-shell{padding-left:14px;padding-right:14px}.cut-stage{width:98%}.play-hint{font-size:14px}}@media(orientation:landscape)and (max-height:500px){body{overflow:auto}#root,.app-shell{min-height:500px;height:auto}.game-screen{min-height:500px}.round{flex-direction:row;align-items:center;gap:10px}.cut-stage{width:min(58vh,280px)}.round-feedback{flex:1;justify-content:center;padding-top:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.reward-overlay,.reward-overlay *{pointer-events:none}.reward-medal-pop{transform-box:fill-box;transform-origin:center;animation:reward-medal-pop .42s .17s cubic-bezier(.18,.9,.28,1.22) both}.reward-medal{filter:drop-shadow(0 2px 2px rgb(31 35 40 / 18%))}.reward-medal__ribbon{stroke-width:.65;stroke-linejoin:round}.reward-medal__outer{stroke-width:.8}.reward-medal__inner{stroke-width:.45}.reward-medal__shine{fill:#ffffff9e}.reward-medal__icon{stroke-linecap:round;stroke-linejoin:round}.reward-medal__sparkles{fill:#fff4b8;opacity:0;animation:reward-medal-sparkles .38s .3s ease-out both}.reward-medal--gold .reward-medal__ribbon{fill:#ff8b61;stroke:#e86343}.reward-medal--gold .reward-medal__outer{fill:#f2ad2f;stroke:#c77b0a}.reward-medal--gold .reward-medal__inner{fill:#ffd968;stroke:#e8a820}.reward-medal--gold .reward-medal__icon{fill:#fff4b8;stroke:#d99016;stroke-width:.45}.reward-medal--silver .reward-medal__ribbon{fill:#92a8bc;stroke:#71879a}.reward-medal--silver .reward-medal__outer{fill:#b9c4cf;stroke:#8493a1}.reward-medal--silver .reward-medal__inner{fill:#edf2f6;stroke:#a9b5bf}.reward-medal--silver .reward-medal__icon{fill:#fff;stroke:#8d9aa6;stroke-width:.5}.reward-medal--silver .reward-medal__sparkles{fill:#f7fbff}.reward-medal--bronze .reward-medal__ribbon{fill:#ad6848;stroke:#8b4e34}.reward-medal--bronze .reward-medal__outer{fill:#c87847;stroke:#98512f}.reward-medal--bronze .reward-medal__inner{fill:#eca06e;stroke:#bd6d42}.reward-medal--bronze .reward-medal__icon{fill:none;stroke:#fff0df;stroke-width:1.2}.reward-medal--bronze .reward-medal__sparkles{fill:#ffe1c7}.reward-fireworks{fill:#ffd866;stroke:#ffb52e;stroke-width:1.15;stroke-linecap:round}.reward-firework-burst{transform-box:fill-box;transform-origin:center;opacity:0}.reward-firework-burst--one{animation:reward-firework-burst .56s 245ms cubic-bezier(.12,.74,.28,1) both}.reward-firework-burst--two{animation:reward-firework-burst .6s 295ms cubic-bezier(.12,.74,.28,1) both}.reward-firework-burst--three{animation:reward-firework-burst .54s 335ms cubic-bezier(.12,.74,.28,1) both}.reward-firework-burst--two{stroke:#ff784e;fill:#fff2a3}.reward-firework-burst--three{stroke:#f5c84c;fill:#fff}.reward-falling-star{fill:#ffd95d;stroke:none;opacity:0;transform-box:fill-box;transform-origin:center}.reward-falling-star--one{animation:reward-star-pop .52s .31s ease-out both}.reward-falling-star--two{animation:reward-star-pop .52s .37s ease-out both}.round-feedback--result{animation:feedback-in .26s .28s ease both}@keyframes reward-medal-pop{0%{opacity:0;transform:translateY(5px) scale(.5) rotate(-5deg)}62%{opacity:1;transform:translateY(-5.8px) scale(1.11) rotate(2deg)}82%{opacity:1;transform:translateY(-5px) scale(.98) rotate(0)}to{opacity:1;transform:translateY(-5.2px) scale(1) rotate(0)}}@keyframes reward-medal-sparkles{0%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.15)}to{opacity:.9;transform:scale(1)}}@keyframes reward-firework-burst{0%{opacity:0;transform:scale(.2) rotate(-8deg)}28%{opacity:1;transform:scale(.75) rotate(2deg)}72%{opacity:.9;transform:scale(1.12) rotate(5deg)}to{opacity:0;transform:scale(1.3) rotate(7deg)}}@keyframes reward-star-pop{0%{opacity:0;transform:translateY(3px) scale(.35) rotate(-20deg)}45%{opacity:1;transform:translateY(-1px) scale(1.1) rotate(7deg)}to{opacity:0;transform:translateY(-5px) scale(.8) rotate(18deg)}}
