@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#16181b;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f8fa;font-family:Bricolage Grotesque Variable,PingFang SC,sans-serif}*{box-sizing:border-box}html{background:#f7f8fa;min-width:320px}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body.calibrating-wallpaper{overflow:hidden}button,a{font:inherit}button{color:inherit}.repair-app{background:#f7f8fa;min-height:100vh}.topbar{background:#ffffffeb;border-bottom:1px solid #e1e5e9;justify-content:space-between;align-items:center;height:64px;padding:0 max(24px,50vw - 580px);display:flex}.brand{color:#17191c;letter-spacing:-.02em;align-items:center;gap:10px;font-size:16px;font-weight:720;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:#f06d50;border-radius:10px;place-items:center;width:32px;height:32px;font-size:13px;display:grid}.reset-button{color:#6d747c;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:8px 0;font-size:14px;display:inline-flex}.reset-button:hover{color:#17191c}.workbench{grid-template-columns:350px minmax(0,1fr);width:min(1160px,100%);min-height:calc(100vh - 64px);margin:0 auto;display:grid}.control-panel{border-right:1px solid #e1e5e9;padding:clamp(84px,12vh,132px) 44px 48px 24px}.control-panel h1{letter-spacing:-.065em;margin:0;font-size:clamp(52px,5vw,68px);font-weight:720;line-height:.98}.lede{color:#69717a;margin:24px 0 36px;font-size:16px;line-height:1.65}.export-button{color:#fff;cursor:pointer;background:#191b1f;border:0;border-radius:14px;justify-content:center;align-items:center;gap:9px;width:min(100%,280px);height:54px;font-size:15px;font-weight:680;text-decoration:none;transition:transform .15s,background .15s;display:flex}.export-button:hover:not(:disabled){background:#30343a;transform:translateY(-1px)}.export-button:disabled{cursor:wait;opacity:.62}.export-message{color:#737b84;min-height:18px;margin:12px 0 0;font-size:12px}.export-message.state-done{color:#2d7543}.export-message.state-error{color:#b33c32}.preview-stage{background:#edf0f3;place-items:center;min-height:calc(100vh - 64px);padding:28px 40px 36px;display:grid;position:relative}.calibrate-button,.exit-calibration-button{cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;font-weight:680;display:inline-flex}.calibrate-button{z-index:20;color:#343a40;background:#ffffffe6;border:1px solid #1b1f231a;border-radius:12px;height:40px;padding:0 14px;font-size:13px;position:absolute;top:22px;right:28px;box-shadow:0 7px 22px #1e242a14}.calibrate-button:hover{background:#fff}.phone-frame{background:#202226;border:1px solid #121315;border-radius:52px;width:360px;padding:8px;position:relative;box-shadow:0 28px 65px #1c22282e}.phone-frame:before{content:"";z-index:10;background:#1b1d20;border-radius:18px;width:91px;height:25px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.phone-screen{width:100%;height:auto;aspect-ratio:var(--preview-aspect,.461659);cursor:crosshair;touch-action:none;isolation:isolate;background:#e7eaed;border-radius:43px;outline:none;position:relative;overflow:hidden}.phone-screen:focus-visible{box-shadow:inset 0 0 0 4px #f06d50}.wallpaper-environment{z-index:0;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.cat-worker{z-index:4;width:var(--cat-width);transform:translate(var(--shift-x), var(--shift-y));pointer-events:none;position:absolute}.rope-extension{z-index:3;transform-origin:50% 0;pointer-events:none;filter:drop-shadow(1px 2px 1px #10121433);background-position:top;background-repeat:no-repeat;background-size:100% 100%;min-width:2px;position:absolute;top:0}.cat-motion-media{-webkit-user-select:none;user-select:none;transform-origin:50%;width:100%;height:auto;display:block}.cat-motion-poster.is-hidden{opacity:0}.cat-motion-frame,.cat-motion-video{position:absolute;inset:0}.cat-motion-video{object-fit:fill;background:0 0}.cat-worker[data-flipped=true] .cat-motion-media{transform:scaleX(-1)}.impact-vfx{z-index:7;aspect-ratio:1;width:56%;transform:translate(calc(-1 * var(--vfx-origin-x)), calc(-1 * var(--vfx-origin-y)));pointer-events:none;position:absolute}.impact-vfx-sprite{transform:rotate(var(--vfx-angle));transform-origin:var(--vfx-origin-x) var(--vfx-origin-y);filter:saturate(.82)drop-shadow(0 0 3px #fff4d3d6)drop-shadow(0 0 8px #ffde933d);background-image:url(/assets/vfx/drill-sparks-preview-v2.webp);background-repeat:no-repeat;background-size:600% 500%;position:absolute;inset:0}.exit-calibration-button{z-index:30;top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#14171abd;border-radius:999px;height:42px;padding:0 15px;font-size:14px;position:absolute;box-shadow:0 5px 18px #0003}.repair-app.is-calibrating{z-index:9999;background:#e7eaed;width:100vw;height:100dvh;min-height:0;position:fixed;inset:0}.repair-app.is-calibrating .topbar,.repair-app.is-calibrating .control-panel{display:none}.repair-app.is-calibrating .workbench,.repair-app.is-calibrating .preview-stage,.repair-app.is-calibrating .phone-frame,.repair-app.is-calibrating .phone-screen{width:100%;height:100%;min-height:0}.repair-app.is-calibrating .workbench{margin:0;display:block}.repair-app.is-calibrating .preview-stage{padding:0;display:block;position:absolute;inset:0}.repair-app.is-calibrating .phone-frame{aspect-ratio:auto;box-shadow:none;border:0;border-radius:0;padding:0}.repair-app.is-calibrating .phone-frame:before,.repair-app.is-calibrating .home-bar{display:none}.repair-app.is-calibrating .phone-screen{border-radius:0}.screen-prompt{z-index:9;color:#3f464d;white-space:nowrap;background:#ffffffdb;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:650;position:absolute;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #21272d1a}.home-bar{z-index:9;background:#1c2024ad;border-radius:4px;width:92px;height:4px;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}@media (width<=820px){.workbench{grid-template-columns:1fr}.control-panel{text-align:center;border-bottom:1px solid #e1e5e9;border-right:0;padding:34px 24px 28px}.control-panel h1{font-size:46px}.control-panel h1 br{display:none}.lede{margin:12px 0 22px}.export-button,.export-message{margin-left:auto;margin-right:auto}.preview-stage{min-height:auto;padding:28px 20px 42px}.calibrate-button{top:18px;right:18px}}@media (width<=520px){.topbar{height:54px;padding:0 16px}.brand{font-size:15px}.brand-mark{border-radius:9px;width:29px;height:29px}.reset-button{font-size:0}.workbench{min-height:calc(100vh - 54px)}.control-panel{padding:22px 18px 20px}.control-panel h1{letter-spacing:-.045em;font-size:34px}.lede{margin:7px 0 15px;font-size:14px}.export-button{border-radius:12px;width:min(100%,260px);height:46px;font-size:14px}.preview-stage{padding:70px 18px 34px}.calibrate-button{top:16px;right:16px}.phone-frame{border-radius:44px;width:min(280px,100vw - 42px)}.phone-screen{border-radius:36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
