@import "https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;450;500;550;600;650;700&family=Noto+Serif+KR:wght@400;500;600&display=swap";
:root{--bg:#fafbf7;--paper:#fff;--ink:#24392d;--muted:#657064;--green:#254f3b;--line:#e1e6dc;--soft:#eff3e9;--accent:#d9e5a7;--serif:"Noto Serif KR",Georgia,serif;--sans:"Noto Sans KR",system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;font-size:14px;line-height:1.65}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #87a857}a{color:inherit}h1,h2,h3,p{margin-top:0}input,select,textarea{width:100%;min-width:0;color:var(--ink);background:#fff;border:1px solid #ccd4c6;border-radius:6px;padding:10px 12px}input::placeholder,textarea::placeholder{color:#727c70}textarea{resize:vertical}label{font-weight:500;display:block}label input,label textarea,label select{margin-top:7px}button svg{flex-shrink:0}button{transition:background .18s,color .18s,transform .18s}.studio{min-height:100dvh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:10;background:#f5f7f0;flex-direction:column;width:224px;padding:32px 20px 23px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{letter-spacing:-1px;align-items:center;gap:10px;padding:0 6px;font-family:Georgia,serif;font-size:24px;line-height:1.1;text-decoration:none;display:flex}.brand small{letter-spacing:2px;font-size:9px;font-family:var(--sans);margin-top:9px;display:block}.brand-symbol{place-items:center;width:36px;height:44px;display:grid}.workspace-label{color:var(--muted);margin:55px 12px 15px;font-size:11px}.nav-item{text-align:left;color:#596454;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;width:100%;margin-bottom:6px;padding:12px 14px;font-weight:500;display:flex}.nav-item:hover{background:#e9efdf}.nav-item.active{color:var(--green);background:#e3ecd7;font-weight:650}.nav-count{background:#d1dec1;border-radius:4px;margin-left:auto;padding:0 7px;font-size:11px}.sidebar-note{color:#596b4d;margin:66px 12px 0}.sidebar-note p{font-family:var(--serif);margin:14px 0;font-size:13px;line-height:1.9}.sidebar-note>span{letter-spacing:1.15px;font-size:7px}.sidebar-bottom{margin-top:auto}.local-state{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:7px;padding:18px 12px 0;font-size:10px;display:flex}.status-dot{background:#578345;border-radius:50%;width:5px;height:5px}.main-shell{flex-direction:column;width:calc(100% - 224px);min-height:100dvh;margin-left:224px;display:flex}.topbar{border-bottom:1px solid var(--line);background:#fff9;justify-content:space-between;align-items:center;height:78px;padding:0 46px;display:flex}.breadcrumb{color:#5a6657;font-size:12px}.breadcrumb span{color:#a4ab9e;padding:0 15px}.topbar-right{align-items:center;gap:20px;display:flex}.local-label,.offline{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.avatar{background:#e7eddf;border-radius:50%;place-items:center;width:30px;height:30px;font-family:Georgia,serif;display:grid}.main-shell main{outline:none;flex:1;padding:32px 46px 0}.welcome{background:#edf1e5;border:1px solid #e3e8d9;border-radius:8px;min-height:323px;padding:36px 40px 43px;display:flex;position:relative;overflow:hidden}.eyebrow{letter-spacing:2px;color:#5c6f4e;font-size:9px;font-weight:600;display:inline-block}.welcome h1{font-family:var(--serif);letter-spacing:-1.8px;margin:12px 0 14px;font-size:38px;font-weight:500;line-height:1.45}.welcome p{color:#5c6a55;margin-bottom:23px;font-size:12px}.button{white-space:nowrap;border:1px solid var(--green);background:var(--green);color:#fff;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:41px;padding:10px 16px;font-size:12px;font-weight:500;display:inline-flex}.button:hover:not(:disabled){background:#183b29}.button.secondary{color:var(--green);background:#fff;border-color:#cbd4c3}.button.secondary:hover:not(:disabled){background:#eef2e7}.welcome-art{justify-content:center;align-items:center;width:42%;display:flex;position:absolute;top:0;bottom:22px;right:5%;transform:rotate(-15deg)}.botanical-mark{background:radial-gradient(circle,#dbe6cb80,#0000 70%);border:1px solid #bccbad;border-radius:50%;place-items:center;width:235px;height:235px;display:grid}.botanical-mark svg{color:#82966c;width:180px;height:180px}.art-caption{letter-spacing:3px;color:#778965;font-size:7px;position:absolute;bottom:22px;transform:rotate(15deg)}.welcome-index{color:#596b4d;letter-spacing:1px;border-top:1px solid #d7dfca;justify-content:space-between;padding:9px 0;font-size:8px;display:flex;position:absolute;bottom:0;left:40px;right:40px}.welcome-copy{z-index:1}.mobile-break{display:none}.library-section{padding-top:33px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.section-heading h2{letter-spacing:-.5px;margin:0;font-size:19px;font-weight:550}.section-heading h2 span{color:#687d53;margin-left:7px;font-family:Georgia,serif;font-size:19px}.text-button{color:var(--green);background:0 0;border:0;align-items:center;gap:7px;padding:5px 0;font-size:11px;display:inline-flex}.text-button:hover{text-decoration:underline}.library-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px;padding-bottom:14px;display:flex}.tabs{gap:5px;display:flex}.tabs button{color:#67725f;white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:6px 10px;font-size:11px}.tabs button span{margin-left:6px;font-size:10px}.tabs button.selected{color:#294432;background:#e9efdf;font-weight:600}.search-filters{gap:10px;display:flex}.search-filters select{width:120px;padding:7px;font-size:10px}.search{border:1px solid var(--line);color:#76816c;background:#fff;border-radius:4px;align-items:center;gap:7px;width:166px;padding:0 9px;display:flex}.search input{background:0 0;border:0;margin:0;padding:6px 0;font-size:11px}.observation-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.observation-card{border:1px solid var(--line);background:#fff;border-radius:7px;overflow:hidden}.card-open{text-align:left;background:0 0;border:0;width:100%;padding:0}.card-image{background:#edf0e7;height:220px;overflow:hidden}.card-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.card-open:hover img{transform:scale(1.04)}.card-copy{padding:16px 17px 12px}.card-meta{color:#6c7564;justify-content:space-between;align-items:center;gap:7px;font-size:9px;display:flex}.badge{color:#736640;white-space:nowrap;background:#f2efdf;border-radius:3px;padding:2px 6px;font-size:8px}.badge.reviewed{color:#416331;background:#e8f0df}.card-copy h3{overflow-wrap:anywhere;margin:10px 0 4px;font-size:15px;font-weight:550}.card-copy p{color:#6c7663;margin-bottom:0;font-size:11px}.observation-card>footer{color:#6b7662;border-top:1px solid #edf0e7;justify-content:space-between;align-items:center;padding:8px 15px;font-size:9px;display:flex}.icon-button{background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;min-width:30px;min-height:30px;padding:7px;display:inline-flex}.icon-button:hover:not(:disabled){background:#e8edde}.add-card{color:#596b4d;background:#f2f5ec;border:1px dashed #cbd6be;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:210px;display:flex}.add-card strong{font-size:12px;font-weight:500}.add-card span{color:#596b4d;font-size:10px}.privacy-foot{color:#6b7860;align-items:center;gap:8px;margin:25px 0 10px;font-size:10px;display:flex}.privacy-foot .text-button{white-space:nowrap;margin-left:auto}.app-footer{border-top:1px solid var(--line);color:#596b4d;justify-content:space-between;gap:20px;margin:35px 46px 0;padding:20px 0 25px;font-size:9px;display:flex}.muted{color:#adb4a5;margin:0 8px}.empty-state{text-align:center;color:#738568;flex-direction:column;align-items:center;gap:9px;padding:65px 25px;display:flex}.empty-state h2,.empty-state h3{color:#40543c;margin:7px 0 0;font-size:18px;font-weight:500}.empty-state p{margin-bottom:4px;font-size:12px}.library-empty{background:#f4f6ee;border:1px dashed #d6dec9;border-radius:6px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin:9px 0 34px;display:flex}.page-heading h1{font-family:var(--serif);letter-spacing:-1px;margin:10px 0;font-size:30px;font-weight:500}.page-heading p{color:var(--muted);margin:0;font-size:12px}.collection-form{max-width:500px;margin:35px 0}.collection-form>div{gap:10px;margin-top:8px;display:flex}.collections-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.collection-card{border:1px solid var(--line);text-align:left;background:#eef2e7;border-radius:6px;padding:25px;position:relative}.collection-card h2{overflow-wrap:anywhere;margin:18px 0 5px;font-size:17px}.collection-card p{color:var(--muted);margin:0;font-size:12px}.collection-card>svg:last-child{position:absolute;bottom:22px;right:20px}.settings-panel{border:1px solid var(--line);background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:35px;margin-bottom:24px;padding:30px;display:flex}.settings-panel>div:first-child{max-width:510px}.settings-panel h2{margin:10px 0;font-size:19px;font-weight:500}.settings-panel p{color:var(--muted);font-size:12px}.settings-actions{flex-direction:column;gap:12px;min-width:235px;display:flex}.hint{color:var(--muted);font-size:11px;font-weight:400;line-height:1.8}.toast{color:#fff;z-index:100;background:#254334;border-radius:7px;align-items:center;gap:15px;max-width:min(700px,100% - 32px);padding:12px 16px;font-size:12px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 8px 40px #1e392333}.toast .icon-button:hover{background:#3a6046}.editor{border:1px solid var(--line);width:min(1010px,100vw - 40px);max-height:calc(100dvh - 50px);color:var(--ink);background:#fafbf7;border-radius:10px;padding:0;box-shadow:0 20px 100px #15392340}.editor::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#16281daa}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:22px 28px;display:flex}.dialog-head h2{font-family:var(--serif);margin:5px 0 0;font-size:23px;font-weight:500}.editor-body{grid-template-columns:36% 1fr;gap:28px;padding:27px;display:grid}.photo-upload{cursor:pointer;background:#eef2e6;border:1px dashed #b9c7ac;border-radius:7px;justify-content:center;align-items:center;height:355px;display:flex;position:relative;overflow:hidden}.photo-upload>div{text-align:center;flex-direction:column;align-items:center;gap:13px;padding:15px;display:flex}.photo-upload strong{font-size:13px;font-weight:500}.photo-upload>div>span{font-size:10px}.photo-upload input{opacity:0;cursor:pointer;z-index:2;margin:0;position:absolute;inset:0}.photo-upload img{object-fit:cover;width:100%;height:100%}.photo-upload:focus-within{outline-offset:3px;outline:3px solid #87a857}.upload-caption{background:#fff;border:1px solid #d3ddc7;border-radius:4px;padding:5px 13px;font-size:11px;position:absolute;bottom:15px}.photo-column>.hint{margin-top:14px}.soft-note{background:#eaf0e1;border-radius:5px;align-items:flex-start;gap:10px;margin-top:20px;padding:15px;display:flex}.soft-note svg{flex-shrink:0;margin-top:3px}.soft-note p{margin:0;font-size:11px;line-height:1.9}.fields{flex-direction:column;gap:17px;display:flex}.fields label,.fields input,.fields textarea,.fields select{font-size:12px}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.optional{color:var(--muted);margin-left:3px;font-size:9px;font-weight:400}.consent-box{border:1px solid var(--line);border-radius:6px;margin:0;padding:13px 15px}.consent-box legend{padding:0 6px;font-size:12px}.consent-box legend svg{vertical-align:middle;margin-right:5px}.check{align-items:flex-start;gap:8px;margin-bottom:8px;font-weight:400;display:flex;font-size:11px!important}.check input{width:15px;height:15px;accent-color:var(--green);flex-shrink:0;margin-top:3px}.consent-box .hint{margin:10px 0 0;font-size:10px}.dialog-footer{border-top:1px solid var(--line);background:#fafbf7;padding:18px 27px;position:sticky;bottom:0}.actions{justify-content:flex-end;gap:10px;display:flex}.error{color:#9d3529;margin:0 0 12px;font-size:12px}.book-layout{grid-template-columns:250px 1fr;align-items:start;gap:30px;display:grid}.book-settings{border:1px solid var(--line);background:#fff;border-radius:6px;padding:22px}.book-settings h2{margin-bottom:22px;font-size:16px;font-weight:500}.book-settings label{margin-bottom:15px;font-size:11px}.book-settings input,.book-settings select{font-size:11px}.book-count{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:12px;margin:22px 0;padding:17px 0;display:flex}.book-count strong{font-family:Georgia,serif;font-size:30px;font-weight:400}.book-count span{color:var(--muted);font-size:10px}.book-settings h3{font-size:12px;font-weight:500}.order-item{align-items:center;gap:2px;margin-bottom:7px;display:flex}.order-item>span{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.book-preview{background:#e8ebdf;border-radius:6px;min-width:0;padding:30px}.book-cover{aspect-ratio:210/297;background:#f7f7ed;border:1px solid #d1d8c4;padding:9%;position:relative;overflow:hidden;box-shadow:0 10px 25px #32452812}.cover-top{letter-spacing:2px;align-items:center;gap:12px;font-size:8px;line-height:1.6;display:flex}.book-cover h2{font-family:var(--serif);word-break:keep-all;overflow-wrap:anywhere;margin:18% 0 20px;font-size:clamp(23px,3vw,42px);font-weight:500;line-height:1.65}.book-cover>p{font-family:var(--serif);color:#627553;font-size:12px;line-height:2}.cover-art{justify-content:flex-end;display:flex}.cover-art svg{color:#899c74;width:180px;height:180px;transform:rotate(-20deg)}.book-cover>footer{letter-spacing:1px;border-top:1px solid #cad3bc;justify-content:space-between;padding-top:13px;font-size:7px;display:flex;position:absolute;bottom:7%;left:9%;right:9%}.book-page{background:#fff;margin-top:28px;padding:8%;box-shadow:0 10px 25px #32452812}.book-page>header{color:#64745a;letter-spacing:1px;justify-content:space-between;margin-bottom:20px;font-size:8px;display:flex}.book-page>img{object-fit:contain;background:#f1f3eb;width:100%;max-height:380px}.book-page-copy{padding-top:22px}.book-page h2{font-family:var(--serif);overflow-wrap:anywhere;margin:10px 0;font-size:24px;font-weight:500}.book-page h3{font-size:12px;font-weight:500}.book-page em{color:#697c60;margin-left:7px;font-weight:400}.book-page p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.book-page footer{color:#65765b;border-top:1px solid #dce3d3;margin-top:23px;padding-top:12px;font-size:9px}.skip-link{z-index:200;background:#fff;padding:12px;position:fixed;top:-80px;left:15px}.skip-link:focus{top:10px}.spin{animation:1.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width:1500px){.main-shell main{width:100%;max-width:1400px;margin:0 auto}.welcome{min-height:355px}.welcome h1{font-size:44px}.card-image{height:280px}.observation-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1100px){.sidebar{width:195px;padding-left:13px;padding-right:13px}.main-shell{width:calc(100% - 195px);margin-left:195px}.main-shell main{padding:25px 28px 0}.topbar{padding:0 28px}.app-footer{margin-left:28px;margin-right:28px}.observation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.library-toolbar{flex-wrap:wrap}.welcome-art{opacity:.7;right:2%}.welcome{padding-left:30px}.welcome-index{left:30px;right:30px}.book-layout{grid-template-columns:210px 1fr;gap:15px}.book-preview{padding:18px}.cover-art svg{width:130px;height:130px}.settings-panel{flex-direction:column;align-items:flex-start}.collections-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.sidebar{border-right:0;border-bottom:1px solid var(--line);background:#f5f7f0;width:100%;height:auto;padding:15px 18px 0;position:static}.studio{display:block}.brand{width:max-content;font-size:23px}.brand small{margin-top:6px;font-size:8px}.brand-symbol{height:35px}.workspace-label,.sidebar-note,.sidebar-bottom{display:none}.sidebar nav{gap:4px;margin-top:19px;display:flex}.nav-item{justify-content:center;gap:6px;margin-bottom:9px;padding:10px 6px;font-size:12px}.nav-item svg{width:16px}.nav-count{display:none}.main-shell{width:100%;margin:0}.topbar{height:48px;padding:0 20px}.topbar-right{gap:10px}.avatar{display:none}.breadcrumb,.local-label{font-size:10px}.local-label{cursor:default}.main-shell main{padding:20px 18px 0}.welcome{min-height:315px;padding:24px 24px 42px}.welcome h1{font-size:32px}.welcome p{max-width:200px;font-size:11px}.welcome-art{opacity:.48;pointer-events:none;width:200px;top:38px;right:-53px}.botanical-mark{width:175px;height:175px}.botanical-mark svg{width:140px;height:140px}.art-caption{display:none}.welcome-index{font-size:6px;left:24px;right:24px}.welcome-index span:first-child{letter-spacing:0}.eyebrow{letter-spacing:1.7px;font-size:8px}.welcome-copy .button{font-size:11px}.mobile-break{display:block}.library-section{padding-top:25px}.section-heading h2{font-size:18px}.library-toolbar{gap:14px;padding-bottom:15px}.search-filters{width:100%}.search-filters select{width:135px}.search{flex:1;min-width:0}.observation-grid{gap:12px}.card-image{height:185px}.card-copy{padding:12px 10px}.card-copy h3{font-size:13px}.card-copy p{font-size:10px}.card-meta{flex-wrap:wrap;align-items:flex-start;gap:4px;font-size:8px}.badge{font-size:7px}.observation-card>footer{padding:6px 8px;font-size:8px}.add-card{min-height:240px}.add-card strong{font-size:11px}.privacy-foot{flex-wrap:wrap;align-items:flex-start;font-size:9px}.privacy-foot>span{flex:1}.privacy-foot .text-button{font-size:10px}.app-footer{flex-wrap:wrap;gap:8px;margin:25px 18px 0;padding-top:18px;font-size:8px}.page-heading{flex-direction:column;align-items:flex-start;margin-bottom:25px}.page-heading h1{font-size:26px}.page-heading p{font-size:11px}.book-layout{grid-template-columns:1fr}.book-settings{padding:20px}.book-settings h2{margin-bottom:15px}.book-preview{padding:20px}.book-cover h2{font-size:30px}.book-cover{min-height:460px}.cover-art svg{width:140px;height:140px}.book-settings .book-count{margin:15px 0;padding:12px 0}.book-page h2{font-size:23px}.book-page>img{max-height:300px}.editor{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.dialog-head{padding:18px}.dialog-head h2{font-size:20px}.editor-body{flex-direction:column;gap:20px;padding:18px;display:flex}.photo-upload{height:250px}.soft-note{margin-top:12px}.photo-column>.hint{font-size:10px}.fields{gap:15px}.dialog-footer{padding:14px 18px}.actions{justify-content:stretch}.actions .button{flex:1;padding:10px;font-size:11px}.settings-panel{gap:15px;padding:22px}.settings-actions{width:100%;min-width:0}.settings-panel h2{font-size:18px}.collection-form{margin-top:20px}.collections-grid{gap:12px}.collection-card{padding:19px}.collection-card h2{font-size:15px}.toast{width:max-content;max-width:calc(100% - 25px);font-size:11px;bottom:16px}.empty-state{padding:48px 15px}.empty-state h2,.empty-state h3{font-size:16px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@page{size:A4;margin:0}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{color:#24392d;background:#fff}.no-print,.skip-link,.editor{display:none!important}.studio,.main-shell,.book-layout,.book-preview{background:#fff;width:100%;margin:0;padding:0;display:block}.main-shell main{max-width:none;margin:0;padding:0}.book-cover{aspect-ratio:auto;width:210mm;height:297mm;min-height:0;box-shadow:none;break-after:page;border:0;padding:25mm}.book-cover h2{font-size:38pt}.cover-art svg{width:65mm;height:65mm}.book-cover>p{font-size:14pt}.book-cover>footer{font-size:9pt}.book-page{box-shadow:none;break-before:page;break-after:page;margin:0;padding:18mm 22mm}.book-page>img{object-fit:contain;width:100%;max-height:110mm}.book-page p{orphans:3;widows:3;font-size:11pt;line-height:1.8}.book-page h2{font-size:23pt}.book-page h3{font-size:12pt}.book-page footer{font-size:9pt}.book-page-copy{padding-top:6mm}.book-page>header{font-size:8pt}.book-cover .cover-top{font-size:10pt}.book-page:last-child{break-after:auto}.main-shell{min-height:0}}
