@font-face{font-family:ChosunIlboMyungjo;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_one@1.0/Chosunilbo_myungjo.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}:root{color:#1b140e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--paper:#f5efe2;--ink:#1b140e;--line:#764e2124;--accent:#7a5632;--muted:#1b140ea3;--frame:#7a56322e;--cell-size:clamp(2rem, 8vw, 2.8rem);background:#f5efe2;font-family:ChosunIlboMyungjo,Noto Serif KR,Times New Roman,serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:var(--paper);margin:0}button,input{font:inherit}.app-shell{background:repeating-linear-gradient(to right, transparent 0 36px, var(--line) 36px 37px), repeating-linear-gradient(to bottom, transparent 0 36px, var(--line) 36px 37px), radial-gradient(circle at top, #7a563214, transparent 34%), var(--paper);min-height:100svh}.screen{justify-content:center;align-items:center;width:min(100%,860px);min-height:100svh;margin:0 auto;padding:18px 16px 28px;display:flex}.intro-frame,.quiz-frame,.result-frame{border:1px solid var(--frame);background:#f5efe2eb;width:100%;padding:24px 18px}.quiz-frame{position:relative;overflow:hidden}.quiz-frame:before{content:"";opacity:.5;pointer-events:none;background:linear-gradient(135deg,#ffffff29,#0000 36%);position:absolute;inset:0}.quiz-frame--entry{animation:.52s paper-rise}.quiz-frame--correct{animation:.52s paper-rise,.68s correct-bloom}.quiz-frame--wrong{animation:.52s paper-rise,.52s wrong-shudder}.topline,.intro-meta,.action-button,.result-message,.review-detail,.share-notice,.feedback-banner{font-family:Noto Sans KR,Arial,sans-serif}.topline,.intro-meta{color:var(--accent);letter-spacing:.16em;margin:0;font-size:.84rem}h1,.result-score{letter-spacing:-.05em;margin:0;font-size:clamp(3rem,14vw,5.6rem);font-weight:700;line-height:.95}.intro-copy{margin:16px 0 0;font-size:1.08rem;line-height:1.8}.intro-meta{margin-top:18px}.feedback-banner{letter-spacing:.08em;border-radius:999px;align-items:center;gap:8px;margin-bottom:14px;padding:8px 12px;font-size:.84rem;animation:.32s banner-pop;display:inline-flex}.feedback-banner--correct{color:#446038;background:#567c4324}.feedback-banner--wrong{color:#8b4331;background:#a04b3424}.paper-header{margin-bottom:24px}.progress-track{background:#7a563229;height:2px;margin-top:10px}.progress-track span{background:var(--accent);height:100%;transition:width .24s;display:block}.inline-question{letter-spacing:-.04em;word-break:keep-all;font-size:clamp(1.9rem,7.6vw,3.4rem);line-height:1.6}.inline-input-wrap{--cell-count:1;vertical-align:-.08em;margin:0 .12em;display:inline-flex;position:relative}.manuscript-boxes{grid-template-columns:repeat(var(--cell-count), var(--cell-size));align-items:start;display:grid}.manuscript-cell{width:var(--cell-size);height:var(--cell-size);background:#ffffff24;border:1px solid #7a563257;border-left-width:0;justify-content:center;align-items:center;transition:border-color .18s,background-color .18s,transform .18s;display:flex}.manuscript-cell:first-child{border-left-width:1px}.manuscript-cell-char{-webkit-text-stroke:.014em currentColor;text-shadow:.016em 0,-.016em 0;font-family:ChosunIlboMyungjo,Noto Serif KR,serif;font-size:.88em;font-weight:900;line-height:1;display:block;transform:translateY(-.06em)}.manuscript-cell-char--empty{opacity:0;pointer-events:none}.inline-input-wrap--revealed .manuscript-cell{background:#a04b340f;border-color:#8b43316b}.manuscript-cell--revealed{animation:.38s both reveal-cell;animation-delay:calc(var(--reveal-index,0) * 72ms)}.manuscript-cell-char--revealed{color:#8b4331;animation:.38s cubic-bezier(.2,.8,.2,1) both reveal-char;animation-delay:calc(var(--reveal-index,0) * 72ms)}.inline-input-wrap--choseong .manuscript-cell-char{-webkit-text-stroke:0 transparent;text-shadow:none;font-weight:700}.inline-input-wrap:focus-within .manuscript-cell{border-color:var(--accent);background:#7a56320d;transform:translateY(-1px)}.inline-input{opacity:0;color:#0000;caret-color:#0000;background:0 0;border:0;outline:none;width:100%;height:100%;position:absolute;inset:0}.keyboard-keeper{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:fixed;bottom:0;left:-9999px}.quiz-form,.result-frame{width:100%}.action-button{color:var(--accent);letter-spacing:.1em;cursor:pointer;background:0 0;border:0;margin-top:28px;margin-right:18px;padding:0;font-size:.96rem;font-weight:700;transition:transform .18s,opacity .18s}.action-button:hover{transform:translate(2px)}.action-button:disabled{opacity:.5;cursor:default}.result-message{color:var(--muted);letter-spacing:.04em;margin:14px 0 0;font-size:.95rem}.review-list{gap:14px;margin:24px 0 0;padding:0;list-style:none;display:grid}.review-item{border-top:1px solid var(--frame);padding-top:14px}.review-sentence,.review-detail{margin:0;line-height:1.7}.review-detail{color:var(--muted);margin-top:4px;font-size:.94rem}.result-actions{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.share-notice{color:var(--muted);margin:12px 0 0;font-size:.92rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes paper-rise{0%{opacity:0;transform:translateY(10px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes correct-bloom{0%{box-shadow:0 0 #4d733b00}45%{box-shadow:0 16px 34px #4d733b2e}to{box-shadow:0 0 #4d733b00}}@keyframes wrong-shudder{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes banner-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-cell{0%{opacity:.5;transform:translateY(8px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes reveal-char{0%{opacity:0;transform:translateY(.22em)scale(.82)}to{opacity:1;transform:translateY(-.06em)scale(1)}}@media (width<=640px){:root{--cell-size:clamp(1.75rem, 9vw, 2.35rem)}.screen{padding:12px 10px 22px}.intro-frame,.quiz-frame,.result-frame{padding:20px 14px}}
