:root{
  --bg:#f1f3f7;
  --paper:#fffefa;
  --ink:#28303d;
  --muted:#7b8492;
  --line:#dce1e8;
  --soft:#f7f8fb;
  --accent:#6179bd;
  --accent-2:#b889c8;
  --science:#527aa8;
  --social:#a36d45;
  --literature:#8b5c87;
  --music:#5f6fa5;
  --art:#887049;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 5%,rgba(139,164,220,.14),transparent 26%),
    radial-gradient(circle at 96% 12%,rgba(210,160,202,.11),transparent 24%),
    linear-gradient(180deg,#f7f8fb,var(--bg));
  font-family:Pretendard,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
button,a,select,input{touch-action:manipulation}
button{color:inherit}
.skip-link{position:fixed;left:16px;top:-60px;z-index:999;padding:10px 16px;border-radius:10px;background:#202735;color:#fff;text-decoration:none}
.skip-link:focus{top:12px}

.app-bar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:66px;
  padding:10px 28px;
  border-bottom:1px solid rgba(192,199,211,.72);
  background:rgba(249,250,252,.86);
  backdrop-filter:blur(20px) saturate(1.15);
}
.back-link{display:grid;place-items:center;width:40px;height:40px;border:1px solid #dce1e9;border-radius:50%;background:#fff;color:#3d4654;text-decoration:none;font-size:21px;box-shadow:0 4px 16px rgba(45,55,72,.07);transition:.2s}
.back-link:hover{transform:translateX(-2px);border-color:#bfc8d6}
.app-heading{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.app-heading strong{font-size:16px;letter-spacing:-.3px}
.app-kicker{color:#969eab;font-size:9px;font-weight:800;letter-spacing:2.4px}
.topic-total{padding:7px 12px;border:1px solid #d9dfe8;border-radius:999px;background:#fff;color:#7d8796;font-size:9px;font-weight:900;letter-spacing:1.6px}

.studio-layout{
  position:relative;
  display:grid;
  grid-template-columns:280px minmax(580px,820px) 238px;
  justify-content:center;
  align-items:start;
  gap:22px;
  width:min(100%,1420px);
  margin:0 auto;
  padding:28px 22px 80px;
}
.topic-panel,.tool-panel{
  border:1px solid rgba(210,216,226,.95);
  border-radius:22px;
  background:rgba(255,255,255,.88);
  box-shadow:0 18px 48px rgba(50,60,79,.08);
  backdrop-filter:blur(16px);
}
.topic-panel{position:sticky;top:86px;padding:18px;max-height:calc(100vh - 108px);display:flex;flex-direction:column;min-height:0}
.panel-intro,.tool-heading{display:flex;align-items:center;gap:11px;padding-bottom:14px;border-bottom:1px solid #e5e8ee}
.panel-intro>span,.tool-heading>span{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#434c5a,#8993a2);color:#fff;font-size:10px;font-weight:900;box-shadow:0 7px 18px rgba(64,74,91,.17)}
.panel-intro strong,.tool-heading strong{font-size:14px;letter-spacing:-.25px}
.panel-intro p,.tool-heading p{margin:3px 0 0;color:#929aa7;font-size:10.5px;line-height:1.45}
.filter-row{display:flex;flex-wrap:wrap;gap:6px;padding:14px 0 10px}
.filter-chip{display:inline-flex;align-items:center;gap:5px;min-height:31px;padding:5px 10px;border:1px solid #dfe4eb;border-radius:999px;background:#fff;color:#65707e;font-size:11px;font-weight:750;cursor:pointer;transition:.2s}
.filter-chip span{color:#a5adba;font-size:9px}
.filter-chip:hover,.filter-chip.is-active{border-color:#9dadd6;background:#f1f4fc;color:#526aa8}
.filter-chip.is-active span{color:#687db6}
.search-box{display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid #dce1e9;border-radius:12px;background:#fafbfc;color:#939caa}
.search-box:focus-within{border-color:#9aaed9;box-shadow:0 0 0 3px rgba(111,135,193,.11)}
.search-box input{width:100%;height:38px;border:0;outline:0;background:transparent;color:#394351;font-size:12px}
.select-label{margin:13px 0 6px;color:#8d96a4;font-size:9px;font-weight:850;letter-spacing:1px;text-transform:uppercase}
.topic-select{width:100%;height:39px;padding:0 10px;border:1px solid #dce1e9;border-radius:11px;background:#fff;color:#414b59;font-size:11px;outline:0}
.topic-list{min-height:0;margin-top:10px;overflow:auto;overscroll-behavior:contain;border-top:1px solid #eceff3}
.topic-item{display:grid;grid-template-columns:33px 1fr;gap:8px;width:100%;padding:10px 5px;border:0;border-bottom:1px solid #edf0f4;background:transparent;text-align:left;cursor:pointer}
.topic-item:hover{background:#f8f9fc}
.topic-item.is-active{background:linear-gradient(90deg,#eef2fb,rgba(244,239,249,.72));box-shadow:inset 3px 0 #778cc5}
.topic-item em{color:#9aa3b0;font-size:9px;font-style:normal;font-weight:850;letter-spacing:.7px}
.topic-item span{overflow:hidden;color:#4b5563;font-size:11px;font-weight:720;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.topic-empty{padding:28px 8px;color:#919aa7;font-size:11px;text-align:center}
.random-button{flex:none;width:100%;min-height:40px;margin-top:12px;border:1px solid #d5dce8;border-radius:12px;background:linear-gradient(135deg,#f8faff,#f7f2fa);color:#5e6c8d;font-size:11px;font-weight:820;cursor:pointer}
.random-button:hover{border-color:#aab8d7;transform:translateY(-1px)}

.workspace{min-width:0}
.workspace-nav{display:grid;grid-template-columns:100px 1fr 100px;align-items:center;gap:12px;margin-bottom:12px}
.workspace-nav button{min-height:40px;border:1px solid #d9dfe8;border-radius:12px;background:rgba(255,255,255,.9);color:#596575;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 5px 16px rgba(43,53,70,.05)}
.workspace-nav button:hover{border-color:#aab7d1;background:#fff}
.workspace-nav>div{text-align:center;min-width:0}
.workspace-nav strong{display:block;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.workspace-nav span{display:block;margin-top:2px;color:#98a1af;font-size:9px;font-weight:850;letter-spacing:1.2px}

.a4-sheet{
  container-type:inline-size;
  display:flex;
  flex-direction:column;
  width:100%;
  aspect-ratio:210/297;
  overflow:hidden;
  border:1px solid #d2d5d9;
  background:var(--paper);
  box-shadow:0 24px 70px rgba(44,53,68,.16),0 2px 6px rgba(44,53,68,.06);
  print-color-adjust:exact;
  -webkit-print-color-adjust:exact;
}
.sheet-header{display:flex;flex:0 0 25%;min-height:0;flex-direction:column;padding:3.2cqw 3.8cqw 1.4cqw;border-bottom:1px solid #bfc4ca}
.sheet-meta{display:flex;align-items:center;gap:1.6cqw;padding-bottom:1.2cqw;border-bottom:1px solid #d4d7dc;color:#697380;font-size:clamp(7px,1.25cqw,10px);font-weight:720}
.sheet-brand{display:flex;flex-direction:column;gap:.25cqw;margin-right:auto}
.sheet-brand span{color:#a0a7b1;font-size:clamp(6px,.88cqw,7px);font-weight:900;letter-spacing:.17em}
.sheet-brand strong{color:#424b57;font-size:clamp(8px,1.45cqw,12px);letter-spacing:-.03em}
.sheet-meta label{display:flex;align-items:center;gap:.55cqw;white-space:nowrap}
.sheet-meta input,.sheet-meta .export-meta-field{height:2.6cqw;min-height:17px;padding:0 .5cqw;border:0;border-bottom:1px solid #aeb5bf;border-radius:0;background:transparent;color:#4b5562;font-size:clamp(7px,1.15cqw,9px);outline:0}
.sheet-meta .export-meta-field{display:flex;align-items:center;overflow:hidden;white-space:nowrap}
.sheet-meta #dateInput,.sheet-meta .export-date{width:12.6cqw;min-width:82px}
.sheet-meta #weatherInput,.sheet-meta .export-weather{width:7.8cqw;min-width:52px}
.sheet-meta #nameInput,.sheet-meta .export-name{width:7.8cqw;min-width:52px}
.topic-heading{display:flex;align-items:center;gap:1.4cqw;padding:1.45cqw 0 1cqw}
.sheet-number{display:grid;place-items:center;flex:none;width:4.8cqw;height:4.8cqw;border-radius:50%;background:#444d5b;color:#fff;font-size:clamp(8px,1.28cqw,11px);font-weight:900;letter-spacing:.04em}
.sheet-category{margin-bottom:.25cqw;color:#7b88ab;font-size:clamp(7px,1.05cqw,9px);font-weight:850;letter-spacing:.08em}
.topic-heading h1{margin:0;color:#313a46;font-size:clamp(12px,2.65cqw,22px);line-height:1.08;letter-spacing:-.045em}
.knowledge-box{position:relative;display:flex;flex:1;min-height:0;padding:1.25cqw 1.35cqw 1.05cqw;border:1px solid #ccd2da;border-radius:1.2cqw;background:#fbfbfa}
.knowledge-label{position:absolute;left:1.2cqw;top:-.72cqw;padding:0 .65cqw;background:var(--paper);color:#66718a;font-size:clamp(6px,.95cqw,8px);font-weight:900;letter-spacing:.12em}
.knowledge-grid{display:grid;flex:1;min-height:0;overflow:hidden;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr);gap:.35cqw 1.15cqw;align-items:center}
.knowledge-fact{display:grid;grid-template-columns:1.8cqw 1fr;gap:.55cqw;align-items:center;min-width:0;color:#505965;font-size:clamp(6.8px,1.08cqw,8.7px);font-weight:620;line-height:1.32;word-break:keep-all}
.knowledge-fact b{display:grid;place-items:center;width:1.65cqw;height:1.65cqw;margin-top:.08cqw;border-radius:50%;background:#e9edf4;color:#61708f;font-size:clamp(5px,.8cqw,7px)}
.knowledge-fact em{display:inline-flex;align-items:center;margin-right:.38cqw;padding:.08cqw .38cqw;border-radius:999px;background:#eef1f7;color:#64749b;font-size:.86em;font-style:normal;font-weight:900;letter-spacing:-.02em;white-space:nowrap}

.drawing-block{display:flex;flex:0 0 50%;min-height:0;flex-direction:column;align-items:center;padding:1.25cqw 3.8cqw 1.15cqw;border-bottom:1px solid #bfc4ca}
.drawing-title-row{display:flex;align-items:baseline;justify-content:space-between;width:100%;margin-bottom:.8cqw}
.drawing-title-row h2{margin:0;font-size:clamp(8px,1.55cqw,13px);letter-spacing:-.03em}
.drawing-title-row span{color:#9098a3;font-size:clamp(6px,.93cqw,8px);font-weight:700}
.canvas-stack{position:relative;flex:1;min-height:0;aspect-ratio:4/3;max-width:92%;overflow:hidden;border:1px solid #bdc2c9;background:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.canvas-stack::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 2.4cqw rgba(255,255,255,.94)}
.canvas-stack canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#guideCanvas{z-index:1;opacity:.3;transition:opacity .18s}
#guideCanvas.is-hidden{opacity:0!important}
#paintCanvas{z-index:2;cursor:crosshair;touch-action:none}
.canvas-stack.is-erasing #paintCanvas{cursor:cell}
.canvas-loading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:rgba(255,255,255,.9);color:#8993a0;font-size:clamp(7px,1.1cqw,10px);font-weight:780}
.canvas-loading.is-hidden{display:none}
.question-strip{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1cqw;width:100%;margin-top:.75cqw;padding:.75cqw 1.1cqw;border-left:.4cqw solid #798ab7;background:#f1f3f8}
.question-strip span{color:#627299;font-size:clamp(6px,.94cqw,8px);font-weight:900;letter-spacing:.08em;white-space:nowrap}
.question-strip strong{color:#46505e;font-size:clamp(7px,1.16cqw,10px);font-weight:720;line-height:1.28;word-break:keep-all}

.story-block{display:flex;flex:1;min-height:0;flex-direction:column;padding:1.4cqw 3.8cqw 3.1cqw}
.story-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1cqw;margin-bottom:.8cqw}
.story-head label{font-size:clamp(8px,1.4cqw,12px);font-weight:900}
.story-head input,.story-head .export-story-title{height:3.2cqw;min-height:20px;padding:0 .7cqw;border:0;border-bottom:1px solid #838b96;background:transparent;color:#343d49;font-size:clamp(8px,1.5cqw,12px);font-weight:750;outline:0}
.story-head .export-story-title{display:flex;align-items:center;overflow:hidden;white-space:nowrap}
.story-block textarea,.story-block .export-story-text{flex:1;min-height:0;resize:none;padding:.4cqw .7cqw;border:1px solid #b8bdc4;outline:0;color:#3d4652;font-size:clamp(8px,1.38cqw,11px);font-weight:570;line-height:3.05cqw;background-color:#fff;background-image:linear-gradient(to right,rgba(116,124,136,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(116,124,136,.22) 1px,transparent 1px);background-size:3.05cqw 3.05cqw;caret-color:#4d628f}
.story-block .export-story-text{overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;caret-color:transparent}
.story-block textarea::placeholder,.story-head input::placeholder{color:#a8afb8;font-weight:500}

.a4-sheet.is-exporting{width:794px!important;height:1123px!important;aspect-ratio:auto!important;border:0!important;box-shadow:none!important}
.a4-sheet.is-exporting input,.a4-sheet.is-exporting select,.a4-sheet.is-exporting textarea{caret-color:transparent!important}

.tool-panel{position:sticky;top:86px;padding:17px}
.tool-section{padding:15px 0;border-bottom:1px solid #e7eaf0}
.tool-section:last-child{border-bottom:0}
.tool-label{display:block;margin-bottom:9px;color:#8e97a5;font-size:9px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}
.tool-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.tool-choice button,.wide-button{min-height:40px;padding:8px 7px;border:1px solid #d8dee8;border-radius:11px;background:#fff;color:#596474;font-size:10.5px;font-weight:800;cursor:pointer;transition:.18s}
.tool-choice button:hover,.wide-button:hover{border-color:#aebad1;transform:translateY(-1px)}
.tool-choice .tool-button{display:flex;align-items:center;justify-content:center;gap:5px}
.tool-button b{font-size:17px;font-weight:500}
.tool-button.is-active{border-color:#8196c6;background:#eef2fb;color:#526ca8;box-shadow:0 0 0 3px rgba(103,128,186,.1)}
.tool-button.eraser-button.is-active{border-color:#c38aa2;background:#fbf0f4;color:#98586f;box-shadow:0 0 0 3px rgba(180,104,133,.1)}
.tool-choice.compact button{min-height:37px;font-size:9.5px}
.color-row{display:flex;justify-content:space-between;gap:7px;margin:10px 1px}
.color-swatch{position:relative;width:30px;height:30px;padding:0;border:3px solid #fff;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #cbd1da;cursor:pointer}
.color-swatch.is-active::after{content:"";position:absolute;inset:-6px;border:2px solid #788ab4;border-radius:50%}
.range-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;color:#6e7887;font-size:10px;font-weight:750}
.range-control output{color:#6579aa;font-size:9px;font-weight:900}
.range-control input{grid-column:1/-1;width:100%;accent-color:#7288be}
.eraser-note{margin:10px 0 0;padding:9px 10px;border-radius:10px;background:#faf2f5;color:#8a6473;font-size:9.5px;line-height:1.5}
.eraser-note strong{display:block;color:#845367}
.wide-button{width:100%;margin-top:7px}
.wide-button.quiet{background:#f8f9fb;color:#727c89}
.wide-button.primary{border-color:#536ca9;background:linear-gradient(135deg,#52689c,#788cc0);color:#fff;box-shadow:0 9px 22px rgba(72,92,144,.23)}
.wide-button:disabled,.tool-choice button:disabled{opacity:.4;cursor:not-allowed;transform:none}
.action-section{padding-bottom:3px}
.shortcut-note{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px;color:#a0a7b2;font-size:8px}
.shortcut-note span{display:flex;align-items:center;gap:3px}
kbd{padding:2px 4px;border:1px solid #d8dce3;border-bottom-width:2px;border-radius:4px;background:#fff;color:#7b8491;font-size:7px;font-family:inherit}

.toast{position:fixed;left:50%;bottom:28px;z-index:100;max-width:min(90vw,420px);padding:11px 16px;border-radius:999px;background:rgba(37,44,56,.94);color:#fff;font-size:11px;font-weight:750;box-shadow:0 14px 34px rgba(26,32,43,.24);opacity:0;pointer-events:none;transform:translate(-50%,14px);transition:.22s}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}
.mobile-tool-dock{display:none}

@media(max-width:1220px){
  .studio-layout{grid-template-columns:250px minmax(520px,780px);grid-template-areas:"topics sheet" "tools sheet";justify-content:center}
  .topic-panel{grid-area:topics;position:sticky;max-height:52vh}
  .workspace{grid-area:sheet}
  .tool-panel{grid-area:tools;position:sticky;top:calc(52vh + 105px)}
}
@media(max-width:820px){
  .app-bar{padding:9px 14px}
  .studio-layout{display:flex;flex-direction:column;padding:18px 12px 64px}
  .topic-panel,.tool-panel,.workspace{width:100%;position:static;max-height:none}
  .topic-panel{order:1}
  .tool-panel{order:2}
  .workspace{order:3}
  .topic-list{max-height:190px}
  .tool-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
  .tool-heading,.shortcut-note{grid-column:1/-1}
  .tool-section{padding:12px 0}
  .workspace-nav{margin-top:6px}
  .mobile-tool-dock{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:70;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:min(360px,calc(100vw - 26px));padding:7px;border:1px solid rgba(191,199,213,.9);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 14px 38px rgba(39,48,64,.22);backdrop-filter:blur(18px);transform:translateX(-50%)}
  .mobile-tool-dock button{display:flex;min-width:0;min-height:45px;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid transparent;border-radius:12px;background:transparent;color:#6b7584;font-size:8px;font-weight:800}
  .mobile-tool-dock button b{font-size:17px;font-weight:500;line-height:1}
  .mobile-tool-dock .tool-button.is-active{border-color:#aab8d8;background:#eef2fb;color:#526ca8}
  .mobile-tool-dock .eraser-button.is-active{border-color:#d2a0b4;background:#fbf0f4;color:#98586f}
  .mobile-tool-dock button:disabled{opacity:.35}
  .toast{bottom:82px}
}
@media(max-width:540px){
  .app-heading strong{font-size:14px}
  .topic-total{display:none}
  .studio-layout{padding-left:7px;padding-right:7px}
  .topic-panel,.tool-panel{border-radius:17px;padding:14px}
  .tool-panel{display:block}
  .workspace-nav{grid-template-columns:74px 1fr 74px;gap:6px}
  .workspace-nav button{min-height:36px;padding:5px;font-size:9px}
  .sheet-header{padding-left:3cqw;padding-right:3cqw}
  .drawing-block,.story-block{padding-left:3cqw;padding-right:3cqw}
  .sheet-meta{gap:.8cqw}
  .sheet-brand span{display:none}
  .sheet-meta #dateInput{min-width:76px}
  .drawing-title-row span{display:none}
  .knowledge-fact{font-size:max(6.5px,1.16cqw)}
  .question-strip strong{font-size:max(6.6px,1.16cqw)}
}

@page{size:A4 portrait;margin:0}
@media print{
  html,body{width:210mm;height:297mm;margin:0!important;background:#fff!important}
  body>*:not(.studio-layout){display:none!important}
  .studio-layout{display:block!important;width:210mm!important;height:297mm!important;margin:0!important;padding:0!important}
  .topic-panel,.tool-panel,.workspace-nav{display:none!important}
  .workspace{display:block!important;width:210mm!important;height:297mm!important}
  .a4-sheet{width:210mm!important;height:297mm!important;aspect-ratio:auto!important;border:0!important;box-shadow:none!important}
  #paintCanvas{cursor:default}
  input,select,textarea{color:#232832!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
}
