.town-lesson{--duck-soft:#fbecbf;--faint:#a89a8c;--line:#ded6c6}.town-eyebrow{margin:0;font-size:13px;font-weight:700;color:var(--orange);letter-spacing:.4px}.town-eyebrow.center{text-align:center}.town-stage{flex:0 1 auto;width:100%;aspect-ratio:360/160;min-height:92px;border:2.5px solid var(--ink);border-radius:22px 16px 24px 14px;overflow:hidden;background:var(--paper)}.town-stage svg{display:block;width:100%;height:100%}.town-intro{display:flex;flex-direction:column;gap:10px;flex:none}.town-expr{display:flex;flex-direction:column;gap:10px;width:100%;padding:16px 18px;border:1.5px solid var(--line);border-radius:22px;background:var(--card);text-align:left;color:inherit;transition:transform .12s,background .2s}.town-expr:active{transform:translateY(2px)}.town-expr.on{background:#fff6d8}.town-expr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;color:var(--soft)}.town-expr-row>span:first-child{flex-shrink:1;word-break:keep-all}.town-pill{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;height:32px;padding:0 11px;border-radius:16px;background:var(--duck-soft);border:1.5px solid var(--duck);font-size:13px;font-weight:700;color:var(--ink)}.town-frame{margin:0;display:flex;flex-direction:column;align-items:center;font-size:36px;line-height:1.2;font-weight:800;letter-spacing:-.6px;text-align:center;word-break:keep-all}.town-frame em{font-style:normal;color:var(--orange)}p.town-frame{display:block}.town-frame.lead{font-size:32px;text-align:left}.town-pre{border:0;background:none;padding:0;font:inherit;letter-spacing:inherit;color:inherit;border-radius:8px;transition:background .2s}.town-pre:active{background:var(--duck-soft)}.town-ko{margin:0;font-size:16px;color:var(--soft);text-align:center;word-break:keep-all}.town-chips{margin-top:2px;flex-wrap:wrap}.town-chips.center{justify-content:center}.town-lesson .try-chip[aria-pressed=true]{background:var(--duck)}.town-coach{display:flex;align-items:center;gap:10px;margin:0;padding:8px 14px 8px 10px;border-radius:16px;background:var(--duck-soft)}.town-coach img{flex-shrink:0;transform:rotate(-4deg)}.town-coach .try-hand{font-size:18px;line-height:1.3;word-break:keep-all}.town-coach.think{align-self:flex-end;flex-direction:row-reverse;max-width:88%;border-top-right-radius:6px;padding:8px 10px 8px 14px}.town-stuck{display:flex;flex-direction:column;gap:12px;padding-top:28px}.town-staff{display:flex;align-items:flex-start;gap:10px}.town-face{flex-shrink:0;width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);overflow:hidden;background:#e7eef0}.town-face svg{display:block;width:100%;height:100%}.town-staff-col{display:flex;flex-direction:column;gap:6px;min-width:0}.town-name{font-size:12px;font-weight:600;color:var(--faint)}.town-bubble{padding:16px 18px;border:1.5px solid var(--line);border-radius:6px 20px 20px;background:var(--card)}.town-bubble p{margin:0;font-size:26px;line-height:1.28;font-weight:700;letter-spacing:-.3px}.town-bubble .town-bubble-ko{margin-top:6px;font-size:14px;font-weight:400;letter-spacing:0;color:var(--soft)}.town-wait{display:flex;gap:5px;padding-left:52px}.town-wait i{width:7px;height:7px;border-radius:50%;background:#f3c19b;animation:town-wait 1.2s ease-in-out infinite}.town-wait i:nth-child(2){animation-delay:.15s}.town-wait i:nth-child(3){animation-delay:.3s}@keyframes town-wait{0%,60%,to{transform:none;opacity:.6}30%{transform:translateY(-4px);opacity:1}}.town-stuck .town-coach.think{margin-top:8px}.town-learn{display:flex;flex-direction:column;gap:12px;padding-top:28px}.town-learn .town-frame{font-size:38px}.town-steps{display:flex;justify-content:center;gap:6px;margin-top:4px}.town-steps i{width:8px;height:8px;border-radius:50%;background:var(--line)}.town-steps i.now{background:var(--orange);opacity:.45}.town-steps i.done{background:var(--orange)}.town-end{position:relative;display:flex;flex-direction:column;gap:14px;padding-top:30px}.town-hero{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:46px 18px 24px;border-radius:26px;background:var(--card);border-bottom:2px solid var(--line);box-shadow:var(--shadow)}.town-ink{position:absolute;top:-28px;right:-8px;width:78px;height:78px;transform:rotate(-10deg);opacity:0;pointer-events:none}.town-hero.stamp{animation:try-shake .23s linear .63s}.town-hero.stamp .town-ink{animation:try-ink .5s cubic-bezier(.3,1.6,.5,1) .5s both}.town-end .try-confetti{top:30%}.town-next{display:flex;align-items:center;gap:12px;width:100%;padding:11px 16px;border:1.5px solid var(--line);border-radius:18px;background:var(--card);text-align:left;color:inherit;transition:transform .12s}.town-next:active{transform:translateY(2px)}.town-next>span{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.town-next small{font-size:13px;font-weight:700;color:var(--orange)}.town-next b{font-size:19px;line-height:24px;font-weight:800;letter-spacing:-.2px}@media(prefers-reduced-motion:reduce){.town-ink{opacity:1}}@media(max-height:760px){.town-stuck,.town-learn{padding-top:14px}.town-end{padding-top:18px;gap:10px}.town-hero{padding:40px 16px 18px}.town-frame{font-size:32px}.town-learn .town-frame{font-size:33px}.town-frame.lead{font-size:28px}.town-bubble p{font-size:23px}}@media(max-height:640px){.town-intro{gap:8px}.town-expr{padding:12px 14px;gap:6px}.town-coach .try-hand{font-size:16px}.town-hero{padding:36px 14px 14px;gap:8px}}.town-places{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.town-place{display:flex;align-items:center;gap:10px;min-height:64px;padding:8px 12px;border:2px solid var(--ink);border-radius:18px 12px 20px 10px;background:var(--card);text-align:left;color:inherit;box-shadow:0 3px 0 var(--ink);transition:transform .12s,box-shadow .12s,background .2s}.town-place:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.town-place>span{display:flex;flex-direction:column;min-width:0}.town-place b{font-size:17px}.town-place small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.town-place.on{background:var(--duck)}.town-place.on small{color:var(--ink)}.town-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.town-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:1.5px solid var(--line);border-radius:16px;background:var(--card);text-align:left;color:inherit;transition:transform .12s,border-color .2s}.town-row:hover{border-color:var(--ink)}.town-row:active{transform:translateY(2px)}.town-row.on{border:2px solid var(--ink);background:#fff1c2}.town-row-n{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1.5px dashed #a79a83;font-size:13px;font-weight:700;color:var(--muted)}.town-row.on .town-row-n{border:2px solid var(--orange);color:var(--orange)}.town-row-text{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.town-row-text b{font-size:15px}.town-row-text span{font-size:17px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.town-row-now{flex-shrink:0;padding:1px 10px;border-radius:999px;background:var(--orange);color:var(--card);font-family:Gaegu,cursive;font-weight:700;font-size:16px;border:2px solid var(--ink)}.town-app-only{display:flex;align-items:center;gap:12px;margin:18px 0 0;padding:12px 16px;border:2px dashed var(--ink);border-radius:16px;background:#fff1c2;font-size:15px;line-height:1.6;color:var(--ink);word-break:keep-all}.town-app-only svg{flex-shrink:0}@media(max-width:1000px){.town-places{grid-template-columns:1fr 1fr}}@media(max-width:760px){.town-study .study-place{min-width:0;width:100%}.town-study .study-place>*{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.town-places{gap:8px}.town-place{min-height:56px;padding:6px 10px;gap:8px}.town-list{grid-template-columns:1fr;gap:8px}.town-row{min-height:58px}}.town-to-app{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px 12px 18px;border:2.5px solid var(--ink);border-radius:18px 12px 20px 10px;background:#fbe7a8;box-shadow:0 4px #3b2a26d9;text-align:left;color:inherit;transition:transform .12s,box-shadow .12s}.town-to-app:active{transform:translateY(2px);box-shadow:0 2px #3b2a26d9}.town-to-app>span:first-child{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.town-to-app b{font-size:18px;font-weight:800;letter-spacing:-.2px}.town-to-app small{font-size:13px;color:var(--soft);font-weight:600}.town-to-app-go{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--ink)}.town-to-app-go svg path{stroke:var(--card)}.town-app{position:relative;display:flex;flex-direction:column;gap:12px;padding-top:6px}.town-app-back{position:absolute;top:0;left:0;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:var(--card);box-shadow:0 2px 6px #3b2a261a}.town-app-title{margin:-8px 0 0;text-align:center;font-size:30px;line-height:1.2}.town-ticket{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1.5px solid var(--line);border-radius:22px;background:var(--card)}.town-lab{font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--faint)}.town-ticket-frame{margin:0;font-size:26px;line-height:1.25;font-weight:800;letter-spacing:-.4px}.town-ticket-frame em{font-style:normal;color:var(--orange)}.town-perf{margin:8px -4px;border-top:2px dashed var(--line)}.town-goal{display:flex;align-items:center;gap:9px;padding:2px 0;font-size:15px;font-weight:600;word-break:keep-all}.town-goal i{flex:none;width:18px;height:18px;border:2px solid var(--line);border-radius:6px}.town-mini{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:20px;background:#efe3cb8c}.town-mini-staff{display:flex;align-items:flex-start;gap:8px;padding-right:28px}.town-mini-staff .town-face{width:32px;height:32px}.town-mini-staff p{margin:0;padding:9px 13px;border:1.5px solid var(--line);border-radius:6px 18px 18px;background:var(--card);font-size:16px;line-height:1.3;font-weight:700}.town-mini-me{display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding-left:44px}.town-mini-me p{margin:0;padding:9px 13px;border-radius:18px 6px 18px 18px;background:var(--green-soft,#dce8d6);font-size:16px;line-height:1.3;font-weight:700}.town-used{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:700;color:#4f8a63}.town-used svg path{stroke:#4f8a63}.town-mini-event{align-self:center;display:flex;align-items:center;gap:7px;margin:0;padding:6px 11px;border-radius:12px;background:var(--ink);color:var(--card);font-size:13px;font-weight:700}.town-mini-event b{font-family:Gaegu,cursive;font-size:18px;line-height:1;color:var(--duck)}.town-mini-dots{display:flex;gap:5px;align-items:center;height:38px}.town-mini-dots i{width:7px;height:7px;border-radius:50%;background:#f2ac70;animation:town-wait 1.2s ease-in-out infinite}.town-mini-dots i:nth-child(2){animation-delay:.15s}.town-mini-dots i:nth-child(3){animation-delay:.3s}.town-mini-note{margin:0;text-align:center;font-size:13px;font-weight:600;color:var(--soft);word-break:keep-all}.town-app .a1,.town-app .a2,.town-app .a3,.town-app .a4,.town-app .a5,.town-app .a6{animation:town-rise .45s cubic-bezier(.3,1.4,.5,1) both}.town-app .a1{animation-delay:.35s}.town-app .a2{animation-delay:1.25s}.town-app .a3{animation:town-pop .35s cubic-bezier(.3,1.8,.5,1) 1.8s both}.town-app .a4{animation-delay:2.5s}.town-app .a5{animation-delay:3.1s}.town-app .a6{animation-delay:3.6s}@keyframes town-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes town-pop{0%{opacity:0;transform:scale(.6)}}.town-app-get{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;border:2.5px solid var(--ink);border-radius:18px 12px 20px 10px;background:var(--ink);color:var(--paper);box-shadow:3px 4px #3b2a26e6;font-family:Gaegu,cursive;font-weight:700;font-size:22px}.town-app-get svg path{stroke:var(--paper)}@media(max-height:900px){.town-app{gap:9px;padding-top:2px}.town-app-title{font-size:27px}.town-ticket{padding:11px 15px}.town-ticket-frame{font-size:23px}.town-perf{margin:6px -4px}.town-goal{padding:1px 0;font-size:14.5px}.town-mini{gap:7px;padding:10px}.town-mini-me{flex-direction:row-reverse;align-items:center;gap:6px;padding-left:20px}.town-mini-staff p,.town-mini-me p{padding:8px 12px;font-size:15.5px}.town-mini-dots{height:34px}.town-app .town-coach{padding:6px 12px 6px 10px}.town-app .town-coach .try-hand{font-size:16px}.town-app-get{min-height:52px;font-size:21px}}@media(max-height:700px){.town-app{gap:9px}.town-app-title{font-size:26px}.town-ticket{padding:10px 14px}.town-ticket-frame{font-size:22px}.town-app .town-coach{display:none}}@media(prefers-reduced-motion:reduce){.town-app .a1,.town-app .a2,.town-app .a3,.town-app .a4,.town-app .a5,.town-app .a6,.town-mini-dots i{animation:none}}
