:root{--paper: #f7f4ec;--paper-2: #fffdf7;--desk: #e7e1d2;--ink: #1a1a1a;--ink-soft: #46423a;--muted: #857f70;--muted-2: #b6b0a0;--rule: #e3ddcd;--rule-2: #d6cfbd;--red: #d2362f;--red-ink: #c0322b;--red-soft: rgba(210, 54, 47, .09);--green: #2e7d52;--serif: "Fraunces", Georgia, "Times New Roman", serif;--ui: "Space Grotesk", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--marker: "Caveat", "Comic Sans MS", cursive;--shadow: 0 1px 2px rgba(40, 34, 20, .05), 0 10px 34px rgba(40, 34, 20, .07);--radius: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--desk);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100dvh}.app{max-width:540px;margin:0 auto;min-height:100dvh;background:var(--paper);position:relative}.screen{padding:22px 20px calc(36px + env(safe-area-inset-bottom));min-height:100dvh;display:flex;flex-direction:column;animation:fadein .4s ease both}.center{align-items:center;justify-content:center}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.wordmark{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;font-size:clamp(38px,9vw,46px);display:inline-block}.wordmark.sm{font-size:28px}.wordmark.loading{opacity:.5;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:1}}.load-msg{font-size:15px;color:var(--muted);text-align:center;max-width:280px}.btn{font-family:var(--ui);font-weight:600;font-size:16px;border:none;border-radius:999px;padding:15px 22px;cursor:pointer;transition:transform .12s ease,background .18s ease,box-shadow .18s ease,opacity .18s;background:var(--paper-2);color:var(--ink)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--ink);color:var(--paper)}.btn-ghost{background:transparent;border:1.5px solid var(--rule-2);color:var(--ink)}.btn-linkedin{background:#0a66c2;color:#fff}.btn-block{width:100%}.btn-continue{margin-top:auto;background:transparent;border:1.5px solid var(--rule-2)}.onboarding{justify-content:space-between;max-width:620px;margin:0 auto;width:100%}.ob-top{padding-top:44px}.ob-tag{font-size:clamp(17px,4.4vw,20px);line-height:1.5;color:var(--ink-soft);max-width:440px;margin:18px 0 0}.ob-q{font-family:var(--serif);font-weight:500;font-size:clamp(28px,6.5vw,36px);letter-spacing:-.01em;margin:0 0 6px}.ob-sub{color:var(--muted);font-family:var(--marker);font-size:22px;margin:0 0 22px}.ob-levels{display:flex;flex-direction:column;gap:12px}.ob-level{text-align:left;background:var(--paper-2);border:1.5px solid var(--rule);border-radius:var(--radius);padding:18px 20px;cursor:pointer;transition:transform .12s ease,border-color .18s,box-shadow .18s;box-shadow:var(--shadow)}.ob-level:active{transform:scale(.98)}.ob-level:hover{border-color:var(--ink)}.ob-level-label{display:block;font-family:var(--serif);font-size:22px;font-weight:600}.ob-level-note{display:block;color:var(--muted);font-size:14px;margin-top:3px}.home{max-width:980px;margin:0 auto;width:100%}.home-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.home-head-right{display:flex;align-items:center;gap:12px}.sound-btn{background:none;border:none;color:var(--muted-2);font-size:18px;cursor:pointer;padding:4px}.sound-btn.on{color:var(--ink)}.streak-pill{display:inline-flex;align-items:baseline;gap:5px;background:var(--ink);color:var(--paper);border-radius:999px;padding:7px 14px}.streak-num{font-weight:700;font-size:16px}.streak-word{font-size:12px;opacity:.75}.home-cols{display:flex;flex-direction:column;gap:4px}.today-card{background:var(--paper-2);border:1.5px solid var(--rule);border-radius:22px;padding:26px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.today-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red)}.today-card.is-done:before{background:var(--green)}.today-date{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.today-theme{font-family:var(--serif);font-weight:600;font-size:clamp(27px,6vw,34px);line-height:1.1;letter-spacing:-.015em;margin:8px 0}.today-objective{color:var(--ink-soft);font-size:15px;line-height:1.45;margin:0 0 20px}.today-done{display:flex;flex-direction:column;gap:10px}.done-check{color:var(--green);font-weight:600;font-size:15px}.rank-strip{margin:16px 0 4px;padding:14px 16px;border:1.5px solid var(--rule);border-radius:14px;background:var(--paper-2)}.rank-strip-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}.rank-strip-label{font-family:var(--marker);font-size:26px;font-weight:700;line-height:.9;color:var(--ink)}.rank-strip-next{font-size:12px;color:var(--muted)}.rank-bar{height:6px;background:var(--rule);border-radius:999px;overflow:hidden}.rank-bar-fill{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .7s cubic-bezier(.2,.7,.2,1)}.stat-strip{display:flex;margin:14px 0 8px;border:1.5px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--paper-2)}.stat{flex:1;text-align:center;padding:14px 6px}.stat+.stat{border-left:1.5px solid var(--rule)}.stat-num{display:block;font-family:var(--serif);font-weight:600;font-size:26px}.stat-of{color:var(--muted-2);font-size:16px}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.section-title{font-family:var(--marker);font-size:24px;font-weight:700;color:var(--ink);margin:8px 0 12px}.home-col-b .section-title{margin-top:0}.units{display:flex;flex-direction:column;gap:10px}.unit-row{text-align:left;background:var(--paper-2);border:1.5px solid var(--rule);border-radius:14px;padding:15px 17px;cursor:pointer;transition:transform .12s,border-color .18s}.unit-row:active{transform:scale(.99)}.unit-row.current{border-color:var(--ink)}.unit-row.complete{background:transparent}.unit-row-top{display:flex;align-items:center;gap:10px}.unit-order{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--rule-2);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted)}.unit-row.complete .unit-order{background:var(--green);border-color:var(--green);color:#fff}.unit-row.current .unit-order{border-color:var(--ink);color:var(--ink)}.unit-name{font-family:var(--serif);font-weight:600;font-size:16.5px;flex:1}.unit-badge{font-family:var(--marker);font-size:16px;font-weight:700;background:var(--ink);color:var(--paper);border-radius:999px;padding:1px 11px;transform:rotate(-2deg)}.unit-blurb{color:var(--muted);font-size:13px;margin:7px 0 11px;line-height:1.4}.unit-bar{height:4px;background:var(--rule);border-radius:999px;overflow:hidden}.unit-bar-fill{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .5s ease}.unit-row.complete .unit-bar-fill{background:var(--green)}.archive{margin-top:22px}.archive-toggle{background:none;border:none;color:var(--ink-soft);font-family:var(--ui);font-weight:600;font-size:14px;cursor:pointer;padding:6px 0}.archive-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}.archive-note{font-size:12.5px;color:var(--muted);margin:0 0 6px}.archive-day{display:flex;justify-content:space-between;align-items:center;background:var(--paper-2);border:1.5px solid var(--rule);border-radius:12px;padding:13px 16px;font-family:var(--ui);font-size:14px;cursor:pointer;color:var(--ink)}.archive-go{color:var(--red);font-weight:600}.home-foot{margin-top:28px;font-size:12px;color:var(--muted-2);line-height:1.5}.session-top{display:flex;align-items:center;gap:12px;margin:0 auto 26px;width:100%;max-width:660px}.link-quit{background:none;border:none;color:var(--muted-2);font-size:18px;cursor:pointer;padding:2px 6px;line-height:1}.progress-dots{display:flex;gap:6px;flex:1}.dot{height:4px;flex:1;background:var(--rule);border-radius:999px;transition:background .3s}.dot.done{background:var(--ink)}.dot.active{background:var(--red)}.practice-tag{font-family:var(--marker);font-size:17px;font-weight:700;color:var(--muted);transform:rotate(-3deg)}.session-body{flex:1;display:flex;flex-direction:column;width:100%;max-width:660px;margin:0 auto;position:relative;animation:slidein .32s ease both}@keyframes slidein{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.item-type{font-family:var(--marker);font-size:21px;font-weight:700;letter-spacing:0;color:var(--red);transform:rotate(-1.5deg)}.pips{display:inline-flex;gap:4px}.pip{width:6px;height:6px;border-radius:50%;background:var(--rule-2)}.pip.on{background:var(--ink)}.item-setup{font-family:var(--serif);font-weight:500;font-size:clamp(22px,5vw,27px);line-height:1.28;letter-spacing:-.01em;margin:0 0 26px}.point-pop{position:absolute;top:-6px;right:4px;font-family:var(--marker);font-weight:700;font-size:34px;color:var(--green);pointer-events:none;animation:pop .9s ease-out forwards}@keyframes pop{0%{opacity:0;transform:translateY(8px) rotate(-4deg) scale(.8)}25%{opacity:1;transform:translateY(0) rotate(-4deg) scale(1.1)}to{opacity:0;transform:translateY(-26px) rotate(-4deg) scale(1)}}.specimen{font-family:var(--serif);font-size:clamp(24px,5.4vw,30px);line-height:1.32;letter-spacing:-.01em;margin:0 0 26px;padding-left:18px;border-left:3px solid var(--rule-2);color:var(--ink)}.choice-list{display:flex;flex-direction:column;gap:12px}.choice-opt{position:relative;text-align:left;background:var(--paper-2);border:2px solid var(--rule-2);border-radius:14px;padding:18px 50px 18px 20px;cursor:pointer;transition:transform .12s,border-color .18s,background .18s,box-shadow .18s;font-family:var(--serif);box-shadow:0 2px 0 var(--rule-2)}.choice-opt.as-label{font-family:var(--ui);font-weight:600}.choice-opt:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 var(--rule-2)}.choice-opt:hover:not(:disabled){border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.choice-text{font-size:clamp(17px,4.4vw,19px);line-height:1.32}.as-label .choice-text{font-size:17px}.choice-opt.is-correct{border-color:var(--green);background:#2e7d5212;box-shadow:0 2px 0 var(--green)}.choice-opt.is-wrong{border-color:var(--red);background:var(--red-soft);box-shadow:0 2px 0 var(--red)}.choice-opt.is-dim{opacity:.45;box-shadow:none}.tokens{font-family:var(--serif);font-size:clamp(23px,5.4vw,28px);line-height:2.15;letter-spacing:-.01em;margin:4px 0 24px}.tok{position:relative;cursor:pointer;padding:4px 9px;margin:0 3px 4px 0;border-radius:8px;border:1.5px solid var(--rule-2);background:var(--paper-2);transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-block;box-shadow:0 1.5px 0 var(--rule-2)}.tok:hover{border-color:var(--ink);box-shadow:0 1.5px 0 var(--ink)}.tok:active{transform:translateY(1.5px);box-shadow:none}.tok-punct{padding-left:5px;padding-right:5px;margin-left:-2px}.tok-wrong,.tok-circled{color:var(--red);border-color:var(--red);background:var(--red-soft)}.tok-struck{color:var(--muted-2);border-style:dashed;border-color:var(--red);background:transparent;box-shadow:none;text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:2px}.tok-should-cut{color:var(--muted-2);opacity:.6;border-color:transparent;background:transparent;box-shadow:none;text-decoration:line-through;text-decoration-color:var(--muted-2)}.cut-confirm{align-self:flex-start}.order{display:flex;flex-direction:column;gap:18px}.order-slots{min-height:72px;border-bottom:2px solid var(--rule-2);padding:10px 4px 14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;transition:border-color .2s}.order-slots.is-correct{border-color:var(--green)}.order-slots.is-wrong{border-color:var(--red)}.order-ghost{color:var(--muted-2);font-family:var(--marker);font-size:20px}.order-bank{display:flex;flex-wrap:wrap;gap:8px;min-height:50px}.chunk{font-family:var(--serif);font-size:clamp(19px,4.6vw,22px);background:var(--paper-2);border:2px solid var(--rule-2);border-radius:10px;padding:9px 15px;cursor:pointer;transition:transform .1s,border-color .15s,background .15s,box-shadow .15s;box-shadow:0 2px 0 var(--rule-2)}.chunk:hover:not(:disabled){border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.chunk:active:not(:disabled){transform:translateY(2px);box-shadow:none}.chunk.placed{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 2px #000}.mark-circle{position:absolute;left:-9%;top:-26%;width:118%;height:156%;pointer-events:none;overflow:visible}.mark-circle path{fill:none;stroke:var(--red);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:360;stroke-dashoffset:360;animation:draw .5s ease forwards}.choice-opt .mark-tick,.choice-opt .mark-cross{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:24px;height:24px}.mark-tick path{fill:none;stroke:var(--green);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:46;stroke-dashoffset:46;animation:draw .34s ease forwards}.mark-cross{width:20px;height:20px}.mark-cross path{fill:none;stroke:var(--red);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:26;stroke-dashoffset:26;animation:draw .26s ease forwards}.tok .mark-cross{position:absolute;right:-7px;top:-12px;width:16px;height:16px}.mark-underline{display:block;width:100%;height:.36em;margin-top:-.1em;overflow:visible}.mark-underline path{fill:none;stroke:var(--red);stroke-width:3;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:320;animation:draw .6s ease .15s forwards}@keyframes draw{to{stroke-dashoffset:0}}.reveal-wrap{margin-top:26px;animation:fadein .35s ease both}.reveal{border-top:2px solid var(--ink);padding-top:16px;margin-bottom:16px}.reveal-wrong{border-color:var(--red)}.reveal-correct{border-color:var(--green)}.reveal-verdict{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.reveal-stamp{font-family:var(--marker);font-weight:700;font-size:28px;line-height:1;transform:rotate(-3deg)}.reveal-correct .reveal-stamp{color:var(--green)}.reveal-wrong .reveal-stamp{color:var(--red)}.reveal-prov{font-size:12.5px;color:var(--muted);text-align:right;font-style:italic}.reveal-result{font-family:var(--serif);font-size:21px;line-height:1.3;margin:6px 0 12px}.reveal-result-label{display:inline-block;font-family:var(--marker);font-size:18px;font-weight:700;color:var(--red);margin-right:6px;transform:rotate(-2deg)}.reveal-lesson{font-size:16.5px;line-height:1.55;color:var(--ink-soft);margin:0}.reveal-story{margin-top:14px;border-top:1px dashed var(--rule-2);padding-top:10px}.story-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:4px 0;color:var(--ink)}.story-toggle-label{font-family:var(--marker);font-size:21px;font-weight:700;color:var(--red)}.story-toggle-icon{font-size:20px;color:var(--muted)}.story-body{font-family:var(--serif);font-size:16.5px;line-height:1.62;color:var(--ink);margin:6px 0 4px;animation:fadein .3s ease both}.summary-inner{width:100%;max-width:600px;margin:0 auto;display:flex;flex-direction:column;flex:1}.summary-kicker{font-family:var(--marker);font-size:24px;font-weight:600;color:var(--muted);margin:14px 0 4px;transform:rotate(-1.5deg);align-self:flex-start}.archetype{margin-bottom:22px}.arch-name{font-family:var(--serif);font-weight:600;font-size:clamp(40px,11vw,58px);line-height:1.02;letter-spacing:-.02em;margin:0;display:inline-block}.arch-line{font-family:var(--serif);font-style:italic;font-size:clamp(18px,4.6vw,21px);line-height:1.4;color:var(--ink-soft);margin:14px 0 0}.score-strip{display:flex;gap:12px;margin-bottom:16px}.score-block,.points-block{flex:1;background:var(--paper-2);border:1.5px solid var(--rule);border-radius:14px;padding:16px;text-align:center}.score-row{display:block;font-size:24px;letter-spacing:.16em;color:var(--ink)}.points-gain{display:block;font-family:var(--serif);font-weight:600;font-size:34px;color:var(--green);line-height:1}.score-sub{font-size:12px;color:var(--muted);margin-top:4px;display:block}.rank-card{background:var(--paper-2);border:1.5px solid var(--rule);border-radius:14px;padding:16px;margin-bottom:16px}.rank-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}.rank-label{font-family:var(--marker);font-weight:700;font-size:26px;line-height:.9}.rank-next{font-size:12px;color:var(--muted)}.rank-total{font-size:11.5px;color:var(--muted);margin-top:8px;display:block;text-align:right}.summary-streak{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:18px}.streak-flame{font-family:var(--serif);font-weight:600;font-size:50px;color:var(--red);line-height:1}.streak-label{font-size:14px;color:var(--ink-soft);margin-top:4px}.takeaway-mini{border-left:3px solid var(--red);padding:2px 0 2px 16px;margin-bottom:22px}.tm-quote{display:none}.tm-line{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.4;color:var(--ink);margin:0}.share-block{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.share-row{display:flex;gap:10px}.share-row .btn{flex:1}.copied-toast{text-align:center;font-size:13px;color:var(--green);margin:4px 0 0;animation:fadein .2s ease}.synthesis{justify-content:flex-start;max-width:640px;margin:0 auto;width:100%}.synth-mark{font-family:var(--marker);font-size:24px;font-weight:700;color:var(--red);margin:18px 0 10px;transform:rotate(-2deg)}.synth-unit{font-family:var(--serif);font-weight:600;font-size:clamp(28px,6.5vw,36px);line-height:1.1;letter-spacing:-.015em;margin:0 0 26px}.synth-title{font-family:var(--marker);font-size:22px;color:var(--muted);font-weight:700;margin:0 0 14px}.synth-body{flex:1}.synth-para{font-family:var(--serif);font-size:clamp(17px,4.4vw,19px);line-height:1.6;color:var(--ink);margin:0 0 18px}.synth-body .synth-para:first-of-type:first-letter{font-size:54px;font-weight:600;float:left;line-height:.82;padding:6px 10px 0 0;color:var(--red)}@media (min-width: 720px){.app{max-width:1040px;margin:28px auto;min-height:calc(100dvh - 56px);border-radius:22px;box-shadow:0 30px 90px #28221429;overflow:hidden}.screen{min-height:calc(100dvh - 56px);padding:40px 48px 48px}.home-cols{display:grid;grid-template-columns:1.05fr .95fr;gap:32px;align-items:start}.home-col-b{position:sticky;top:40px}.session-body{padding-top:10px}.item-setup{margin-bottom:30px}}@media (min-width: 720px) and (max-width: 1040px){.app{margin:0 auto;border-radius:0;min-height:100dvh}.screen{min-height:100dvh}}
