:root{--bg:#f5f4f0;--card:#fff;--ink:#1d2433;--ink-2:#4a5263;--ink-3:#6b7385;--line:#d9dbe1;--line-2:#c3c7d0;--navy:#1f2a44;--a1:#0f6b63;--a1-soft:#e3f2ef;--a2:#a3530b;--a2-soft:#fbeedd;--a3:#3a4a8c;--a3-soft:#e7eaf7;--gem:#6a3fb5;--gem-soft:#f1ecfa;--ok:#1b7a3d;--ok-soft:#e5f4ea;--warn:#8a5a00;--warn-soft:#fff4d6;--err:#b42318;--err-soft:#fde8e6;--focus:#1d4ed8;--radius:12px;--accent:var(--navy);--accent-soft:#e8ebf2;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;word-break:keep-all;overflow-wrap:anywhere;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,맑은 고딕,Noto Sans KR,sans-serif;font-size:17px;line-height:1.65}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0;overflow-x:clip}h1,h2,h3{margin:0 0 .5em;line-height:1.35}p{margin:0 0 .75em}ul,ol{margin:0 0 .75em;padding-left:1.3em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}kbd{border:1px solid var(--line-2);background:#fff;border-bottom-width:2px;border-radius:4px;padding:0 .3em;font-family:inherit;font-size:.85em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:100;background:#fff;padding:8px 12px;position:absolute;top:0;left:-999px}.skip:focus{left:8px}.loading{text-align:center;padding:40px}.btn{border:1.5px solid var(--line-2);min-height:44px;color:var(--ink);cursor:pointer;text-align:center;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-3);background:#f8f9fb}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.1);border-color:var(--accent)}.btn-danger{background:var(--err);border-color:var(--err);color:#fff}.btn-danger:hover:not(:disabled){background:#8f1c13;border-color:#8f1c13}.btn-small{min-height:36px;padding:4px 12px;font-size:.9rem}.btn-big{min-height:52px;padding:10px 22px;font-size:1.05rem}.btn-quiet{color:var(--ink-2);background:0 0;border-color:#0000;text-decoration:underline}.btn-gemini{border:2px dashed var(--gem);color:var(--gem);background:var(--gem-soft)}.btn-gemini:hover{border-color:var(--gem)!important;background:#e8dff8!important}.btn-done{border-style:dashed}.btn-done.is-done{border-style:solid;border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}.link-btn{color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:8px 0;text-decoration:underline}.btn-row,.tool-row{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.tool-col{flex-direction:column;align-items:flex-start}.btn-col{flex-direction:column;gap:10px;margin:12px 0;display:flex}.copy-wrap{flex-direction:column;gap:6px;max-width:100%;display:inline-flex}.copy-fallback{border:2px solid var(--warn);background:var(--warn-soft);border-radius:10px;flex-direction:column;gap:6px;width:min(560px,100%);padding:10px;font-size:.92rem;display:flex}.copy-fallback textarea{width:100%}.paste-msg{color:var(--ink-2);font-size:.85rem}.topbar{z-index:20;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:12px;max-width:1400px;margin:0 auto;padding:8px 16px;display:flex}.brand{cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:4px;font-weight:800;display:flex}.brand-mark{background:var(--navy);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-family:Georgia,serif;display:inline-grid}.brand-name{font-size:1rem}.acts{flex:1;gap:6px;min-width:0;display:flex;overflow-x:auto}.act-tab{border:1.5px solid var(--line);cursor:pointer;min-height:40px;color:var(--ink-2);background:#fff;border-radius:999px;flex:none;padding:6px 14px;font-weight:600}.act-tab.is-on{color:#fff;font-weight:800}.act-tab-1.is-on{background:var(--a1);border-color:var(--a1)}.act-tab-2.is-on{background:var(--a2);border-color:var(--a2)}.act-tab-3.is-on{background:var(--a3);border-color:var(--a3)}.act-tab.is-on:before{content:"● "}.topbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.who{max-width:1400px;color:var(--ink-3);margin:0 auto;padding:0 16px 6px;font-size:.85rem}.save-badge{border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.82rem;display:inline-flex}.save-saved{color:var(--ok);border-color:#b7dcc4}.save-error{color:var(--err);border-color:var(--err);background:var(--err-soft);font-weight:700}.menu{position:relative}.menu-pop{border:1px solid var(--line-2);z-index:30;background:#fff;border-radius:12px;flex-direction:column;min-width:230px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #141e3c26}.menu-pop button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;min-height:44px;padding:10px 12px}.menu-pop button:hover{background:#f1f3f7}.menu-pop .danger{color:var(--err)}.backup-host .backup-msg{max-width:900px;margin:10px auto 0;padding:0 16px}.start{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:28px;max-width:1180px;margin:0 auto;padding:28px 16px 60px;display:grid}.hero-kicker{color:var(--ink-3);margin-bottom:4px;font-weight:600}.hero h1{letter-spacing:-.02em;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:8px 0;font-family:Nanum Myeongjo,AppleMyungjo,Batang,serif;font-size:clamp(1.9rem,4vw,2.6rem);font-weight:800}.hero-lead{font-size:1.1rem}.act-cards{gap:12px;padding:0;list-style:none;display:grid}.act-card{border:1px solid var(--line);border-left:6px solid var(--accent);border-radius:var(--radius);background:#fff;gap:14px;padding:14px 16px;display:flex}.act-card h2{margin-bottom:2px;font-size:1.1rem}.act-card p{color:var(--ink-2);margin:0}.act-1{border-left-color:var(--a1)}.act-2{border-left-color:var(--a2)}.act-3{border-left-color:var(--a3)}.act-n{color:var(--ink-3);font-family:Georgia,serif;font-size:1.6rem;font-weight:800;line-height:1}.start-panel{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px;position:sticky;top:80px}.account-box{border:2px dashed var(--gem);background:var(--gem-soft);border-radius:12px;margin-top:18px;padding:14px}.account-box h3{color:var(--gem);font-size:1rem}.work{max-width:1400px;margin:0 auto;padding:12px 16px 80px}.work-a1{--accent:var(--a1);--accent-soft:var(--a1-soft)}.work-a2{--accent:var(--a2);--accent-soft:var(--a2-soft)}.work-a3{--accent:var(--a3);--accent-soft:var(--a3-soft)}.flow{max-width:920px;margin:0 auto}.flow-with-aside{max-width:none}.stepper{margin:4px 0 14px}.stepper-count{color:var(--ink-3);margin-bottom:6px;font-size:.85rem}.stepper ol{scrollbar-width:thin;gap:6px;margin:0;padding:0 0 6px;list-style:none;display:flex;overflow-x:auto}.step-chip{border:1.5px solid var(--line);cursor:pointer;white-space:nowrap;min-height:40px;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-size:.88rem;display:flex;position:relative}.step-chip.is-current{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 2px var(--accent-soft);font-weight:700}.step-num{background:#eef0f4;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:700;display:inline-grid}.step-chip.is-current .step-num{background:var(--accent);color:#fff}.step-chip.is-done .step-num{background:var(--ok);color:#fff}.flow-body{align-items:start;gap:20px;display:grid}.flow-with-aside .flow-body{grid-template-columns:minmax(0,1fr) minmax(360px,.95fr)}.step-card{background:var(--card);border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:var(--radius);min-width:0;padding:20px 22px}.step-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.step-index{color:var(--accent);font-weight:800}.step-time{color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:.82rem}.step-head h2{outline:none;font-size:1.45rem}.step-task{background:var(--accent-soft);border-radius:10px;padding:10px 14px;font-size:1.05rem}.step-task strong{color:var(--accent);margin-right:4px}.step-content{margin-top:16px}.step-nav{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:24px;padding-top:16px;display:flex}.gentle{border:2px solid var(--warn);background:var(--warn-soft);border-radius:10px;margin-top:18px;padding:12px 14px}.gentle ul{margin-bottom:8px}.where{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.where-gemini{color:var(--gem);background:var(--gem-soft);border:1.5px dashed var(--gem)}.where-app{color:var(--navy);border:1.5px solid var(--navy);background:#eef1f6}.where-pair{flex-wrap:wrap;gap:6px;display:inline-flex}.field{margin:14px 0}.field-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.field label,.choice legend{margin-bottom:4px;font-weight:700;display:block}.optional{color:var(--ink-3);font-weight:400}.help{color:var(--ink-3);margin:2px 0 6px;font-size:.9rem}input[type=text],textarea,select{border:1.5px solid var(--line-2);background:#fff;border-radius:10px;width:100%;padding:10px 12px;line-height:1.6}textarea{resize:vertical}input[type=text]:focus,textarea:focus,select:focus{border-color:var(--focus)}input[type=range]{width:100%;accent-color:var(--accent)}.field-error{color:var(--err);font-size:.92rem;font-weight:600}.field-error:before{content:"⚠ "}.choice{border:none;min-width:0;margin:14px 0;padding:0}.choice-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line-2);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:8px;min-height:44px;padding:8px 14px;line-height:1.35;display:inline-flex;position:relative}.chip input{opacity:0;width:1px;height:1px;position:absolute}.chip:focus-within{outline:3px solid var(--focus);outline-offset:2px}.chip-on{border-color:var(--accent);background:var(--accent-soft);font-weight:700}.chip-mark{border:2px solid var(--line-2);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:inline-grid}.chip-on .chip-mark{border-color:var(--accent);background:var(--accent);color:#fff}.chip-hint{color:var(--ink-3);font-size:.8rem;font-weight:400;display:block}.check{align-items:center;gap:8px;min-height:44px;font-weight:600;display:inline-flex}.check input,.pick input,.guide-check input,.checklist input{width:22px;height:22px;accent-color:var(--accent)}.expand{border:1px solid var(--line);background:#fbfbfc;border-radius:10px;margin:12px 0}.expand>summary{cursor:pointer;align-items:center;min-height:44px;padding:10px 14px;font-weight:600;list-style:none;display:flex}.expand>summary::-webkit-details-marker{display:none}.expand>summary:before{content:"▸";margin-right:8px;transition:transform .15s}.expand[open]>summary:before{transform:rotate(90deg)}.expand-body{padding:0 14px 12px}.note{border:1.5px solid;border-radius:10px;gap:10px;margin:12px 0;padding:10px 14px;display:flex}.note>div>:last-child{margin-bottom:0}.note-label{color:#fff;border-radius:999px;flex:none;height:-moz-fit-content;height:fit-content;padding:1px 8px;font-size:.8rem}.note-info{background:#f2f5fa;border-color:#b9c3d8}.note-info .note-label{background:var(--navy)}.note-warn{background:var(--warn-soft);border-color:#e5c66b}.note-warn .note-label{background:var(--warn)}.note-error{border-color:var(--err);background:var(--err-soft)}.note-error .note-label{background:var(--err)}.note-ok{background:var(--ok-soft);border-color:#a9d3b7}.note-ok .note-label{background:var(--ok)}.example-badge{border:1px solid var(--ink-3);color:var(--ink-2);vertical-align:middle;border-radius:6px;padding:0 6px;font-size:.75rem;font-weight:700;display:inline-block}.lead-text{font-size:1.12rem}.tips{gap:10px;padding:0;list-style:none;display:grid}.tips li{border:1px solid var(--line);border-radius:10px;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.tips p{color:var(--ink-2);margin:0}.tip-num{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.example,.quiz-item,.test-card,.qa-edit{border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:14px 16px}.example-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.example-no,.quiz-skill{color:var(--accent);font-size:.92rem;font-weight:800}.example-context{border-left:4px solid var(--line-2);background:#f4f5f8;border-radius:4px;padding:6px 10px}.q-label{color:var(--ink-2);border:1px solid var(--line-2);vertical-align:1px;border-radius:6px;margin-right:4px;padding:0 6px;font-size:.78rem;font-weight:800;display:inline-block}.q-before{font-size:1.08rem;font-weight:600}.q-after{color:var(--accent);font-weight:600}.think{color:var(--ink-2)}.reveal{border-top:1px dashed var(--line-2);padding-top:8px}.explain{margin:0}.quiz-feedback{border:1.5px solid;border-radius:10px;padding:8px 12px}.quiz-feedback.is-right{background:var(--ok-soft);border-color:#a9d3b7}.quiz-feedback.is-wrong{background:var(--warn-soft);border-color:#e5c66b}.self-check{background:#f7f8fa;border-radius:8px;padding:8px 12px}.self-check ul{margin:0}.parts3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px;display:grid}.parts3>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.parts3 p{color:var(--ink-2);margin:4px 0 0;font-size:.92rem}.record-box{border:1px solid var(--line);background:#f7f8fa;border-radius:10px;margin:10px 0;padding:12px 14px}.record-box p{margin-bottom:6px}.empty{color:var(--ink-3)}.sub-h{margin-top:22px;font-size:1.1rem}.instruction{margin:14px 0}.instruction-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.instruction-text{font-size:.92rem;line-height:1.6}.tag-edited,.tag-follow,.tag-candidate{border-radius:6px;padding:1px 8px;font-size:.78rem;font-weight:700;display:inline-block}.tag-edited{border:1px solid var(--warn);color:var(--warn)}.tag-follow{border:1px solid var(--a2);color:var(--a2)}.tag-candidate{border:1.5px solid var(--a3);color:var(--a3);margin-left:6px}.tag-candidate:before{content:"★ "}.guide-list{gap:10px;padding:0;list-style:none;display:grid}.guide-item{background:#fff;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:12px 14px;display:grid}.guide-gemini{border:2px dashed var(--gem)}.guide-app{border:2px solid var(--navy)}.guide-item.is-done{opacity:.8;background:#fafbfa}.guide-num{background:#eef0f4;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.guide-top{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.guide-top h3{margin:0;font-size:1.05rem}.guide-main p{color:var(--ink-2);margin-bottom:6px}.guide-check{white-space:nowrap;align-items:center;gap:6px;height:-moz-fit-content;height:fit-content;min-height:44px;font-size:.9rem;font-weight:600;display:flex}.pill{border:1px solid var(--line-2);background:#f1f3f7;border-radius:8px;padding:6px 10px;font-family:inherit;font-weight:700}.pre-msg{white-space:pre-wrap;border:1px solid var(--line);background:#f7f8fa;border-radius:10px;width:100%;max-height:340px;margin:6px 0;padding:10px 12px;font-family:inherit;font-size:.92rem;overflow:auto}.trouble dt{margin-top:8px;font-weight:700}.trouble dd{color:var(--ink-2);margin:2px 0 0}.sketch{margin:0}.sketch svg{width:100%;max-width:640px;height:auto;display:block}.sketch figcaption{color:var(--ink-2);margin-top:6px;font-size:.88rem}.toggle-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.gem-url .btn{margin-top:4px}.save-panel{border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:14px 16px}.interview-guide{background:var(--accent-soft);border-radius:12px;padding:12px 16px}.tally{flex-wrap:wrap;gap:6px;margin:6px 0;padding:0;list-style:none;display:flex}.tally li{border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 10px;font-size:.92rem}.tally small{color:var(--ink-3)}.cards{gap:14px;margin:14px 0;padding:0;list-style:none;display:grid}.qcard{border:1.5px solid var(--line-2);background:#fff;border-radius:14px;padding:14px 16px}.qcard.is-candidate{border-color:var(--a3);box-shadow:inset 4px 0 0 var(--a3)}.qcard-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qcard-head h3{margin:0;font-size:1.1rem}.qcard-foot{gap:4px;display:grid}.raw-text{white-space:pre-wrap;color:var(--ink-2);background:#f7f8fa;border-radius:8px;padding:8px 10px;font-size:.92rem}.inline-confirm{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.pick-list{gap:8px;display:grid}.pick{border:1.5px solid var(--line-2);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.pick.is-on{border-color:var(--accent);background:var(--accent-soft)}.pick small{color:var(--ink-3)}.memo{display:block}.mini-steps{gap:6px;display:grid}.image-picker{margin:14px 0}.drop{border:2px dashed var(--line-2);text-align:center;background:#fbfbfc;border-radius:12px;padding:16px}.drop.is-drag{border-color:var(--accent);background:var(--accent-soft)}.image-setup{margin-top:12px}.frame-preview{border:1px solid var(--line-2);background:#fff;max-width:420px}.frame-preview img{width:100%;height:100%;display:block}.frame-preview.is-contain img{height:auto;max-height:420px}.grid2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.order-list li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.order-btns{flex:none;gap:4px;display:flex}.example-list{padding:0;list-style:none}.example-list li{margin-bottom:6px}.thumb-row{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.thumb{border:1px solid var(--line-2);width:160px}.before-view dt{margin-top:6px;font-weight:700}.before-view dd{white-space:pre-wrap;color:var(--ink-2);margin:0}.bad-chars{letter-spacing:.2em;font-size:1.2em}.export .btn-big{min-width:220px}.flow-aside{min-width:0;position:sticky;top:90px}.preview{border-radius:var(--radius);background:#e9eaee;max-height:calc(100vh - 110px);padding:14px;overflow:auto}.preview-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.preview-head h2{margin:0;font-size:1.05rem}.preview-status{color:var(--ink-2);font-size:.85rem}.pv-pages{justify-items:center;gap:14px;min-height:200px;transition:opacity .2s;display:grid}.pv-pages.is-busy{opacity:.55}.pv-page{background:#fff;max-width:100%;line-height:0;position:relative;box-shadow:0 2px 10px #0000002e}.pv-page canvas{max-width:100%;display:block;height:auto!important}.pv-tag{color:#fff;background:#1f2a44d9;border-radius:999px;padding:1px 8px;font-size:.75rem;line-height:1.4;position:absolute;top:6px;right:6px}.view-toggle{z-index:10;background:var(--bg);gap:8px;padding:6px 0;display:none;position:sticky;top:64px}.dialog{border:none;border-radius:16px;max-width:min(560px,100vw - 32px);padding:20px 22px;box-shadow:0 20px 60px #0000004d}.dialog-wide{max-width:min(860px,100vw - 32px)}.dialog::backdrop{background:#14192880}.dialog-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.teacher section{margin-bottom:18px}.teacher h3{border-bottom:1px solid var(--line);padding-bottom:4px;font-size:1.05rem}.checklist{padding:0;list-style:none}.checklist label{align-items:center;gap:8px;min-height:40px;display:flex}@media (max-width:1080px){.flow-with-aside .flow-body{grid-template-columns:minmax(0,1fr)}.view-toggle{display:flex}.a3-wrap.view-edit .flow-aside,.a3-wrap.view-preview .step-card{display:none}.flow-aside{position:static}.preview{max-height:none}}@media (max-width:820px){.start{grid-template-columns:minmax(0,1fr)}.start-panel{position:static}.parts3{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){:root{font-size:16px}.step-card{padding:16px 14px}.step-head h2{font-size:1.25rem}.brand-name{font-size:.92rem}.acts{flex-basis:100%;order:3}.grid2,.guide-item{grid-template-columns:minmax(0,1fr)}.guide-num{display:none}.step-nav .btn{flex:auto}.topbar{position:static}.view-toggle{top:0}}
