/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}:root{--ink:#20201e;--paper:#f3efe5;--red:#e7482e;--line:#c9c2b4}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:#d9d2c4;margin:0}body{font-family:Noto Sans SC,Microsoft YaHei,Arial,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{background:var(--paper);flex-direction:column;width:min(100%,480px);min-height:100svh;margin:auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 80px #2b261d2b}.noise{pointer-events:none;opacity:.17;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");position:absolute;inset:0}.topbar{z-index:11;border-bottom:1px solid var(--line);letter-spacing:.08em;align-items:center;gap:10px;min-height:66px;padding:15px 20px;font-weight:800;display:flex;position:relative}.brand-mark{width:34px;height:34px;color:var(--paper);background:var(--red);border-radius:50%;place-items:center;font-family:serif;font-size:18px;display:grid}.fiction{border:1px solid var(--red);color:var(--red);letter-spacing:.12em;margin-left:auto;padding:3px 6px;font-size:10px;transform:rotate(3deg)}.intro,.game,.result{z-index:2;flex-direction:column;flex:1;align-items:center;padding:clamp(28px,6vh,56px) 24px 24px;display:flex;position:relative}.eyebrow{letter-spacing:.2em;color:#776f62;margin:0 0 15px;font-family:Georgia,serif;font-size:10px;font-weight:700}h1{letter-spacing:-.06em;align-self:stretch;margin:0;font-family:STKaiti,KaiTi,serif;font-size:clamp(45px,13vw,64px);font-weight:500;line-height:1.02}h1 em{color:var(--red);font-style:normal}.lede{text-align:center;margin:20px 0 26px;font-family:STKaiti,KaiTi,serif;font-size:17px;line-height:1.8}.how-to{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:0 0 18px;display:grid}.how-to span{border:1px solid var(--line);background:#f8f4eb;align-items:center;gap:7px;min-height:42px;padding:8px 9px;font-size:11px;font-weight:700;display:flex}.how-to b{color:#fff;background:var(--red);border-radius:50%;flex:0 0 22px;place-items:center;width:22px;height:22px;font-family:Georgia,serif;display:grid}.mini-hand{align-items:flex-end;gap:7px;height:142px;margin:22px 0 4px;display:flex;transform:rotate(-3deg)}.mini-hand i{background:#ddb09b;border:1px solid #4b443b;border-radius:18px 18px 10px 10px;width:35px;min-height:78px;position:relative}.mini-hand i:after{content:"";background:#f4e5df;border:1px solid #685f56;border-radius:14px 14px 6px 6px;height:29px;position:absolute;top:7px;left:6px;right:6px}.primary{color:#fff;background:var(--ink);cursor:pointer;width:100%;min-height:54px;box-shadow:5px 5px 0 var(--red);border:0;justify-content:space-between;align-items:center;padding:0 20px;font-weight:800;transition:transform .15s,box-shadow .15s;display:flex}.primary:active{box-shadow:1px 1px 0 var(--red);transform:translate(4px,4px)}.primary span{font-size:21px}.primary:disabled{opacity:.8}.intro-start strong{font-size:16px}.tiny,.share-hint{color:#81796d;margin:18px 0 0;font-size:11px}footer{z-index:11;text-align:center;letter-spacing:.18em;border-top:1px solid var(--line);padding:12px;font-size:10px;position:relative}.game{width:100%;padding-top:22px}.progress-row{justify-content:space-between;align-items:baseline;width:100%;font-size:12px;font-weight:800;display:flex}.progress-row b{font-family:Georgia,serif;font-size:18px}.progress-track{background:#d8d0c3;width:100%;height:4px;margin:8px 0 18px}.progress-track i{background:var(--red);height:100%;transition:width .3s;display:block}.hands-progress{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:-7px 0 10px;display:grid}.hand-group{border:1px solid var(--line);background:#f8f4eb;grid-template-columns:auto 1fr;align-items:center;gap:7px;min-width:0;height:55px;padding:5px 8px;transition:border-color .2s,background .2s,box-shadow .2s;display:grid}.hand-group.is-active{border-color:var(--ink);box-shadow:inset 0 -3px var(--red);background:#fffaf0}.hand-name{writing-mode:vertical-rl;letter-spacing:.12em;color:#746b60;font-size:10px;font-weight:900;line-height:1.15}.hand-group.is-active .hand-name{color:var(--red)}.hand-digits{justify-content:center;align-items:flex-end;gap:4px;height:42px;display:flex}.digit{background:#eadbcf;border:1px solid #999083;border-radius:8px 8px 4px 4px;width:16px;height:28px;transition:transform .2s,background .2s,border-color .2s;position:relative}.digit span{background:#fff8f2;border:1px solid #aaa095;border-radius:6px 6px 3px 3px;height:10px;position:absolute;top:3px;left:3px;right:3px}.digit-thumb{border-radius:8px 8px 5px 5px;width:19px;height:25px}.digit-index{height:34px}.digit-middle{height:39px}.digit-ring{height:35px}.digit-pinky{width:13px;height:27px}.digit.perfect,.digit.shallow,.digit.deep{border-color:#0000}.digit.perfect{background:#1f8c68}.digit.shallow{background:#e2a32e}.digit.deep{background:var(--red)}.digit.perfect span,.digit.shallow span,.digit.deep span{background:#fff8;border-color:#fff9}.digit.current{z-index:2;border:2px solid var(--red);background:#fff;animation:1s infinite digit-pulse;transform:translateY(-3px)scale(1.08)}@keyframes digit-pulse{50%{box-shadow:0 0 0 4px #e7482e20}}.playground{-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#e8e2d7,#f8f5ee);border:1px solid #aaa293;flex:1;width:100%;min-height:390px;max-height:500px;position:relative;overflow:hidden}.mobile-guide{z-index:8;color:#fff;background:var(--ink);box-shadow:3px 3px 0 var(--red);pointer-events:none;flex-direction:column;gap:4px;padding:9px 11px;font-size:11px;transition:top 80ms linear,opacity .2s,transform .2s;display:flex;position:absolute;right:12px;transform:translateY(-76px)}.mobile-guide b{color:#ffd9d1;font-size:13px}.mobile-guide.is-done{opacity:0;transform:translateY(-86px)}.finger{background:linear-gradient(90deg,#d89e87 0%,#efc7b6 48%,#d99982 100%);border:2px solid #4a423a;border-bottom:0;border-radius:63px 63px 0 0;width:126px;height:340px;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:inset 12px 0 22px #9b594e32,inset -9px 0 18px #8a4a4233}.nail{background:linear-gradient(90deg,#ead8d2,#fff5f0 50%,#d9c2bc);border:2px solid #62574e;border-radius:40px 40px 22px 22px;width:80px;height:118px;position:absolute;top:19px;left:21px;overflow:hidden}.nail i{background:linear-gradient(#fff8f4,#f3e5df);border-top:1px solid #d7bab2;width:100%;height:62px;position:absolute;bottom:0;left:0;box-shadow:inset 0 8px 10px #bb817214}.finger-thumb{border-radius:70px 70px 0 0;width:154px;height:305px}.finger-thumb .nail{border-radius:43px 43px 25px 25px;width:96px;height:108px;top:23px;left:27px}.finger-thumb .nail i{height:55px}.finger-index{border-radius:58px 58px 0 0;width:118px;height:340px}.finger-index .nail{width:76px;height:116px;left:19px}.finger-middle{border-radius:65px 65px 0 0;width:130px;height:370px}.finger-middle .nail{border-radius:42px 42px 21px 21px;width:82px;height:124px;left:22px}.finger-middle .nail i{height:66px}.finger-ring{border-radius:58px 58px 0 0;width:116px;height:330px}.finger-ring .nail{border-radius:37px 37px 19px 19px;width:74px;height:110px;top:21px;left:19px}.finger-ring .nail i{height:58px}.finger-pinky{border-radius:49px 49px 0 0;width:98px;height:285px}.finger-pinky .nail{border-radius:31px 31px 16px 16px;width:62px;height:94px;top:18px;left:16px}.finger-pinky .nail i{height:49px}.finger.hand-left{transform-origin:50% 100%;transform:translate(-50%)rotate(-1.2deg)}.finger.hand-right{transform-origin:50% 100%;background:linear-gradient(90deg,#d99982 0%,#efc7b6 52%,#d89e87 100%);transform:translate(-50%)rotate(1.2deg)}.clipper{z-index:4;cursor:grab;touch-action:none;filter:drop-shadow(3px 5px 3px #3c35252e);outline:none;width:178px;height:88px;transition:top 80ms linear,filter .15s,transform .15s;position:absolute;right:calc(50% - 153px);transform:translateY(-50%)}.clipper:before{content:"";position:absolute;inset:-20px -12px}.clipper:focus-visible{filter:drop-shadow(0 0 0 var(--red)) drop-shadow(3px 5px 3px #3c35252e)}.clipper.is-dragging{cursor:grabbing;filter:drop-shadow(5px 8px 5px #3c35254d);transform:translateY(-50%)scale(1.035)}.clipper .jaw{z-index:3;transform-origin:96px;background:linear-gradient(#f2f3ef 0%,#aeb1aa 48%,#767973 100%);border:2px solid #343431;width:106px;height:15px;position:absolute;left:0}.clipper .jaw:before{content:"";background:#d8dad5;border-left:2px solid #343431;border-radius:9px 0 0 9px;width:12px;height:7px;position:absolute;top:2px;left:-2px}.clipper .upper{border-radius:13px 3px 3px 13px;top:31px;transform:rotate(2deg)}.clipper .lower{border-radius:13px 3px 3px 13px;top:50px;transform:rotate(-2deg)}.clipper-bridge{z-index:1;background:linear-gradient(90deg,#969991 0 9px,#0000 9px);border:3px solid #343431;border-left:0;border-radius:0 26px 26px 0;width:70px;height:45px;position:absolute;top:28px;left:94px}.clipper-lever{z-index:5;transform-origin:12px;background:linear-gradient(#eceee9,#92958e);border:2px solid #343431;border-radius:3px 12px 12px 3px;width:91px;height:16px;position:absolute;top:12px;left:82px;transform:rotate(-13deg);box-shadow:inset 0 2px #ffffffa6}.clipper-lever:after{content:"";background:#65686266;border-radius:3px;width:38px;height:3px;position:absolute;top:4px;right:10px}.clipper-pin{z-index:6;background:radial-gradient(circle at 36% 32%,#fff,#a4a69f 45%,#666963 75%);border:2px solid #343431;border-radius:50%;width:15px;height:15px;position:absolute;top:30px;left:96px}.is-snipping .clipper .upper{animation:.45s both snip-upper}.is-snipping .clipper .lower{animation:.45s both snip-lower}.is-snipping .clipper-lever{animation:.45s both press-lever}@keyframes snip-upper{50%{transform:rotate(8deg)translateY(7px)}}@keyframes snip-lower{50%{transform:rotate(-8deg)translateY(-7px)}}@keyframes press-lever{50%{transform:rotate(-2deg)translateY(8px)}}.cut-flash{z-index:12;color:#fff;background:var(--ink);width:min(250px,76%);box-shadow:7px 7px 0 var(--red),0 15px 40px #17130d55;pointer-events:none;border:2px solid #fff8;justify-items:center;padding:16px 18px 14px;animation:.88s both flash-in;display:grid;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)rotate(-1deg)}.cut-flash-grade{color:#fff;background:var(--red);border:3px solid;border-radius:50%;place-items:center;width:56px;height:56px;font-family:Georgia,serif;font-size:30px;font-weight:800;display:grid;position:absolute;top:-19px;left:-16px;transform:rotate(-10deg)}.cut-flash strong{letter-spacing:-.04em;font-family:Georgia,serif;font-size:58px;line-height:.95}.cut-flash strong small{letter-spacing:0;margin-left:5px;font-family:inherit;font-size:13px}.cut-flash b{color:#ffd9d1;letter-spacing:.08em;margin-top:5px;font-size:18px}.cut-flash p{text-align:center;margin:7px 0 0;font-family:STKaiti,KaiTi,serif;font-size:14px}.cut-flash.perfect{box-shadow:7px 7px #1f8c68,0 15px 40px #17130d55}.cut-flash.perfect .cut-flash-grade{background:#1f8c68}.cut-flash.shallow{box-shadow:7px 7px #e2a32e,0 15px 40px #17130d55}.cut-flash.shallow .cut-flash-grade{background:#e2a32e}@keyframes flash-in{0%{opacity:0;transform:translate(-50%,-42%)scale(.72)rotate(4deg)}18%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-1deg)}to{opacity:0;transform:translate(-50%,-57%)scale(.96)rotate(-2deg)}}.feedback{text-align:center;min-height:25px;margin:14px 0 8px;font-family:STKaiti,KaiTi,serif;font-size:16px}.feedback.pop{color:var(--red);animation:.4s pop}@keyframes pop{50%{transform:scale(1.08)rotate(-1deg)}}.result{padding-top:24px}.report-card{border:2px solid var(--ink);width:100%;box-shadow:7px 7px 0 var(--red);background:#f8f3e9;padding:20px}.report-head{border-bottom:1px solid var(--ink);letter-spacing:.08em;justify-content:space-between;padding-bottom:12px;font-size:11px;font-weight:800;display:flex}.report-head b{font-family:Georgia,serif}.score{justify-content:center;align-items:flex-end;margin:15px 0 0;display:flex}.score strong{letter-spacing:-.08em;font-family:Georgia,serif;font-size:86px;font-weight:400;line-height:1}.score span{margin:0 0 10px 8px;font-size:12px}.score span small{color:#7d7569;white-space:nowrap;margin-top:4px;font-size:9px;display:block}.rank{text-align:center;color:#7d7569;letter-spacing:.2em;margin:10px 0 2px;font-size:10px}.report-card h2{text-align:center;color:var(--red);margin:0 0 17px;font-family:STKaiti,KaiTi,serif;font-size:29px}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0}.stats div{justify-content:space-between;padding:5px 2px;font-size:12px;display:flex}.stats b{font-weight:800}.touch-certified{color:var(--red);text-align:center;margin:13px 0 0;font-family:STKaiti,KaiTi,serif;font-size:17px;font-weight:700}.disclaimer{text-align:center;letter-spacing:.08em;margin:14px 0 0;font-size:9px}.result-actions{grid-template-columns:1fr 100px;gap:10px;width:100%;margin-top:24px;display:grid}.secondary{border:1px solid var(--ink);cursor:pointer;background:0 0;font-weight:700}@media (max-width:520px){.topbar{min-height:54px;padding:10px 14px}.brand-mark{width:32px;height:32px}.intro{min-height:calc(100svh - 91px);padding:16px 18px max(12px,env(safe-area-inset-bottom))}.intro .eyebrow{margin-bottom:8px}h1{font-size:clamp(38px,11.5vw,52px);line-height:1}.mini-hand{gap:5px;height:94px;margin:10px 0 0}.mini-hand i{border-radius:14px 14px 8px 8px;width:28px;min-height:52px}.mini-hand i:after{height:23px;top:5px;left:5px;right:5px}.lede{margin:9px 0 12px;font-size:15px;line-height:1.55}.how-to{margin-bottom:12px}.how-to span{min-height:38px;padding:6px 7px;font-size:10px}.intro-start{min-height:58px;box-shadow:5px 5px 0 var(--red)}.mobile-ready{margin-top:10px}.game{min-height:0;padding:12px 14px max(10px,env(safe-area-inset-bottom))}.progress-track{margin-bottom:10px}.hands-progress{margin-top:-3px;margin-bottom:8px}.hand-group{gap:5px;height:50px;padding:4px 6px}.hand-digits{gap:3px;height:38px;transform:scale(.92)}.playground{flex:0 390px;min-height:250px}.feedback{margin:9px 0 6px;font-size:15px}footer{padding:9px}}@media (max-height:720px){.topbar{min-height:54px;padding:9px 16px}.game{padding-top:9px}.playground{min-height:260px}.finger{height:285px}.result{padding-top:14px}.score strong{font-size:68px}.report-card{padding:15px}}@media (max-height:600px){.intro .mini-hand{display:none}.intro{padding-top:12px}.playground{min-height:220px}.finger{height:250px}.feedback{margin:5px 0}.cut-history{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
