:root{--font-display:"SF Pro Display","SF Pro Text","New York","Iowan Old Style","Apple SD Gothic Neo","Noto Serif KR",serif;--font-body:"SF Pro Display","SF Pro Text","New York","Iowan Old Style","Apple SD Gothic Neo","Noto Serif KR",serif;--bg:#ffffff;--bg-deep:#0f0f0f;--panel:#f3f3f3;--panel-strong:#f7f7f7;--ink:#111111;--muted:#6a6a6a;--line:rgba(17,17,17,0.08);--accent:#111111;--accent-dark:#111111;--accent-soft:rgba(17,17,17,0.08);--shadow:0 10px 30px rgba(0,0,0,0.04);--shadow-strong:0 16px 40px rgba(0,0,0,0.07)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;color:var(--ink);background:#ffffff;font-family:var(--font-body),"Helvetica Neue",sans-serif}body:before{display:none}button,input,select{font:inherit}.page-shell{position:relative;width:min(920px,calc(100% - 2rem));margin:0 auto;padding:5rem 0}.minimal-hero{margin-bottom:2.5rem;text-align:center}.minimal-hero h1{margin:0;font-family:var(--font-display),Georgia,serif;font-size:clamp(2.2rem,5.2vw,3.8rem);line-height:.98;letter-spacing:-.04em}.upload-card{display:grid;grid-gap:1.2rem;gap:1.2rem}.dropzone,.preview-panel,.status-panel{background:var(--panel);border:1px solid rgba(17,17,17,.08);border-radius:28px;box-shadow:var(--shadow)}.dropzone{position:relative;overflow:hidden;padding:2.1rem 1.7rem;border-style:solid;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.dropzone.is-dragging,.dropzone:hover{transform:translateY(-2px);border-color:rgba(17,17,17,.16);background:#f0f0f0;box-shadow:var(--shadow-strong)}.dropzone:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 100%);opacity:.4}.dropzone-shell{position:relative;z-index:1;text-align:center}.dropzone-title{margin:0;font-family:var(--font-display),Georgia,serif;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.08;letter-spacing:-.03em}.dropzone-copy,.meta-label,.status-copy{margin:.65rem 0 0;color:var(--muted);line-height:1.55;font-size:.74rem}.preview-panel{display:grid;grid-gap:1.2rem;gap:1.2rem;padding:1rem}.hint-field{display:grid;grid-gap:.5rem;gap:.5rem}.preview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);grid-gap:1rem;gap:1rem;align-items:end}.hint-label{font-size:.72rem;font-weight:800;color:var(--ink)}.hint-select{width:100%;border:1px solid rgba(22,32,51,.08);border-radius:14px;padding:.72rem .82rem;background:var(--panel-strong);color:var(--ink);box-shadow:none;font-size:.8rem}.result-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.9fr);grid-gap:1rem;gap:1rem;align-items:start}.preview-frame{overflow:hidden;border-radius:22px;background:#ffffff;border:1px solid rgba(22,32,51,.08)}.preview-image{display:block;width:100%;max-height:480px;object-fit:contain}.preview-meta{display:grid;grid-gap:1rem;gap:1rem;align-items:end}.file-chip{padding:.9rem 1rem;border:1px solid rgba(22,32,51,.08);border-radius:16px;background:#f7f7f7}.meta-label{font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.meta-value,.status-title{margin:.25rem 0 0;font-size:.84rem;font-weight:800}.result-meta{height:100%}.meta-stack{display:grid;grid-gap:1rem;gap:1rem;margin-top:1rem}.primary-button{border:0;border-radius:999px;padding:.82rem 1.1rem;color:#ffffff;background:linear-gradient(135deg,#111111,#2a2a2a);box-shadow:0 8px 20px rgba(0,0,0,.12);cursor:pointer;font-size:.78rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}.primary-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(0,0,0,.14)}.primary-button:disabled{opacity:.6;cursor:progress}.status-panel{padding:1.05rem 1.15rem}.generator-panel{margin-top:1rem}.generator-header{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.generator-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.8rem;gap:.8rem;margin-top:1rem}.generation-loading{margin-top:1rem;padding:.9rem 1rem;border:1px solid rgba(17,17,17,.08);border-radius:16px;background:#f7f7f7}.ocr-panel{margin-top:1rem}.ocr-header{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.status-title{margin:0}.ocr-result{margin-top:1rem}.analysis-panel{margin-top:1rem;padding:1rem 0 0;border-top:1px solid var(--line)}.problem-parse-grid{display:grid;grid-gap:.35rem;gap:.35rem;margin-top:1rem}.ocr-text-block{margin-top:.5rem;padding:.9rem;border-radius:18px;border:1px solid rgba(22,32,51,.08);background:#f7f7f7}.ocr-text-block p{margin:0;line-height:1.7}.ocr-text-block p+p{margin-top:.85rem}.error-text{margin:1rem 0 0;color:#9d2f2f;font-weight:700}.analysis-summary{margin-top:.35rem}.analysis-sections{display:grid;grid-gap:.9rem;gap:.9rem;margin-top:1rem}.analysis-section-card{padding:.9rem .95rem;border:1px solid rgba(22,32,51,.08);border-radius:18px;background:#f7f7f7}.analysis-section-title{font-size:.84rem}.analysis-list{margin:.65rem 0 0;padding-left:1.2rem;color:var(--ink);line-height:1.55;font-size:.82rem}.teacher-notes{color:var(--muted)}.analysis-list li+li{margin-top:.35rem}.slide-draft-stack{display:grid;grid-gap:1rem;gap:1rem;margin-top:1rem}.slide-draft-actions{display:flex;justify-content:flex-end}.slide-preview-card{border-radius:18px;overflow:hidden;border:1px solid rgba(17,17,17,.08)}.slide-preview-inner{min-height:340px;padding:1.5rem;background:#000000}.slide-text-column{display:grid;grid-gap:1rem;gap:1rem;color:#ffffff}.slide-preview-label{margin:0;opacity:.72;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.slide-preview-content p{margin:0;color:#ffffff;font-size:1rem;line-height:1.65}.slide-preview-content p+p{margin-top:.75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:700px){.page-shell{width:min(100% - 1rem,100%);padding-top:3rem}.dropzone,.preview-panel,.status-panel{border-radius:22px}.dropzone{padding:1.25rem}.preview-meta{align-items:stretch}.generator-meta,.result-layout{grid-template-columns:1fr}.generator-header,.ocr-header{flex-direction:column}.primary-button{width:100%}}