.h15{--h15-bg: #eef0f6;--h15-surface: #ffffff;--h15-soft: #e4e7f1;--h15-ink: #161a2e;--h15-muted: #535973;--h15-line: #d3d7e5;--h15-night: #10142b;--h15-night-2: #1b2147;--h15-chalk: #eef0ff;--h15-chalk-muted: #9ea5cc;--h15-scene-line: #2e3564;--h15-accent: var(--line, #ff5e78);--h15-accent-ink: var(--line-on, #2a0f19);--h15-accent-text: var(--line-text, #c2304b);--h15-amber: #ffc46b;--h15-cho: #2f62c9;--h15-jung: #c2304b;--h15-jong: #94570a;--h15-cho-n: #8db4ff;--h15-jung-n: #ff8fa1;--h15-jong-n: #ffc46b;--h15-good: #0f7350;--h15-good-soft: #e1f3ea;--h15-bad: #c2304b;--h15-bad-soft: #ffe3e8;--h15-shadow: 0 1px 2px rgba(22, 26, 46, .08), 0 14px 30px -18px rgba(22, 26, 46, .45);--h15-ko: "Pretendard", "Noto Sans KR", "Be Vietnam Pro", system-ui, sans-serif;--h15-vi: "Be Vietnam Pro", "Pretendard", system-ui, sans-serif;--h15-ease: cubic-bezier(.16, 1, .3, 1);--h15-r: 12px;--h15-rc: var(--pl-radius, 8px);--psc-bg: var(--h15-surface);--psc-soft: var(--h15-soft);--psc-ink: var(--h15-ink);--psc-muted: var(--h15-muted);--psc-line: var(--h15-line);--psc-good: var(--h15-good);min-height:100dvh;padding-bottom:calc(40px + var(--play-consent-h, 0px));background:var(--h15-bg);color:var(--h15-ink);font-family:var(--h15-vi);line-height:1.55;-webkit-tap-highlight-color:transparent}:root[data-theme=dark] .h15{--h15-bg: #0b0d18;--h15-surface: #151933;--h15-soft: #1d2242;--h15-ink: #eef0ff;--h15-muted: #a9afd2;--h15-line: #2a3058;--h15-night: #0a0d20;--h15-scene-line: #262c55;--h15-cho: #8db4ff;--h15-jung: #ff8fa1;--h15-jong: #ffc46b;--h15-good: #4fd69c;--h15-good-soft: #16352a;--h15-bad: #ff8fa1;--h15-bad-soft: #3d2229;--h15-shadow: 0 0 0 1px rgba(255, 255, 255, .05), 0 16px 32px -18px rgba(0, 0, 0, .9)}.h15 *:focus-visible{outline:3px solid var(--pl-exit, #ffd200);outline-offset:2px;box-shadow:none}.h15 [tabindex="-1"]:focus{outline:none}:where(.h15) button{font:inherit;color:inherit;cursor:pointer}:where(.h15) button:disabled{cursor:default}.h15 [lang=ko]{word-break:keep-all;font-family:var(--h15-ko)}.h15 :is(h1,h2,h3,p){margin:0}.h15 :is(h1,h2,h3){color:inherit}.h15-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.h15-clock{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--h15-surface);border:1px solid var(--h15-line);font-weight:700;font-variant-numeric:tabular-nums;font-size:.95rem;color:var(--h15-muted)}.h15-clock svg{width:20px;height:20px;transform:rotate(-90deg)}.h15-clock circle{fill:none;stroke-width:3}.h15-clock__track{stroke:var(--h15-line)}.h15-clock__fill{stroke:var(--h15-accent);stroke-linecap:round;stroke-dasharray:1;transition:stroke-dashoffset 1s linear}.h15-clock[data-over] .h15-clock__fill{stroke:var(--h15-muted)}.h15-rail{border-bottom:1px solid var(--h15-line);background:var(--h15-bg);overflow-x:auto;scrollbar-width:none}.h15-rail ol{display:flex;gap:4px;margin:0 auto;padding:8px 12px;list-style:none;max-width:1040px}.h15-rail li{flex:1 0 auto}.h15-rail__btn{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;min-width:44px;padding:6px 10px 6px 6px;border:1px solid transparent;border-radius:999px;background:none;text-align:left;font-size:.875rem;font-weight:600;color:var(--h15-muted)}.h15-rail__btn[aria-current=step]{background:var(--h15-surface);border-color:var(--h15-line);color:var(--h15-ink)}.h15-rail__btn:disabled{opacity:.55}.h15-rail__dot{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:999px;background:var(--h15-soft);font-weight:800;font-size:.8rem}.h15-rail__btn[data-done] .h15-rail__dot{background:var(--h15-good);color:var(--h15-surface)}.h15-rail__btn[aria-current=step] .h15-rail__dot{background:var(--h15-accent);color:var(--h15-accent-ink)}@media (max-width: 899px){.h15-rail li{flex:0 0 auto}.h15-rail li:has([aria-current=step]){flex:1 1 auto}.h15-rail__btn:not([aria-current=step]) .h15-rail__name{display:none}.h15-rail__btn:not([aria-current=step]){padding-right:6px}}.h15-novoice{max-width:760px;margin:20px auto 0;padding:10px 14px;border-radius:var(--h15-rc);background:var(--h15-soft);color:var(--h15-muted);font-size:.9rem;width:calc(100% - 32px)}.h15-main{max-width:760px;margin:0 auto;padding:20px 16px 8px}.h15-main[data-stage="1"][data-sub=learn],.h15-main[data-stage="4"][data-sub=learn],.h15-main[data-stage="5"][data-sub=learn]{max-width:1040px}.h15-head{margin-bottom:16px}.h15-head__ko{color:var(--h15-accent-text);font-weight:700;font-size:.95rem}.h15-head__title{font-size:clamp(1.5rem,1.1rem + 2vw,2.1rem);line-height:1.15;font-weight:800;letter-spacing:-.01em}.h15-head__intro{margin-top:6px;max-width:58ch;color:var(--h15-muted)}.h15-scene{position:relative;background:radial-gradient(120% 90% at 30% 0%,var(--h15-night-2),var(--h15-night));border-radius:var(--h15-r);color:var(--h15-chalk);box-shadow:var(--h15-shadow);overflow:hidden}.h15-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.h15-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:var(--pl-radius, 8px);border:1px solid var(--h15-line);background:var(--h15-surface);font-weight:700;text-decoration:none;white-space:nowrap;transition:transform .15s var(--h15-ease),background .2s}.h15-btn:active:not(:disabled){transform:scale(.97)}.h15-btn:disabled{opacity:.45}.h15-btn--primary{background:var(--h15-accent);border-color:var(--h15-accent);color:var(--h15-accent-ink)}a.h15-btn--primary{color:var(--h15-accent-ink)}.h15-btn--ghost{background:transparent}.h15-btn--lg{min-height:54px;padding:0 24px;font-size:1.05rem}.h15-main>.h15-btn--primary,.h15-stroke>.h15-btn--primary,.h15-vowel>.h15-btn--primary,.h15-mouth__side>.h15-btn--primary{margin-top:16px}.h15-link{display:inline-block;padding:10px 2px;min-height:44px;border:0;background:none;color:var(--h15-accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px}.h15-help{margin-top:8px;color:var(--h15-muted);font-size:.9rem;max-width:62ch}.h15-nudge{margin-top:12px;padding:10px 14px;border-radius:var(--h15-rc);background:var(--h15-soft);font-size:.95rem}.h15-count{margin-top:14px;color:var(--h15-muted);font-weight:600}.h15-count b{color:var(--h15-ink);font-size:1.15em;font-variant-numeric:tabular-nums}.h15-listen{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid currentColor;background:transparent;font-weight:700;font-size:.9rem}.h15-win{margin-top:16px;padding:16px;border-radius:var(--h15-r);background:var(--h15-good-soft)}.h15-win p{font-weight:600}.h15-win b[lang=ko]{font-size:1.5rem}.h15-win .h15-btn{margin-top:12px}.h15 .h15-foot{max-width:1040px;margin:24px auto 0;padding:0 16px;color:var(--h15-muted);font-size:.85rem}.h15-intro{display:grid;gap:22px;max-width:1040px;margin:0 auto;padding:28px 16px 8px}.h15-intro__demo{display:flex;align-items:center;justify-content:center;gap:18px;padding:26px 16px;border-radius:var(--h15-r);background:radial-gradient(120% 90% at 30% 0%,var(--h15-night-2),var(--h15-night));box-shadow:var(--h15-shadow)}.h15-intro__word{display:flex;gap:4px;font-size:clamp(3rem,2rem + 6vw,5.5rem);font-weight:800;line-height:1}.h15-intro__word span{color:var(--h15-scene-line);transition:color .4s,text-shadow .4s}.h15-intro__word span[data-on]{color:var(--h15-chalk);text-shadow:0 0 18px color-mix(in srgb,var(--h15-accent) 55%,transparent)}.h15-intro__h1{font-size:var(--pl-h1, 2.4rem);line-height:1.12;font-weight:800;letter-spacing:-.025em;text-wrap:balance}.h15-intro__lede{margin-top:12px;font-size:1.1rem;max-width:40ch;color:var(--h15-muted)}.h15-route{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0;padding:0;list-style:none;counter-reset:route}.h15-route li{counter-increment:route;display:grid;gap:2px;padding:12px 14px;border-radius:var(--h15-rc);background:var(--h15-surface);border:1px solid var(--h15-line)}.h15-route li:before{content:counter(route);font-weight:800;color:var(--h15-accent-text);font-variant-numeric:tabular-nums}.h15-route li[data-done]:before{content:"✓";color:var(--h15-good)}.h15-route b{font-size:.95rem}.h15-route span{color:var(--h15-muted);font-size:.85rem}@media (min-width: 900px){.h15-intro{grid-template-columns:1fr 1.1fr;align-items:center;padding-top:48px}.h15-intro__demo{order:2;min-height:340px}.h15-route,.h15-intro__note{grid-column:1 / -1;order:3}}.h15-block{display:flex;align-items:center;gap:14px;--bs: 120px}.h15-block--sm{--bs: 72px}.h15-block--lg{--bs: clamp(118px, 34vw, 168px)}.h15-block__map{position:relative;flex:none;width:var(--bs);height:var(--bs);border-radius:var(--h15-r);background:var(--h15-night);outline:1px dashed var(--h15-scene-line);outline-offset:-6px;overflow:hidden}.h15-block__piece{position:absolute;inset:0;display:grid;place-items:center;transform-origin:0 0;transition:transform .45s var(--h15-ease);font-family:var(--h15-ko);font-weight:700}.h15-block__piece i{font-style:normal;font-size:calc(var(--bs) * .82);line-height:1}.h15-block__piece.h15-role--cho{color:var(--h15-cho-n)}.h15-block__piece.h15-role--jung{color:var(--h15-jung-n)}.h15-block__piece.h15-role--jong{color:var(--h15-jong-n)}.h15-block__piece.h15-role--cho{background:color-mix(in srgb,var(--h15-cho-n) 12%,transparent)}.h15-block__piece.h15-role--jung{background:color-mix(in srgb,var(--h15-jung-n) 12%,transparent)}.h15-block__piece.h15-role--jong{background:color-mix(in srgb,var(--h15-jong-n) 12%,transparent)}.h15-block__empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--h15-scene-line);font-size:calc(var(--bs) * .5);font-weight:800}.h15-block__glyph{min-width:calc(var(--bs) * .9);font-size:calc(var(--bs) * .78);font-weight:700;line-height:1;color:var(--h15-ink);text-align:center}.h15-intro__demo .h15-block__glyph{display:none}.h15-block[data-done] .h15-block__glyph{animation:h15-pop .45s var(--h15-ease)}.h15-mouth{display:grid;gap:16px}@media (min-width: 900px){.h15-mouth{grid-template-columns:1.15fr 1fr;align-items:start}}.h15-mouth__scene svg{display:block;width:100%;height:auto;max-height:62vh}@media (max-width: 899px){.h15-mouth__scene svg{max-height:40dvh}.h15-mouth{gap:10px}.h15-keys{order:-1;margin-top:0}.h15-mouth__side>.h15-count{order:-1;margin:0 0 10px}}.h15-mouth__label{position:absolute;left:14px;bottom:12px;right:14px;color:var(--h15-chalk-muted);font-size:.875rem;font-weight:600}.hm-faint,.hm-line,.hm-skin,.hm-tooth,.hm-lip path,.hm-tongue,.hm-letter,.hm-air path{fill:none;stroke-linecap:round;stroke-linejoin:round}.hm-faint{stroke:var(--h15-scene-line);stroke-width:2;stroke-dasharray:3 5}.hm-line{stroke:var(--h15-chalk-muted);stroke-width:2.4;transition:stroke .3s,stroke-width .3s}.hm-skin{stroke:var(--h15-chalk);stroke-width:3}.hm-tooth{fill:color-mix(in srgb,var(--h15-chalk) 18%,transparent);stroke:var(--h15-chalk);stroke-width:2;transition:stroke .3s,fill .3s}.hm-lip{transform-box:fill-box;transition:transform .5s var(--h15-ease)}.hm-lip path{stroke:var(--h15-chalk);stroke-width:3;fill:color-mix(in srgb,var(--h15-chalk) 10%,transparent);transition:stroke .3s}.hm-tongue{fill:color-mix(in srgb,var(--h15-jung-n) 22%,transparent);stroke:var(--h15-chalk);stroke-width:2.4;transition:d .55s var(--h15-ease),stroke .3s}.hm-air path{stroke:var(--h15-cho-n);stroke-width:2;opacity:0}.hm-larynx-glow{opacity:0;transition:opacity .4s}.hm-letter{stroke:var(--h15-accent);stroke-width:7;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--h15-accent) 70%,transparent))}.hm-letter[data-on]{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--h15-ease),opacity .2s}.h15-mouth__scene[data-organ=ㄱ] :is(.hm-tongue,.hm-palate),.h15-mouth__scene[data-organ=ㄴ] :is(.hm-tongue,.hm-ridge){stroke:var(--h15-amber);stroke-width:3.4}.h15-mouth__scene[data-organ=ㅁ] .hm-lip path{stroke:var(--h15-amber)}.h15-mouth__scene[data-organ=ㅁ] .hm-lip--up{transform:translateY(5px)}.h15-mouth__scene[data-organ=ㅁ] .hm-lip--down{transform:translateY(-6px)}.h15-mouth__scene[data-organ=ㅅ] .hm-tooth{stroke:var(--h15-amber);fill:color-mix(in srgb,var(--h15-amber) 30%,transparent)}.h15-mouth__scene[data-organ=ㅅ] .hm-air path{animation:h15-air .9s ease-out infinite}.h15-mouth__scene[data-organ=ㅅ] .hm-air path:nth-child(2){animation-delay:.15s}.h15-mouth__scene[data-organ=ㅅ] .hm-air path:nth-child(3){animation-delay:.3s}.h15-mouth__scene[data-organ=ㅇ] :is(.hm-larynx,.hm-pharynx){stroke:var(--h15-amber);stroke-width:3.4}.h15-mouth__scene[data-organ=ㅇ] .hm-larynx-glow{opacity:1;animation:h15-breathe 1.6s ease-in-out infinite}.h15-mouth__scene[data-beat="2"] .hm-letter[data-on]{stroke:var(--h15-accent)}.h15-mouth__side{display:grid;align-content:start}.h15-mouth__card{min-height:210px;padding:18px;border-radius:var(--h15-r);background:var(--h15-surface);border:1px solid var(--h15-line)}.h15-mouth__card[data-show=true]{animation:h15-rise .5s var(--h15-ease)}.h15-mouth__big{font-size:5rem;line-height:1;font-weight:800;color:var(--h15-accent-text)}.h15-mouth__sound{margin-top:8px;font-size:1.05rem}.h15-mouth__tip{margin-top:8px;font-weight:600}.h15-mouth__mn{margin-top:6px;color:var(--h15-muted);font-size:.92rem}.h15-mouth__card .h15-listen{margin-top:12px}.h15-mouth__wait{color:var(--h15-muted)}.h15-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.h15-key{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:56px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface);font-size:1.9rem;font-weight:800;transition:transform .15s var(--h15-ease),background .2s}.h15-key:active{transform:scale(.95)}.h15-key[aria-pressed=true]{background:var(--h15-night);color:var(--h15-chalk);border-color:var(--h15-accent)}.h15-key svg{position:absolute;top:5px;right:5px;color:var(--h15-good)}.h15-key[aria-pressed=true] svg{color:var(--h15-jong-n)}.h15-stroke__stage{display:grid;gap:16px}@media (min-width: 640px){.h15-stroke__stage{grid-template-columns:minmax(0,300px) 1fr;align-items:center}}.h15-stroke__pad{aspect-ratio:1;max-width:320px;width:100%;margin:0 auto;touch-action:none}.h15-stroke__svg{display:block;width:100%;height:100%;cursor:crosshair}.hs-stroke{fill:none;stroke:var(--h15-chalk);stroke-width:8;stroke-linecap:round;opacity:0;transition:d .55s var(--h15-ease),opacity .3s}.hs-stroke[data-on]{opacity:1}.h15-stroke__pad[data-made] .hs-stroke[data-on]{stroke:var(--h15-chalk);animation:h15-glow .9s var(--h15-ease)}.hs-ghost{fill:none;stroke:var(--h15-accent);stroke-width:6;stroke-linecap:round;stroke-dasharray:3 6;opacity:.85;animation:h15-dash 1.2s linear infinite;pointer-events:none}.hs-ghost-hit{fill:none;stroke:transparent;stroke-width:22;stroke-linecap:round;cursor:pointer}.hs-trail{fill:none;stroke:var(--h15-jong-n);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.8;pointer-events:none}.h15-stroke__eq{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.h15-stroke__eq b{font-size:3rem;line-height:1;font-weight:800}.h15-stroke__eq b[data-dim]{color:var(--h15-line)}.h15-stroke__eq span{color:var(--h15-muted);font-size:.95rem}.h15-stroke__eq svg{align-self:center;color:var(--h15-accent-text)}.h15-stroke__note{display:flex;align-items:center;gap:6px;margin-top:10px;font-weight:600}.h15-stroke__info .h15-btn--ghost{margin-top:12px}.h15-tree{display:grid;gap:6px;margin:22px 0 0;padding:14px;list-style:none;border-radius:var(--h15-r);background:var(--h15-surface);border:1px solid var(--h15-line)}.h15-tree__row{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:4px 10px;padding:6px 8px;border-radius:12px;transition:background .4s}.h15-tree__row[data-lit]{background:color-mix(in srgb,var(--h15-accent) 10%,transparent)}.h15-tree__name{font-size:.82rem;font-weight:700;color:var(--h15-muted)}.h15-tree__chain{display:flex;align-items:center;flex-wrap:wrap}.h15-tree__node{display:inline-flex;align-items:center}.h15-tree__link{width:16px;height:2px;background:var(--h15-line);transition:background .4s}.h15-tree__link[data-on]{background:var(--h15-accent)}.h15-tree__chip{display:grid;place-items:center;min-width:44px;height:44px;border-radius:var(--h15-rc);border:1px dashed var(--h15-line);background:transparent;font-size:1.35rem;font-weight:800;color:var(--h15-muted)}.h15-tree__chip[data-root],.h15-tree__chip[data-open]{border-style:solid;color:var(--h15-ink);background:var(--h15-bg)}.h15-tree__chip[aria-current=step]{border-color:var(--h15-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--h15-accent) 30%,transparent)}.h15-tree__row[data-lit] .h15-tree__chip[data-open]{animation:h15-pop .5s var(--h15-ease)}.h15-tree__extra{grid-column:2;display:flex;flex-wrap:wrap;gap:6px}.h15-tree__leaf{display:inline-flex;align-items:baseline;gap:4px;padding:2px 8px;border-radius:999px;background:var(--h15-soft);font-size:.85rem;color:var(--h15-muted)}.h15-tree__leaf b{font-size:1.05rem;color:var(--h15-ink)}.h15-tree__extra:not([data-on]) .h15-tree__leaf{opacity:.5}.h15-vowel__lab{display:grid;gap:16px}@media (min-width: 640px){.h15-vowel__lab{grid-template-columns:minmax(0,300px) 1fr;align-items:center}}.h15-vowel__pad{aspect-ratio:1;width:100%;max-width:320px;margin:0 auto;outline:2px dashed transparent;outline-offset:-10px;transition:outline-color .2s}.h15-vowel__pad[data-over]{outline-color:var(--h15-accent)}.h15-vowel__pad svg{display:block;width:100%;height:100%}.hv-base,.hv-tick{fill:none;stroke:var(--h15-chalk);stroke-width:8;stroke-linecap:round}.hv-base{animation:h15-pop .4s var(--h15-ease)}.hv-tick{stroke:var(--h15-jung-n);stroke-dasharray:1;stroke-dashoffset:1;animation:h15-draw .5s .25s var(--h15-ease) forwards}.hv-dot{fill:var(--h15-jung-n);transform-box:fill-box;transform-origin:center;animation:h15-dot .55s var(--h15-ease) forwards}.h15-vowel__empty{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--h15-chalk-muted);font-weight:600}.h15-vowel__zone{position:absolute;width:26%;aspect-ratio:1;min-width:48px;border-radius:999px;border:2px dashed color-mix(in srgb,var(--h15-chalk) 45%,transparent);background:color-mix(in srgb,var(--h15-chalk) 5%,transparent);transform:translate(-50%,-50%);transition:border-color .2s,background .2s,transform .2s var(--h15-ease)}.h15-vowel__zone--left{left:20%;top:50%}.h15-vowel__zone--right{left:80%;top:50%}.h15-vowel__zone--top{left:50%;top:20%}.h15-vowel__zone--bottom{left:50%;top:80%}.h15-vowel__zone[data-has]{border-color:transparent;background:transparent}.h15-vowel__zone[data-over],.h15-vowel__pad[data-armed] .h15-vowel__zone{border-color:var(--h15-accent);background:color-mix(in srgb,var(--h15-accent) 16%,transparent);transform:translate(-50%,-50%) scale(1.08)}.h15-vowel__glyph{font-size:5rem;line-height:1;font-weight:800}.h15-vowel__glyph[data-fresh]{color:var(--h15-accent-text);animation:h15-pop .5s var(--h15-ease)}.h15-vowel__sound{margin-top:6px;font-size:1.05rem}.h15-vowel__new{margin-top:4px;font-weight:700;color:var(--h15-good)}.h15-vowel__readout .h15-listen{margin-top:10px}.h15-vowel__wait{color:var(--h15-muted)}.h15-tray{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.h15-piece{display:grid;justify-items:center;gap:4px;padding:10px 6px 12px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;transition:transform .15s var(--h15-ease),opacity .2s}.h15-piece svg{width:52px;height:52px;border-radius:12px;background:var(--h15-night)}.h15-piece circle{fill:var(--h15-jung-n)}.h15-piece path{stroke:var(--h15-chalk);stroke-width:6;stroke-linecap:round}.h15-piece span{font-weight:700;font-size:.9rem}.h15-piece small{font-weight:500;color:var(--h15-muted)}.h15-piece[aria-pressed=true]{border-color:var(--h15-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--h15-accent) 30%,transparent)}.h15-piece[data-lifted],.h15-chip[data-lifted]{opacity:.4}.h15-ghost{position:fixed;left:0;top:0;z-index:60;display:grid;place-items:center;min-width:56px;height:56px;padding:0 10px;border-radius:var(--h15-rc);background:var(--h15-night);color:var(--h15-chalk);border:2px solid var(--h15-accent);font-family:var(--h15-ko);font-size:1.8rem;font-weight:800;pointer-events:none;box-shadow:0 16px 30px -12px #1e120899}.h15-found{margin-top:6px}.h15-found__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 0;padding:0;list-style:none}.h15-found__grid li{display:grid;justify-items:center;padding:8px 4px;border-radius:12px;border:1px dashed var(--h15-line);color:var(--h15-muted)}.h15-found__grid li[data-ok]{border-style:solid;background:var(--h15-surface);color:var(--h15-ink)}.h15-found__grid li[data-fresh]{border-color:var(--h15-accent);animation:h15-pop .5s var(--h15-ease)}.h15-found__grid b{font-size:1.8rem;line-height:1.1}.h15-found__grid small{min-height:1.3em;font-size:.8rem}.h15-shop{display:grid;gap:14px}.h15-missions{display:flex;gap:6px;margin:0;padding:0 0 2px;list-style:none;overflow-x:auto;scrollbar-width:thin}.h15-missions li{flex:none;padding:6px 12px;border-radius:999px;border:1px solid var(--h15-line);font-size:.85rem;font-weight:600;color:var(--h15-muted);white-space:nowrap}.h15-missions li[aria-current=step]{border-color:var(--h15-accent);color:var(--h15-ink)}.h15-missions li[data-done]{background:var(--h15-good-soft);border-color:transparent;color:var(--h15-ink)}.h15-target{padding:14px 16px;border-radius:var(--h15-r);background:var(--h15-surface);border:1px solid var(--h15-line)}.h15-target__vi{font-size:1.25rem;font-weight:800}.h15-target__read{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:4px;font-size:1.1rem;color:var(--h15-muted)}.h15-target__read span{padding:0 4px;border-radius:6px}.h15-target__read span[data-now]{background:var(--h15-accent);color:var(--h15-accent-ink);font-weight:800}.h15-target__read span[data-done]{color:var(--h15-good);font-weight:700}.h15-target__ko{font-size:1.6rem;font-weight:800;color:var(--h15-ink)}.h15-word{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.h15-word__cell{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--h15-rc);border:2px dashed var(--h15-line);font-size:2rem;font-weight:800;color:var(--h15-muted)}.h15-word__cell[data-now]{border-color:var(--h15-accent)}.h15-word__cell[data-done]{border-style:solid;border-color:var(--h15-good);background:var(--h15-good-soft);color:var(--h15-ink);animation:h15-pop .45s var(--h15-ease)}.h15-name label{display:block;font-weight:700}.h15-name__row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.h15-name input{flex:1 1 180px;min-height:48px;padding:0 14px;border-radius:var(--h15-rc);border:1px solid var(--h15-muted);background:var(--h15-bg);color:var(--h15-ink);font:inherit;font-size:1.05rem}.h15-name input::-moz-placeholder{color:var(--h15-muted)}.h15-name input::placeholder{color:var(--h15-muted)}.h15-bench{display:grid;gap:14px}@media (min-width: 900px){.h15-bench{grid-template-columns:auto 1fr;align-items:start;-moz-column-gap:24px;column-gap:24px}.h15-bench__slots,.h15-bench .h15-block,.h15-bench__acts,.h15-bench .h15-nudge{grid-column:1}.h15-pal{grid-column:2;grid-row:1 / span 4}}.h15-bench__slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.h15-slot{display:grid;justify-items:center;gap:2px;min-height:78px;padding:8px 4px;border-radius:var(--h15-rc);border:2px dashed currentColor;background:var(--h15-surface);transition:transform .15s var(--h15-ease),background .2s}.h15-slot.h15-role--cho{color:var(--h15-cho)}.h15-slot.h15-role--jung{color:var(--h15-jung)}.h15-slot.h15-role--jong{color:var(--h15-jong)}.h15-slot small{font-weight:700;font-size:.8rem}.h15-slot b{min-height:1.2em;font-size:2rem;line-height:1.1;color:var(--h15-ink)}.h15-slot[aria-pressed=true]{border-style:solid;background:color-mix(in srgb,currentColor 10%,var(--h15-surface))}.h15-slot[data-over]{transform:scale(1.05);border-style:solid}.h15-bench__acts{display:flex;flex-wrap:wrap;gap:8px}.h15-pal__tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:var(--h15-rc);background:var(--h15-soft)}.h15-pal__tabs button{min-height:44px;padding:4px;border:0;border-radius:var(--h15-rc);background:transparent;font-size:.82rem;font-weight:700;color:var(--h15-muted)}.h15-pal__tabs button[aria-selected=true]{background:var(--h15-surface);color:var(--h15-ink);box-shadow:inset 0 -3px 0 currentColor}.h15-pal__tabs .h15-role--cho[aria-selected=true]{color:var(--h15-cho)}.h15-pal__tabs .h15-role--jung[aria-selected=true]{color:var(--h15-jung)}.h15-pal__tabs .h15-role--jong[aria-selected=true]{color:var(--h15-jong)}.h15-pal__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:6px;margin-top:10px}.h15-chip{display:grid;justify-items:center;align-content:center;min-height:60px;padding:4px 2px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform .12s var(--h15-ease)}.h15-chip:active{transform:scale(.94)}.h15-chip b{font-size:1.5rem;line-height:1.1}.h15-chip small{font-size:.75rem;color:var(--h15-muted);line-height:1.2;text-align:center}.h15-chip[data-on]{border-color:currentColor;background:color-mix(in srgb,currentColor 10%,var(--h15-surface))}.h15-chip.h15-role--cho[data-on]{color:var(--h15-cho)}.h15-chip.h15-role--jung[data-on]{color:var(--h15-jung)}.h15-chip.h15-role--jong[data-on]{color:var(--h15-jong)}.h15-chip[data-on] b{color:var(--h15-ink)}.h15-chip[data-hint]{border:2px solid var(--h15-accent);animation:h15-nudge 1s ease-in-out 2}.h15-street__scroll{overflow-x:auto;border-radius:var(--h15-r);box-shadow:var(--h15-shadow);background:#17110c;scroll-behavior:smooth}.h15-street__svg{display:block;width:100%;height:auto}.hs-shop{cursor:pointer;outline:none}.hs-shop:focus-visible .hs-sign{stroke:var(--h15-accent);stroke-width:4}.hs-facade{fill:#3a2c22}.hs-facade[data-tone="1"]{fill:#45342a}.hs-facade[data-tone="2"]{fill:#33261d}.hs-win{fill:#2a1f17;transition:fill .6s}.hs-win[data-on]{fill:#ffd28a;opacity:.85}.hs-sign{fill:#21180f;stroke:#5a4636;stroke-width:2;transition:stroke .4s}.hs-sign__text{fill:#e9dcc4;opacity:.6;font-family:var(--h15-ko);font-weight:800;pointer-events:none}.hs-front{fill:#1f160f;stroke:#5a4636;stroke-width:2;transition:fill .7s}.hs-icon{color:#1c1612;opacity:0;transition:opacity .6s .3s}.hs-spill{fill:#ffcf87;opacity:0;transition:opacity .8s .2s}.hs-cue{fill:none;stroke:var(--h15-accent);stroke-width:2;stroke-dasharray:4 6;opacity:.5;animation:h15-dash 1.6s linear infinite}.hs-shop:hover .hs-cue{opacity:1}.hs-shop[data-lit] .hs-front{fill:url(#h15-warm)}.hs-shop[data-lit] .hs-icon{opacity:.85}.hs-shop[data-lit] .hs-spill{opacity:.22}.hs-shop[data-lit][data-neon=pink] .hs-sign{stroke:#ff7d93}.hs-shop[data-lit][data-neon=amber] .hs-sign{stroke:#ffc46b}.hs-shop[data-lit] .hs-sign__text{opacity:1;animation:h15-neon .9s steps(1) both}.hs-shop[data-lit][data-neon=pink] .hs-sign__text{fill:#ffb3c0;filter:drop-shadow(0 0 5px #ff5e78)}.hs-shop[data-lit][data-neon=amber] .hs-sign__text{fill:#ffe0a8;filter:drop-shadow(0 0 5px #ffb54a)}.h15-signs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none}.h15-signchip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface);font-size:1.15rem;font-weight:800}.h15-signchip[data-lit]{background:var(--h15-good-soft);border-color:transparent}.h15-signchip svg{color:var(--h15-good)}.h15-sheet{position:fixed;inset:0;z-index:50;display:grid;align-items:end;justify-items:center}.h15-sheet__scrim{position:absolute;inset:0;border:0;background:#140c068c;cursor:default}.h15-sheet__card{position:relative;width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;padding:20px 16px calc(20px + var(--play-consent-h, 0px) + env(safe-area-inset-bottom,0px));border-radius:var(--h15-r) var(--h15-r) 0 0;background:var(--h15-surface);animation:h15-sheet .35s var(--h15-ease)}@media (min-width: 700px){.h15-sheet{align-items:center}.h15-sheet__card{border-radius:var(--h15-r);padding:26px}}.h15-sheet__x{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;border:0;background:var(--h15-soft)}.h15-sheet__h{font-size:1rem;font-weight:700;color:var(--h15-muted)}.h15-plate{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:12px;padding:18px 12px;border-radius:var(--h15-r);background:var(--h15-night);border:2px solid #5a4636}.h15-plate[data-solved]{border-color:var(--h15-accent);box-shadow:0 0 22px -4px color-mix(in srgb,var(--h15-accent) 60%,transparent)}.h15-plate__syl{display:grid;justify-items:center}.h15-plate__syl>b{font-size:clamp(2.8rem,2rem + 6vw,4.2rem);line-height:1.1;color:var(--h15-chalk)}.h15-plate__parts{display:none;gap:4px}.h15-plate[data-split] .h15-plate__syl>b{font-size:1.6rem;opacity:.7}.h15-plate[data-split] .h15-plate__parts{display:flex}.h15-plate__part{display:grid;justify-items:center;min-width:40px;padding:4px 4px 6px;border-radius:8px;background:var(--h15-night-2);animation:h15-split .45s var(--h15-ease) both}.h15-plate__part:nth-child(2){animation-delay:.06s}.h15-plate__part:nth-child(3){animation-delay:.12s}.h15-plate__part i{font-style:normal;font-size:1.6rem;font-weight:800;color:var(--h15-chalk)}.h15-plate__part:nth-child(1) i{color:var(--h15-cho-n)}.h15-plate__part:nth-child(2) i{color:var(--h15-jung-n)}.h15-plate__part:nth-child(3) i{color:var(--h15-jong-n)}.h15-plate__part small{font-size:.75rem;color:var(--h15-chalk-muted)}.h15-sheet__ask{margin-top:14px;font-weight:800;font-size:1.1rem}.h15-places{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}@media (min-width: 520px){.h15-places{grid-template-columns:repeat(4,1fr)}}.h15-place{display:grid;justify-items:center;gap:4px;min-height:72px;padding:8px 4px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-bg);font-size:.85rem;font-weight:600;text-align:center;transition:transform .15s var(--h15-ease)}.h15-place:active:not(:disabled){transform:scale(.96)}.h15-place[data-bad]{opacity:.4;text-decoration:line-through;animation:h15-shake .35s}.h15-sheet__verdict{margin-top:14px;font-size:1.05rem}.h15-drill{max-width:620px}.h15-drill__meta{font-weight:700;font-size:.9rem;color:var(--h15-accent-text)}.h15-drill__q{margin-top:6px!important;font-size:1.35rem;line-height:1.3;font-weight:800}.h15-drill__opts{display:grid;gap:8px;margin-top:16px}.h15-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:10px 16px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface);font-size:1.1rem;font-weight:600;text-align:left}.h15-opt span[lang=ko]{font-size:1.5rem;font-weight:800}.h15-opt[data-state=right]{background:var(--h15-good-soft);border-color:var(--h15-good);color:var(--h15-ink)}.h15-opt[data-state=right] svg{color:var(--h15-good)}.h15-opt[data-state=wrong]{background:var(--h15-bad-soft);border-color:var(--h15-bad);animation:h15-shake .35s}.h15-opt[data-state=wrong] svg{color:var(--h15-bad)}.h15-opt[data-state=dim]{opacity:.5}.h15-opt:disabled{color:var(--h15-ink)}.h15-drill__after{margin-top:16px}.h15-drill__verdict{font-weight:600}.h15-drill__verdict[data-ok=true]{color:var(--h15-good)}.h15-drill__after .h15-btn{margin-top:12px}.h15-review{display:grid;gap:10px;margin-top:12px}.h15-review__card{padding:16px;border-radius:var(--h15-r);background:var(--h15-surface);border:1px solid var(--h15-accent);animation:h15-rise .4s var(--h15-ease)}.h15-review__big{font-size:3.4rem;line-height:1;font-weight:800;color:var(--h15-accent-text)}.h15-review__card .h15-listen{margin-top:10px}.h15-drill__score{font-size:1.3rem;font-weight:700}.h15-drill__score b{font-size:2.4rem}.h15-drill--end .h15-btn{margin-top:16px}.h15-between{display:grid;justify-items:start;gap:8px;padding-top:48px}.h15-between__ko{color:var(--h15-accent-text);font-weight:700}.h15-between h1{font-size:clamp(1.8rem,1.3rem + 2.4vw,2.6rem);font-weight:800;line-height:1.1}.h15-between__time{font-size:1.05rem;color:var(--h15-muted)}.h15-between__time b{color:var(--h15-ink)}.h15-between .h15-btn{margin-top:10px}.h15-result{display:grid;gap:20px}.h15-result__card{padding:26px 20px;border-radius:var(--h15-r);background:radial-gradient(120% 90% at 20% 0%,var(--h15-night-2),var(--h15-night));color:var(--h15-chalk);box-shadow:var(--h15-shadow)}.h15-result__lead{font-size:1.15rem;font-weight:600}.h15-result__time{margin-top:4px!important;font-size:clamp(2.3rem,1.6rem + 4vw,3.6rem);line-height:1.05;font-weight:800;color:var(--h15-amber);font-variant-numeric:tabular-nums}.h15-result__name{display:grid;margin-top:22px!important}.h15-result__name b{font-size:clamp(3rem,2rem + 6vw,4.6rem);line-height:1.1;color:var(--h15-jung-n);text-shadow:0 0 22px color-mix(in srgb,var(--h15-accent) 55%,transparent)}.h15-result__name span{color:var(--h15-chalk-muted);font-size:.92rem}.h15-result__signs{margin-top:22px!important;font-weight:600}.h15-result__signs b{font-size:1.4rem;color:var(--h15-amber)}.h15-result__plates{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 0;padding:0;list-style:none}.h15-result__plates li{padding:6px 2px;border-radius:8px;border:1px solid var(--h15-scene-line);text-align:center;font-weight:800;color:var(--h15-chalk-muted);opacity:.7}.h15-result__plates li[data-ok]{border-color:var(--h15-jung-n);color:var(--h15-chalk);opacity:1}.h15-result__card .h15-help{color:var(--h15-chalk-muted)}.h15-cta{padding:22px 20px;border-radius:var(--h15-r);background:var(--h15-surface);border:1px solid var(--h15-line)}.h15-cta h2{font-size:1.5rem;font-weight:800}.h15-cta p{margin:8px 0 16px;color:var(--h15-muted);max-width:52ch}.h15-cta .h15-link{display:block;margin-top:8px}.h15-cta__routes{display:grid;gap:12px;margin-top:14px}.h15-cta__routes>*{min-width:0}.h15-cta .h15-btn{max-width:100%;white-space:normal;text-align:center}@media (min-width: 760px){.h15-cta__routes{grid-template-columns:1.35fr 1fr;align-items:stretch}}.h15-cta__main{padding:18px;border-radius:var(--h15-rc);background:color-mix(in srgb,var(--h15-accent) 9%,var(--h15-surface));box-shadow:inset 0 3px 0 var(--h15-accent)}.h15 .h15-cta__name{margin:0;color:var(--h15-accent-text);font-size:1.15rem;font-weight:800}.h15-cta__main p:not(.h15-cta__name){margin:6px 0 16px;color:var(--h15-ink)}.h15-cta__practice{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:16px;border:1px solid var(--h15-line);border-radius:var(--h15-rc);color:var(--h15-ink);text-decoration:none;transition:border-color .2s}.h15-cta__practice:hover{border-color:var(--h15-ink)}.h15-cta__practice .pl-pill{grid-column:1 / -1;justify-self:start}.h15-cta__practice b{display:block;line-height:1.3}.h15-cta__practice small{display:block;margin-top:4px;color:var(--h15-muted);font-size:.9rem;line-height:1.45}.h15-cta__practice>svg{transition:transform .25s var(--h15-ease)}.h15-cta__practice:hover>svg{transform:translate(3px)}.h15-breath{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 14px;border-radius:var(--h15-rc);background:color-mix(in srgb,var(--h15-accent) 10%,var(--h15-surface));font-size:.95rem;line-height:1.5;animation:h15-rise .35s var(--h15-ease)}.h15-breath>svg{flex:none;margin-top:2px;color:var(--h15-accent-text)}.h15-result>.h15-btn--ghost{justify-self:start}.h15-chart{max-width:1040px;margin:40px auto 0;padding:24px 16px 0;border-top:1px solid var(--h15-line)}.h15-chart h2{font-size:1.4rem;font-weight:800}.h15-chart__tabs{display:inline-flex;flex-wrap:wrap;gap:4px;margin-top:14px;padding:4px;border-radius:var(--h15-rc);background:var(--h15-soft)}.h15-chart__tabs button{min-height:44px;padding:0 14px;border:0;border-radius:var(--h15-rc);background:transparent;font-weight:700;font-size:.9rem;color:var(--h15-muted)}.h15-chart__tabs button[aria-selected=true]{background:var(--h15-surface);color:var(--h15-ink)}.h15-chart__say{position:sticky;top:56px;z-index:5;margin:12px 0 10px!important;padding:10px 14px;border-radius:12px;background:var(--h15-night);color:var(--h15-chalk);font-weight:600;min-height:44px}.h15-chart__letters{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}.h15-chart__cell{display:grid;justify-items:center;gap:2px;min-height:74px;padding:6px 4px;border-radius:var(--h15-rc);border:1px solid var(--h15-line);background:var(--h15-surface)}.h15-chart__cell b{font-size:1.7rem;line-height:1.1}.h15-chart__cell small{font-size:.75rem;line-height:1.25;color:var(--h15-muted);text-align:center}.h15-chart__wrap{overflow:auto;max-height:70vh;border-radius:12px;border:1px solid var(--h15-line);background:var(--h15-surface)}.h15-chart__grid{border-collapse:separate;border-spacing:0;font-family:var(--h15-ko)}.h15-chart__grid th{position:sticky;z-index:1;padding:6px;background:var(--h15-soft);font-size:1.05rem;font-weight:800;color:var(--h15-accent-text)}.h15-chart__grid thead th{top:0;z-index:2}.h15-chart__grid tbody th{left:0;color:var(--h15-cho)}.h15-chart__grid thead th:first-child{left:0;z-index:3}.h15-chart__grid td{padding:0}.h15-chart__grid td button{display:grid;place-items:center;width:44px;height:44px;border:0;border-right:1px solid var(--h15-line);border-bottom:1px solid var(--h15-line);background:transparent;font-size:1.25rem;font-weight:600}.h15-chart__grid td button:hover,.h15-chart__grid td button:focus-visible{background:var(--h15-soft)}.h15 ::-moz-selection{background:color-mix(in srgb,var(--h15-accent) 32%,transparent)}.h15 ::selection{background:color-mix(in srgb,var(--h15-accent) 32%,transparent)}.h15-missions{scrollbar-width:thin;scrollbar-color:var(--h15-line) transparent}.h15-btn--go{animation:h15-go 1.4s var(--h15-ease) 2}.h15-route{grid-template-columns:1fr;gap:0}.h15-route li{position:relative;grid-template-columns:28px 1fr;-moz-column-gap:14px;column-gap:14px;row-gap:0;align-items:center;padding:9px 0;border:0;background:none;border-radius:0}.h15-route li:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:6px;background:var(--h15-accent);opacity:.3}.h15-route li[data-done]:before{content:"";opacity:1}.h15-route li:first-child:before{top:50%}.h15-route li:last-child:before{bottom:50%}.h15-route__dot{position:relative;z-index:1;grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--h15-surface);box-shadow:inset 0 0 0 4px var(--h15-ink);font-weight:800;font-size:.8rem;font-variant-numeric:tabular-nums}.h15-route li[data-done] .h15-route__dot{background:var(--h15-accent);color:var(--h15-accent-ink);box-shadow:inset 0 0 0 4px var(--h15-accent)}.h15-route li[data-next] .h15-route__dot{box-shadow:inset 0 0 0 4px var(--h15-ink),0 0 0 3px var(--pl-exit, #ffd200)}.h15-route b,.h15-route span:not(.h15-route__dot){grid-column:2}@media (min-width: 900px){.h15-route{grid-template-columns:repeat(5,1fr)}.h15-route li{grid-template-columns:1fr;justify-items:center;text-align:center;padding:0 6px}.h15-route li:before{inset:11px 0 auto;width:auto;height:6px}.h15-route li:first-child:before{left:50%;top:11px}.h15-route li:last-child:before{right:50%;bottom:auto}.h15-route__dot{grid-row:auto;margin-bottom:8px}.h15-route b,.h15-route span:not(.h15-route__dot){grid-column:1}}.h15-between>.h15-arrive,.h15-between>.h15-recap{justify-self:stretch}.h15-arrive{padding:22px 18px 18px;border-radius:var(--h15-r);background:var(--pl-sign, #202227);color:var(--pl-sign-ink, #fff);box-shadow:inset 0 -6px 0 var(--h15-accent),0 1px 2px #0a0c1029,0 22px 40px -28px #0a0c1099;animation:h15-rise .5s var(--h15-ease) both}.h15-arrive__ko{font-family:var(--h15-ko);font-size:clamp(1.75rem,1.3rem + 2vw,2.5rem);font-weight:800;line-height:1.1;letter-spacing:-.02em}.h15 .h15-between .h15-arrive h1{margin-top:6px;font-size:clamp(1.15rem,1rem + .8vw,1.5rem);line-height:1.25;color:var(--pl-sign-ink, #fff)}.h15-linemap{position:relative;display:grid;grid-template-columns:repeat(5,1fr);margin:20px 0 6px;padding:0;list-style:none}.h15-linemap:before{content:"";position:absolute;left:10%;right:10%;top:8px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--h15-accent) 40%,transparent)}.h15-linemap li{position:relative;display:grid;justify-items:center;gap:8px;text-align:center}.h15-linemap__dot{width:22px;height:22px;border-radius:999px;background:var(--pl-sign, #202227);box-shadow:inset 0 0 0 4px var(--pl-sign-muted, #b8bcc6)}.h15-linemap li[data-done] .h15-linemap__dot{background:var(--h15-accent);box-shadow:inset 0 0 0 4px var(--h15-accent)}.h15-linemap li[data-here] .h15-linemap__dot{background:#fff;box-shadow:inset 0 0 0 5px var(--h15-accent),0 0 0 3px var(--pl-exit, #ffd200);animation:h15-pop .6s var(--h15-ease) .25s both}.h15-linemap__name{font-size:.8rem;font-weight:600;line-height:1.25;color:var(--pl-sign-muted, #b8bcc6)}.h15-linemap li[data-here] .h15-linemap__name{color:var(--pl-sign-ink, #fff)}@media (max-width: 639px){.h15-linemap__name{display:none}}.h15-recap{margin-top:8px;padding:18px;border-radius:var(--h15-r);border:1px solid var(--h15-line);background:var(--h15-surface)}.h15-recap h2{font-size:1.15rem;font-weight:800}.h15-recap__chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}.h15-recap__chips li{min-width:44px;padding:6px 10px;border-radius:var(--h15-rc);background:var(--h15-soft);font-size:1.5rem;font-weight:800;line-height:1.15;text-align:center;animation:h15-rise .4s var(--h15-ease) both;animation-delay:calc(.2s + var(--i, 0) * .05s)}.h15-recap__rule{margin-top:12px;max-width:62ch;color:var(--h15-muted)}.h15-drill__meta{display:flex;align-items:center;gap:12px}.h15-drill__pips{display:inline-flex;gap:4px}.h15-drill__pips i{width:18px;height:4px;border-radius:2px;background:var(--h15-line)}.h15-drill__pips i[data-past]{background:var(--h15-accent)}.h15-drill__pips i[data-now]{background:var(--h15-ink)}.h15-drill--end{position:relative}.h15-stamp{float:right;display:grid;place-items:center;width:84px;height:84px;margin:0 0 8px 12px;border-radius:999px;border:3px solid var(--h15-bad);box-shadow:inset 0 0 0 3px var(--h15-surface),inset 0 0 0 5px var(--h15-bad);color:var(--h15-bad);font-family:var(--h15-ko);font-size:1.5rem;font-weight:800;transform:rotate(-12deg);animation:h15-stamp .5s var(--h15-ease) .15s both}.h15-reads{display:grid;gap:8px;margin-top:12px}.h15-reads .h15-opt{font-size:1.15rem;font-weight:700;letter-spacing:.01em}.h15-sheet__ask svg{display:inline;vertical-align:-2px;color:var(--h15-good)}.h15-hint{margin-top:10px;padding:10px 14px;border-radius:var(--h15-rc);background:color-mix(in srgb,var(--h15-accent) 12%,var(--h15-surface));font-size:.95rem;animation:h15-rise .3s var(--h15-ease)}.h15-learned,.h15-again{padding:20px;border-radius:var(--h15-r);border:1px solid var(--h15-line);background:var(--h15-surface)}.h15-learned h2,.h15-again h2{font-size:1.3rem;font-weight:800}.h15-learned ul,.h15-again ul{display:grid;gap:12px;margin:14px 0 0;padding:0;list-style:none}.h15-learned li{display:grid;grid-template-columns:52px 1fr;align-items:baseline;gap:12px}.h15-learned li b{justify-self:end;font-size:1.75rem;font-weight:800;line-height:1;color:var(--h15-accent-text);font-variant-numeric:tabular-nums}.h15-learned li strong{display:block;font-weight:700}.h15-learned li small{display:block;color:var(--h15-muted);font-size:.9rem}@media (min-width: 640px){.h15-learned ul{grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px}}.h15-again ul{gap:6px}.h15-again button{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:6px 14px;border:1px solid var(--h15-line);border-radius:var(--h15-rc);background:var(--h15-bg);text-align:left}.h15-again button b{font-size:1.4rem;font-weight:800}.h15-again button span{color:var(--h15-muted)}.h15-chartfold{max-width:1040px;margin:40px auto 0;padding:0 16px}.h15-chartfold>summary{display:flex;align-items:center;min-height:52px;border-top:1px solid var(--h15-line);font-weight:700;cursor:pointer;list-style:none}.h15-chartfold>summary::-webkit-details-marker{display:none}.h15-chartfold>summary:after{content:"";width:8px;height:8px;margin-left:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--h15-ease)}.h15-chartfold[open]>summary:after{transform:translateY(2px) rotate(-135deg)}.h15-chartfold .h15-chart{margin-top:0;padding:0 0 8px;border-top:0}.h15-chartfold .h15-chart>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.h15-pal__more{margin-top:4px;font-size:.9rem}@media (max-width: 899px){.h15-pal{position:sticky;bottom:var(--play-consent-h, 0px);z-index:5;margin:0 -16px;padding:10px 16px calc(6px + env(safe-area-inset-bottom,0px));background:var(--h15-bg);border-top:1px solid var(--h15-line);box-shadow:0 -14px 24px -20px #0a0c108c}.h15-pal__grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));max-height:32vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.h15-chip{min-height:54px}}@keyframes h15-go{0%{box-shadow:0 0 color-mix(in srgb,var(--h15-accent) 55%,transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--h15-accent) 0%,transparent)}}@keyframes h15-stamp{0%{transform:rotate(-12deg) scale(1.8);opacity:0}to{transform:rotate(-12deg) scale(1);opacity:1}}@keyframes h15-pop{0%{transform:scale(.82);opacity:.4}60%{transform:scale(1.06);opacity:1}to{transform:scale(1)}}@keyframes h15-rise{0%{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}@keyframes h15-sheet{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}@keyframes h15-draw{to{stroke-dashoffset:0}}@keyframes h15-dot{0%{transform:scale(1.4);opacity:1}70%{transform:scale(.7);opacity:1}to{transform:scale(0);opacity:0}}@keyframes h15-dash{to{stroke-dashoffset:-18}}@keyframes h15-glow{0%{stroke:var(--h15-accent);filter:drop-shadow(0 0 6px var(--h15-accent))}to{stroke:var(--h15-chalk);filter:none}}@keyframes h15-air{0%{opacity:0;transform:translate(6px)}40%{opacity:1}to{opacity:0;transform:translate(-10px)}}@keyframes h15-breathe{50%{opacity:.45}}@keyframes h15-neon{0%{opacity:.3}20%{opacity:1}30%{opacity:.4}45%{opacity:1}}@keyframes h15-split{0%{transform:translateY(-14px) scale(.6);opacity:0}to{transform:none;opacity:1}}@keyframes h15-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes h15-nudge{50%{transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.h15 *,.h15-ghost{animation:none!important;transition:none!important}.hv-tick,.hm-letter[data-on]{stroke-dashoffset:0}.hv-dot{opacity:0}}.pl-top .h15-clock{margin-right:4px;background:transparent;border-color:var(--pl-sign-rule);color:var(--pl-sign-muted)}.pl-top .h15-clock__track{stroke:#ffffff29}.pl-top .h15-clock__fill{stroke:var(--line-td)}.h15 :is(.h15-btn,.h15-key,.h15-opt,.h15-place,.h15-signchip,.h15-sheet__x,.h15-rail__btn,.h15-rail__dot,.h15-review__card,.h15-sheet__card){border-radius:0}.h15 :is(.h15-btn,.h15-key,.h15-opt,.h15-place,.h15-signchip){border:var(--vb-b);box-shadow:var(--vb-sh-sm);transition:transform .08s ease,box-shadow .08s ease,background-color .12s ease,opacity .2s ease}.h15 .h15-btn--primary{border-color:var(--vb-edge)}.h15 .h15-btn--lg,.h15 .h15-btn--go{box-shadow:var(--vb-sh)}.h15 .h15-btn--ghost{background:var(--h15-surface)}@media (hover: hover){.h15 :is(.h15-btn,.h15-key,.h15-opt,.h15-place,.h15-signchip):hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--vb-shc);border-color:var(--vb-edge)}.h15 :is(.h15-opt,.h15-place,.h15-signchip):hover:not(:disabled):not([data-lit]){background:color-mix(in srgb,var(--h15-accent) 14%,var(--h15-surface))}.h15 .h15-rail__btn:hover:not(:disabled){border-color:var(--vb-edge)}}.h15 :is(.h15-btn,.h15-key,.h15-opt,.h15-place,.h15-signchip):active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--vb-shc)}.h15 .h15-key[aria-pressed=true]{border-color:var(--vb-edge);box-shadow:3px 3px 0 var(--h15-accent)}.h15 .h15-opt[data-state=right]{border-color:var(--vb-edge);box-shadow:4px 4px 0 var(--h15-good)}.h15 .h15-opt[data-state=wrong]{border-color:var(--vb-edge);box-shadow:4px 4px 0 var(--h15-bad)}.h15 :is(.h15-opt[data-state=dim],.h15-place[data-bad]){box-shadow:none}.h15 .h15-signchip[data-lit]{border-color:var(--vb-edge);background:var(--vb-y);color:var(--vb-k)}.h15 .h15-signchip[data-lit] svg{color:var(--vb-k)}.h15 .h15-rail__btn{border:2px solid transparent}.h15 .h15-rail__btn[aria-current=step]{background:var(--h15-accent);color:var(--h15-accent-ink);border-color:var(--vb-edge);box-shadow:3px 3px 0 var(--vb-shc)}.h15 .h15-rail__btn[aria-current=step] .h15-rail__dot{background:var(--vb-k);color:var(--vb-y)}.h15 .h15-sheet__x{border:2px solid var(--vb-edge)}.h15 .h15-sheet__card{border:var(--vb-b);border-bottom:0;box-shadow:0 -6px 0 var(--vb-shc)}@media (min-width: 700px){.h15 .h15-sheet__card{border-bottom:var(--vb-b);box-shadow:8px 8px 0 var(--vb-shc)}}.h15 :is(.h15-review__card,.h15-win,.h15-recap,.h15-cta){border:var(--vb-b);border-radius:0;box-shadow:var(--vb-sh)}.h15 .h15-result__card{border-radius:0;border:var(--vb-b);box-shadow:6px 6px 0 var(--h15-accent)}.h15,:root[data-theme=dark] .h15{--h15-desk: #34251a;--h15-bg: #e9dcbf;--h15-paper: #efe4ca;--h15-surface: #f7efdc;--h15-soft: #e5d5b3;--h15-ink: #1c1612;--h15-muted: #5a4a3a;--h15-line: #cbb791;--h15-rule: rgba(60, 40, 25, .12);--h15-night: #e9dcbd;--h15-night-2: #f2e8d1;--h15-chalk: #1c1612;--h15-chalk-muted: #6b5a48;--h15-scene-line: #cdb994;--h15-accent-text: #6e4483;--h15-amber: #b5771a;--h15-cho: #2f62c9;--h15-jung: #c2304b;--h15-jong: #94570a;--h15-cho-n: #2f62c9;--h15-jung-n: #c2304b;--h15-jong-n: #94570a;--h15-good: #0f7350;--h15-good-soft: #dde6c8;--h15-bad: #b5301c;--h15-bad-soft: #f2d5c4;--h15-seal: #b5301c;--h15-han: var(--ink-han);--h15-shadow: 0 1px 0 rgba(60, 35, 10, .12), 0 18px 34px -22px rgba(20, 10, 4, .75);--h15-r: 4px;--h15-on-desk: #d9c8a6;--vb-edge: var(--h15-ink);--vb-shc: var(--h15-ink);--vb-b: 2px solid var(--h15-ink);--vb-sh-sm: 3px 3px 0 var(--h15-ink);--vb-sh: 5px 5px 0 var(--h15-ink);--vb-y: var(--h15-seal);--vb-k: #fbf1de;color:var(--h15-ink);background-color:var(--h15-desk);background-image:radial-gradient(120% 80% at 50% 0%,rgba(255,220,170,.07),transparent 60%),repeating-linear-gradient(92deg,#ffdcaa09 0 3px,#0000000d 3px 7px,#ffdcaa05 7px 15px)}:root[data-theme=dark] .h15{--h15-desk: #1d150f}.h15 :is(.h15-plate,.h15-street__scroll){--h15-night: #1d1712;--h15-night-2: #2b221a;--h15-chalk: #f3ead8;--h15-chalk-muted: #c2b39b;--h15-scene-line: #4a3b2e;--h15-cho-n: #8db4ff;--h15-jung-n: #ff8fa1;--h15-jong-n: #ffc46b;--h15-amber: #ffc46b}.h15-paper,.h15 .h15-main,.h15 .h15-chart,.h15 .h15-chartfold{position:relative;background-color:var(--h15-paper);background-image:var(--ink-paper-tex);box-shadow:inset 0 0 70px #78501e29,0 26px 40px -24px #0009;isolation:isolate}.h15 .h15-main:before,.h15 .h15-chart:before,.h15-intro__page:before{content:"";position:absolute;inset:12px;border:3px solid rgba(28,22,18,.82);pointer-events:none;z-index:-1}.h15 .h15-main:after,.h15 .h15-chart:after,.h15-intro__page:after{content:"";position:absolute;inset:17px;border:1px solid rgba(28,22,18,.55);background:repeating-linear-gradient(90deg,transparent 0 63px,var(--h15-rule) 63px 64px);pointer-events:none;z-index:-1}.h15 .h15-main{margin:22px auto 0;width:calc(100% - 20px);padding:42px 36px 34px;border-radius:3px}.h15 .h15-main[data-stage="1"][data-sub=learn],.h15 .h15-main[data-stage="4"][data-sub=learn],.h15 .h15-main[data-stage="5"][data-sub=learn]{max-width:1080px}.h15 .h15-main.h15-between,.h15 .h15-main.h15-result{max-width:820px}.h15 .h15-chart{max-width:1080px;margin:22px auto 0;width:calc(100% - 20px);padding:42px 36px 30px;border-radius:3px}.h15 .h15-chartfold{max-width:1080px;margin:22px auto 0;width:calc(100% - 20px);border:0;border-radius:3px}.h15 .h15-chartfold .h15-chart{margin:0;width:auto;box-shadow:none;background:none}.h15 .h15-novoice{background:color-mix(in srgb,var(--h15-paper) 94%,transparent);color:var(--h15-ink);border-left:4px solid var(--h15-seal);border-radius:2px}.h15 .h15-foot{color:var(--h15-on-desk)}@media (max-width: 640px){.h15 .h15-main,.h15 .h15-chart{width:calc(100% - 12px);padding:32px 22px 26px}.h15 .h15-main:before,.h15 .h15-chart:before,.h15-intro__page:before{inset:8px}.h15 .h15-main:after,.h15 .h15-chart:after,.h15-intro__page:after{inset:12px}}.h15 .h15-head__ko{display:flex;align-items:baseline;gap:10px;color:var(--h15-seal)}.h15-head__no{font-weight:700}.h15 .h15-rail{border:0;background:transparent}.h15 .h15-rail ol{max-width:1080px;padding:12px 10px 0}.h15 .h15-rail__btn{color:var(--h15-on-desk);border-radius:4px}.h15 .h15-rail__btn:disabled{opacity:.5}.h15 .h15-rail__dot{background:#efe4ca24;color:#f3ead8;border-radius:4px}.h15 .h15-rail__btn[data-done] .h15-rail__dot{background:var(--h15-seal);color:#f8e9d6}.h15 .h15-rail__btn[aria-current=step]{background:var(--h15-accent);color:#fff;border-color:#f3ead8;box-shadow:3px 3px #0000008c}.h15 .h15-rail__btn[aria-current=step] .h15-rail__dot{background:#f3ead8;color:var(--h15-ink)}.h15 .h15-btn{background:var(--h15-surface)}.h15 .h15-btn--primary{background:var(--h15-accent);color:#fff}.h15 .h15-btn--ghost{border-color:var(--h15-ink)}.h15 .h15-key{background:var(--h15-accent);color:#fff;border-radius:8px}.h15 .h15-key[aria-pressed=true]{background:var(--h15-ink);color:#f3ead8;box-shadow:3px 3px 0 var(--h15-accent)}.h15 .h15-key__seal{position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:4px;z-index:2}.h15 .h15-key__seal svg{position:static;color:#f8e9d6}.h15 .h15-opt{position:relative;overflow:visible}.h15 .h15-opt[data-state=right]{box-shadow:4px 4px 0 var(--h15-ink);background:var(--h15-surface)}.h15 .h15-opt[data-state=wrong]{box-shadow:4px 4px 0 var(--h15-ink);background:color-mix(in srgb,var(--h15-paper) 70%,#b9a98d)}.h15 .h15-scene{background:radial-gradient(120% 90% at 30% 0%,rgba(255,250,235,.55),transparent 70%),var(--h15-night);color:var(--h15-ink);border:2px solid var(--h15-ink);border-radius:3px;box-shadow:inset 0 0 0 5px var(--h15-night),inset 0 0 0 6px #1c161266,inset 0 0 40px #78501e33}.h15 .hm-letter{stroke:var(--h15-ink);filter:url(#h15-roughen)}.h15 :is(.hs-stroke,.hv-base,.h15-brush__stroke){filter:url(#h15-roughen)}.h15-mouth__src{display:grid;gap:2px;margin-top:10px;padding-left:12px;border-left:3px solid var(--h15-seal);font-size:.9rem;color:var(--h15-muted)}.h15 .h15-intro{position:relative;max-width:1200px;padding:26px 10px 8px;gap:0}.h15-intro__page{position:relative;padding:44px 40px 36px}.h15-intro__page--l{display:grid;grid-template-columns:1fr auto;gap:16px;border-radius:6px 6px 0 0}.h15-intro__page--r{display:flex;flex-direction:column;border-radius:0 0 6px 6px}.h15-intro__gutter{display:none}.h15-brush{width:100%;max-height:220px}.h15-brush__stroke{fill:none;stroke:var(--h15-ink);stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.h15-intro__col{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px}.h15 .h15-intro__han{writing-mode:vertical-rl;font:700 2.1rem/1 var(--h15-han);letter-spacing:.3em}.h15 .h15-intro__src{writing-mode:vertical-rl;font-size:.85rem;color:var(--h15-muted)}.h15 .h15-intro__kicker{display:flex;gap:8px;color:var(--h15-seal);font-weight:700}.h15 .h15-intro__h1{margin-top:6px}.h15 .h15-intro__lede{color:#4a3d31}.h15-toc{margin-top:26px;padding-top:10px;border-top:2px solid var(--h15-ink)}.h15 .h15-toc__h{font-size:.9rem;font-weight:600;color:var(--h15-muted)}.h15 .h15-route{display:block;margin-top:4px}.h15 .h15-route li{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px dashed rgba(28,22,18,.32);text-align:left;justify-items:start}.h15 .h15-route li:before{content:none}.h15 .h15-route__dot,.h15 .h15-route li[data-done] .h15-route__dot,.h15 .h15-route li[data-next] .h15-route__dot{width:auto;height:auto;margin:0;background:none;box-shadow:none;font:800 1.15rem/1 var(--h15-vi);color:var(--h15-ink)}.h15 .h15-route li[data-next]{background:linear-gradient(90deg,color-mix(in srgb,var(--h15-accent) 14%,transparent),transparent 85%)}.h15 .h15-route li[data-next] .h15-route__dot{color:var(--h15-accent-text)}.h15 .h15-route .h15-route__t{display:grid;grid-column:2}.h15 .h15-route .h15-route__t b{font-size:1rem;color:var(--h15-ink)}.h15 .h15-route .h15-route__t span{font-size:.82rem;color:var(--h15-muted)}.h15 .h15-route .h15-route__min{grid-column:3;font-size:.82rem;color:var(--h15-muted)}.h15 .h15-route .h15-route__seal{grid-column:3;width:34px;height:34px}.h15 .h15-route .h15-route__seal svg{color:#f8e9d6}.h15 .h15-intro__note{margin-top:16px;color:var(--h15-on-desk)}.h15-cover{position:absolute;inset:-3px -6px -3px -2px;z-index:5;transform-origin:left center;border-radius:2px 8px 8px 2px;background:repeating-linear-gradient(45deg,rgba(90,55,15,.16) 0 2px,transparent 2px 22px),repeating-linear-gradient(-45deg,rgba(90,55,15,.16) 0 2px,transparent 2px 22px),radial-gradient(circle at 30% 30%,#c99d52,#a97a35);box-shadow:inset 0 0 40px #3c1e0080;backface-visibility:hidden;animation:h15-cover 1.3s .45s cubic-bezier(.6,0,.25,1) forwards;pointer-events:none}.h15-cover__slip{position:absolute;top:36px;left:40px;padding:18px 12px;background:#f4ecd8;border:2px solid #6d4c22;writing-mode:vertical-rl;font:700 1.9rem/1 var(--ink-han);letter-spacing:.25em;color:#1c1612}@keyframes h15-cover{to{transform:perspective(2400px) rotateY(-178deg);opacity:.6}}@media (min-width: 820px){.h15 .h15-intro{grid-template-columns:1fr 30px 1.12fr;align-items:stretch;padding-top:34px}.h15-intro__page--l{border-radius:6px 0 0 6px;box-shadow:inset -40px 0 50px -36px #462a108c,inset 0 0 70px #78501e29,0 30px 44px -26px #0009}.h15-intro__page--r{border-radius:0 6px 6px 0;box-shadow:inset 40px 0 50px -36px #462a108c,inset 0 0 70px #78501e29,0 30px 44px -26px #0009;padding:48px 50px 40px}.h15-brush{max-height:560px;height:100%}.h15-intro__gutter{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:20px 0;border-top:3px solid rgba(28,22,18,.82);border-bottom:3px solid rgba(28,22,18,.82);box-shadow:inset 8px 0 12px -8px #3c230a80,inset -8px 0 12px -8px #3c230a80;font:600 .85rem/1 var(--h15-han);color:#4a3d31}.h15-intro__gutter span{writing-mode:vertical-rl;letter-spacing:.3em}.h15-intro__gutter i{width:20px;height:14px;background:var(--h15-ink);clip-path:polygon(0 0,100% 0,100% 100%,50% 55%,0 100%)}.h15-intro__gutter i:last-child{transform:scaleY(-1)}.h15 .h15-intro__note{grid-column:1 / -1}}.h15 .h15-plate{position:relative}.h15 .h15-plate__seal{position:absolute;top:-12px;right:-10px;width:44px;height:44px;font-size:1.35rem}.h15 .h15-stamp{display:inline-grid;width:96px;height:96px;font:800 1.7rem/1 var(--h15-ko);color:#f8e9d6;border:0;background:var(--h15-seal);box-shadow:inset 0 0 0 3px #f8e9d699,inset 0 0 0 6px var(--h15-seal);animation:none}@media (prefers-reduced-motion: reduce){.h15-cover{display:none}}.h15 .vb-score{--vb-vi: var(--h15-vi);--vb-pop: cubic-bezier(.3, 1.6, .5, 1);background:#1c1612;color:#f3ead8;border:2px solid #efe4ca;box-shadow:3px 3px 0 var(--h15-seal)}.h15 .vb-score__lbl{color:#d9c8a6}.h15 .vb-score__n{color:#ffcf87}.h15 .vb-score__tot{color:#f3ead8}.h15 .h15-mouth__scene .hm-letter,.h15 .h15-mouth__scene .hm-letter[data-on]{stroke:var(--h15-ink);filter:url(#h15-roughen)}.h15 .h15-mouth__big{color:var(--h15-ink)}.h15 :is(.h15-piece,.h15-chip,.h15-slot){border:2px solid var(--h15-ink);box-shadow:0 4px 0 var(--h15-accent),0 4px 0 2px var(--h15-ink);transition:transform .12s var(--h15-ease),box-shadow .12s var(--h15-ease)}.h15 .h15-chip{background:repeating-linear-gradient(88deg,rgba(90,50,20,.14) 0 2px,transparent 2px 6px),linear-gradient(160deg,#e2bd8c,#c4935f);color:#2a170a}.h15 .h15-chip small{color:#4a2f17}.h15 .h15-piece{background:var(--h15-surface)}@media (hover: hover){.h15 :is(.h15-piece,.h15-chip,.h15-slot):hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 0 var(--h15-accent),0 6px 0 2px var(--h15-ink)}}.h15 :is(.h15-piece,.h15-chip,.h15-slot):active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--h15-accent),0 1px 0 2px var(--h15-ink)}.h15 .h15-piece[aria-pressed=true],.h15 .h15-slot[aria-pressed=true]{background:var(--h15-accent);color:#fff}.h15 .h15-tree__chip[data-open]{background:var(--h15-accent);color:#fff;border:2px solid var(--h15-ink)}.h15 .h15-novoice{margin:20px auto 0}@media (max-width: 819.98px){.h15-intro__page--l{padding:30px 26px 22px;align-items:center}.h15-intro__col{display:contents}.h15 .h15-intro__han{grid-column:2;grid-row:1;font-size:1.5rem}.h15 .h15-intro__src{grid-column:1 / -1;writing-mode:horizontal-tb;text-align:center}.h15-intro__page--r{padding:30px 26px 26px}}.h15 .h15-result__card{position:relative}.h15 .h15-result__seal{position:absolute;top:18px;right:22px;width:78px;height:78px;font:800 1.45rem/1 var(--h15-ko)}@media (max-width: 520px){.h15 .h15-result__seal{width:56px;height:56px;font-size:1.05rem;top:12px;right:12px}}.h15 .h15-result__name b{text-shadow:none}.h15 .h15-result__lead{padding-right:96px}@media (max-width: 520px){.h15 .h15-result__lead{padding-right:64px}}.h15 .psc{--psc-band: #241a12;--psc-on-band: #f3ead8;border-radius:3px;box-shadow:inset 0 0 0 2px #1c1612,inset 0 0 0 7px #241a12,inset 0 0 0 8px #f3ead859}.h15 .psc-h__ko{color:#e7a08f}:root{--ink-ink: #1c1612;--ink-seal: #b5301c;--ink-paper: #efe4ca;--ink-han: "Batang", "BatangChe", "Noto Serif KR", "Noto Serif CJK KR", "Noto Serif TC", "MingLiU", "SimSun", serif;--ink-paper-tex: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .33  0 0 0 0 .24  0 0 0 0 .14  0 0 0 .18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='600' height='600'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='.006 .09' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 .55  0 0 0 0 .45  0 0 0 0 .3  0 0 0 .5 -.18'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");--ink-seal-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80'><filter id='r'><feTurbulence baseFrequency='.5' numOctaves='2' seed='7'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 -2.2 2.1'/></filter><rect width='80' height='80' filter='url(%23r)'/></svg>")}.ink-write__body{filter:url(#h15-roughen)}.ink-write__bleed{filter:url(#h15-bleed);opacity:.18}.ink-write__tip{filter:url(#h15-roughen)}.ink-splat{position:absolute;z-index:90;margin:0;border-radius:50%;pointer-events:none;background:var(--ink-seal)}.ink-splat--ink{background:var(--ink-ink)}.ink-seal{display:inline-grid;place-items:center;background:var(--ink-seal);color:#f8e9d6;font-family:var(--ink-han);font-weight:700;line-height:1;border-radius:6px;box-shadow:inset 0 0 0 2px #f8e9d699,inset 0 0 0 4px var(--ink-seal);transform:rotate(-4deg);-webkit-mask:var(--ink-seal-mask) center / cover;mask:var(--ink-seal-mask) center / cover}.ink-seal--xl{width:132px;height:132px;font-size:52px;border-radius:12px;box-shadow:inset 0 0 0 4px #f8e9d6a6,inset 0 0 0 8px var(--ink-seal)}.ink-mark{position:absolute;inset:-8px -10px;width:calc(100% + 20px);height:calc(100% + 16px);pointer-events:none;overflow:visible;z-index:2}.ink-mark path{fill:none;stroke-linecap:round;stroke-dasharray:1}.ink-mark--circle path{stroke:var(--ink-seal);stroke-width:3.5;opacity:.88}.ink-mark--slash path{stroke:var(--ink-ink);stroke-width:3;opacity:.7}.ink-leaf{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:24px;background-color:var(--ink-paper);background-image:var(--ink-paper-tex);transform-origin:left center;box-shadow:0 0 80px #3c230a80 inset;pointer-events:none}.ink-leaf__frame{position:relative;display:grid;justify-items:center;gap:10px;padding:48px 56px;border:3px double rgba(28,22,18,.85);outline:1px solid rgba(28,22,18,.5);outline-offset:6px;color:var(--ink-ink);text-align:center}.ink-leaf__no{margin:0;font:700 15px/1 Be Vietnam Pro,Pretendard,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-seal)}.ink-leaf__ko{margin:0;font:800 clamp(2.4rem,1.6rem + 4vw,4.2rem) / 1.1 "Pretendard","Noto Sans KR",sans-serif;letter-spacing:-.01em}.ink-leaf__name{margin:0;font:600 1.05rem/1.4 Be Vietnam Pro,Pretendard,sans-serif;color:#4a3d31}.ink-moment{position:fixed;left:50%;top:38%;z-index:96;display:grid;justify-items:center;gap:10px;width:min(92vw,460px);padding:28px 24px 22px;transform:translate(-50%,-50%);background-color:var(--ink-paper);background-image:var(--ink-paper-tex);border:3px double rgba(28,22,18,.85);border-radius:4px;box-shadow:0 24px 60px -20px #1e1208a6;color:var(--ink-ink);text-align:center;pointer-events:none}.ink-moment__title{margin:4px 0 0;font:800 1.35rem/1.25 Be Vietnam Pro,Pretendard,sans-serif}.ink-moment__sub{margin:0;font:500 .98rem/1.45 Be Vietnam Pro,Pretendard,sans-serif;color:#4a3d31}html:has(.h15) body{background:#eef0f6}html[data-theme=dark]:has(.h15) body{background:#0b0d18}
