:root{--paper:#f5f1e8;--paper-deep:#ece7db;--card:#eeece6;--ink:#1b1b1b;--ink-soft:#6c6a64;--ink-faint:#a09d95;--rule:#1b1b1b24;--seal:#c0392b;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--spring:cubic-bezier(.2, .9, .3, 1.08);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-weight:400}body{touch-action:manipulation;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#app{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0}button:focus-visible{outline:1.5px solid var(--seal);outline-offset:3px}[tabindex]:focus-visible{outline:1.5px solid var(--seal);outline-offset:3px}svg{display:block}.screen{padding:calc(var(--sat) + 12px) calc(var(--sar) + 20px) calc(var(--sab) + 16px) calc(var(--sal) + 20px);background:var(--paper);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow:hidden auto}.label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:500}.title{letter-spacing:.02em;font-size:28px;font-weight:300}.quiet{color:var(--ink-soft);font-size:14px;font-weight:300;line-height:1.45}.hairline{background:var(--rule);height:1px}.seal{color:var(--seal)}.splash{text-align:center;justify-content:center;align-items:center;gap:14px}.splash .mark{width:72px;height:72px}.splash .name{letter-spacing:.42em;text-transform:uppercase;padding-left:.42em;font-size:15px;font-weight:400}.splash .line{opacity:0;font-size:22px;font-weight:300;transition:opacity .5s,transform .5s;transform:translateY(6px)}.splash .line.in{opacity:1;transform:none}.fade-in{animation:.6s both fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.topbar{flex:none;justify-content:space-between;align-items:center;height:44px;display:flex}.topbar .brand{letter-spacing:.34em;text-transform:uppercase;padding-left:.34em;font-size:12px;font-weight:500}.chip{border:1px solid var(--rule);height:30px;color:var(--ink);letter-spacing:.02em;white-space:nowrap;border-radius:15px;align-items:center;gap:8px;padding:0 12px 0 8px;font-size:12px;display:inline-flex}.chip .sw{border:1px solid #0000002e;border-radius:3px;width:14px;height:14px}.iconbtn{width:40px;height:40px;color:var(--ink-soft);border-radius:20px;justify-content:center;align-items:center;display:inline-flex}.iconbtn svg{width:20px;height:20px}.picker h1{letter-spacing:.01em;margin:18px 0 4px;font-size:22px;font-weight:300}.picker .sub{margin-bottom:18px}.grid2{grid-template-columns:1fr 1fr;gap:12px;padding-bottom:20px;display:grid}.pcard{background:var(--card);text-align:left;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:stretch;gap:8px;min-height:150px;padding:12px 12px 10px;transition:transform .16s,border-color .16s;display:flex}.pcard:active{transform:scale(.97)}.pcard.selected{border-color:var(--ink)}.pcard .pname{font-size:14px;font-weight:400;line-height:1.25}.pcard .pdim{color:var(--ink-soft);letter-spacing:.04em;font-size:11px}.pcard svg{width:100%;height:86px}.pcard .pp-phone{fill:none;stroke:var(--ink-faint);stroke-width:1px}.pcard .pp-sheet{fill:#fff;stroke:var(--ink);stroke-width:1.2px}.pcard .pp-sheet.rect{fill:#fff}.swatches{grid-template-columns:repeat(3,1fr);gap:14px;padding:6px 0 20px;display:grid}.swatch{border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:10px 0;display:flex}.swatch .dot{border:1px solid #00000024;border-radius:12px;width:58px;height:58px;box-shadow:inset 0 0 0 1px #fff6}.swatch span{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.swatch:active .dot{transform:scale(.95)}.sizenote{padding:16px 0 6px;font-size:18px;font-weight:300;line-height:1.4}.sizenote .warn{color:var(--ink-soft);margin-top:10px;font-size:13px;display:block}.primary{border:1px solid var(--ink);letter-spacing:.16em;text-transform:uppercase;border-radius:25px;width:100%;height:50px;margin-top:18px;font-size:14px;display:block}.primary.filled{background:var(--ink);color:var(--paper)}.primary:active{transform:scale(.98)}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.custom-size{padding:8px 0 16px}.custom-size .cm{margin-bottom:8px;font-size:20px;font-weight:300}.custom-size input[type=range]{width:100%;accent-color:var(--ink)}.home .path{padding:8px 0 40px}.level{padding:22px 0 22px 28px;position:relative}.level:before{content:"";border-left:1px dashed var(--rule);position:absolute;top:0;bottom:0;left:7px}.level .node{border:1px solid var(--ink);background:var(--paper);border-radius:50%;width:15px;height:15px;position:absolute;top:27px;left:0}.level.done .node{background:var(--seal);border-color:var(--seal)}.level.locked{opacity:.42}.level .lname{align-items:center;gap:8px;font-size:18px;font-weight:300;display:flex}.level .lname .lock{width:12px;height:12px}.level .moves{color:var(--ink-soft);letter-spacing:.02em;margin:4px 0 14px;font-size:12px;line-height:1.4}.mrow{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mcard{background:var(--card);border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px 6px 10px;transition:transform .16s;display:flex;position:relative}.mcard:active{transform:scale(.96)}.mcard svg.thumb{width:100%;height:64px}.mcard .mname{letter-spacing:.04em;font-size:12px}.mcard .stamp{width:22px;height:22px;position:absolute;top:6px;right:6px}.mcard .resume{color:var(--ink-faint);letter-spacing:.06em;margin-top:-4px;font-size:10px}.level.locked .mcard{pointer-events:none}.scrim{opacity:0;background:#1b1b1b47;transition:opacity .22s;position:absolute;top:0;bottom:0;left:0;right:0}.scrim.in{opacity:1}.sheet{background:var(--paper);padding:18px 22px calc(var(--sab) + 22px);transition:transform .28s var(--spring);border-radius:18px 18px 0 0;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 30px #00000014}.sheet.in{transform:none}.sheet .handle{background:var(--rule);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.sheet h2{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:12px;font-weight:500}.srow{border-top:1px solid var(--rule);text-align:left;justify-content:space-between;align-items:center;width:100%;min-height:50px;font-size:15px;font-weight:300;display:flex}.srow:last-child{border-bottom:1px solid var(--rule)}.srow .val{color:var(--ink-soft);font-size:13px}.srow.danger{color:var(--seal)}.hint{align-items:center;gap:12px;display:flex}.hint p{flex:1;font-size:14px;font-weight:300;line-height:1.4}.hint .ico{flex:none;width:22px;height:22px}.confirm{gap:12px;margin-top:16px;display:flex}.confirm button{border:1px solid var(--ink);letter-spacing:.14em;text-transform:uppercase;border-radius:22px;flex:1;height:44px;font-size:13px}.confirm button.danger{border-color:var(--seal);color:var(--seal)}.stepscreen{touch-action:none;padding:0;overflow:hidden}.counter{top:calc(var(--sat) + 14px);left:calc(var(--sal) + 20px);letter-spacing:.12em;font-variant-numeric:tabular-nums;z-index:2;font-size:12px;position:absolute}.mtitle{top:calc(var(--sat) + 14px);right:calc(var(--sar) + 20px);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);z-index:2;font-size:11px;position:absolute}.deck{will-change:transform;position:absolute;top:0;bottom:0;left:0;right:0}.deck.snap{transition:transform .26s var(--spring)}.card{top:calc(var(--sat) + 46px);bottom:calc(var(--sab) + 24px);left:calc(var(--sal) + 16px);right:calc(var(--sar) + 16px);background:var(--card);will-change:transform;border-radius:18px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.card .diagram{flex:1;min-height:0;padding:14px 10px 4px}.card .diagram svg{width:100%;height:100%}.card .text{text-align:center;flex:none;min-height:84px;padding:6px 20px 22px;font-size:19px;font-weight:300;line-height:1.35}.card .text .tap{color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;margin-top:8px;font-size:12px;display:block}.card .text .credit{color:var(--ink-soft);margin-top:6px;font-size:12px;display:block}.card.lesson{background:var(--paper-deep)}.card.lesson .label{text-align:center;padding-top:18px}.card.finish{text-align:center;justify-content:center;align-items:center;gap:10px;padding:24px}.card.finish svg.big{width:60%;height:42%}.card.finish .fname{font-size:26px;font-weight:300}.card.finish .next{color:var(--ink-soft);letter-spacing:.04em;margin-top:12px;font-size:14px}.card.finish .stampwrap{width:84px;height:84px;margin-top:6px}.card.finish .stampwrap svg{opacity:0;width:100%;height:100%;transform:scale(2.2)rotate(-18deg)}.card.finish .stampwrap.land svg{animation:.52s cubic-bezier(.2,.9,.3,1.2) .22s both stampland}@keyframes stampland{0%{opacity:0;transform:scale(2.2)rotate(-18deg)}60%{opacity:1}to{opacity:1;transform:scale(1)rotate(-8deg)}}.card.ask{text-align:center;justify-content:center;align-items:center;gap:14px;padding:24px}.card.ask .q{font-size:24px;font-weight:300}.card.ask .choices{gap:12px;width:100%;max-width:300px;margin-top:10px;display:flex}.card.ask .choices button{border:1px solid var(--ink);letter-spacing:.16em;text-transform:uppercase;border-radius:25px;flex:1;height:50px;font-size:13px}.card.ask .choices button.filled{background:var(--ink);color:var(--paper)}.paper .edge{stroke:var(--ink);stroke-width:1.7px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.paper .crease{stroke:#1b1b1b6b;stroke-width:.8px;vector-effect:non-scaling-stroke}.symbols{transition:opacity .2s}.symbols.faded{opacity:.25}.symbols .valley{stroke:var(--ink);stroke-width:2.2px;stroke-dasharray:7 5;stroke-linecap:round;vector-effect:non-scaling-stroke}.symbols .mountain{stroke:var(--seal);stroke-width:2.2px;stroke-dasharray:8 4 1.5 4;stroke-linecap:round;vector-effect:non-scaling-stroke}.symbols .hidden{stroke:var(--ink);stroke-width:1.2px;stroke-dasharray:1 3;stroke-linecap:round;vector-effect:non-scaling-stroke;fill:none}.symbols .cut{stroke:var(--ink);stroke-width:1.4px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.symbols .arrow{stroke:var(--ink);stroke-width:2.4px;fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.symbols .arrow.dashed{stroke-dasharray:4 3}.symbols .arrow-head{fill:var(--ink);stroke:var(--ink);stroke-width:1.2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.symbols .arrow-head.hollow{fill:var(--card)}.symbols .dot{fill:var(--seal)}.sym-label{font-size:5px;font-family:var(--font);fill:var(--ink-soft);letter-spacing:.04em}.sym-label.small{font-size:3.2px}.inset-bg{fill:var(--paper);stroke:var(--rule);stroke-width:.6px;vector-effect:non-scaling-stroke}.swipehint{left:50%;bottom:calc(var(--sab) + 120px);pointer-events:none;z-index:3;opacity:.85;width:120px;height:60px;margin-left:-60px;position:absolute}.swipehint .hand{transform-origin:50%;animation:1.8s ease-in-out infinite swipehand}@keyframes swipehand{0%{opacity:0;transform:translate(34px)}20%{opacity:1}70%{opacity:1;transform:translate(-34px)}to{opacity:0;transform:translate(-40px)}}.gridview{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;height:100%;padding:16px;display:grid;overflow:auto}.gridview .cell{background:var(--card);border-radius:10px;padding:8px}.gridview .cell svg{width:100%;height:190px}.gridview .cell p{text-align:center;padding:6px 0 2px;font-size:12px}@media (prefers-reduced-motion:reduce){.deck.snap,.sheet,.scrim{transition-duration:1ms}.swipehint .hand{animation-duration:3.6s}.card.finish .stampwrap.land svg,.fade-in{animation-duration:1ms}}.pcard .pp-handle{cursor:ew-resize}
/*$vite$:1*/