@font-face{font-family:'Noto Serif KR';src:url('/fonts/NotoSerifKR.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Noto Sans KR';src:url('/fonts/NotoSansKR.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
.language-switch{display:flex;gap:4px;align-items:center;flex-shrink:0;flex-wrap:wrap}
.language-switch button{font-family:system-ui,sans-serif;font-size:14px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid transparent;background:transparent;color:#50666b;border-radius:6px;line-height:1.4;cursor:pointer}
.language-switch button[aria-pressed=true]{color:#183b4b;background:#e8e9dc;border-color:#b5bcae;font-weight:700}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8c691c;outline-offset:3px}
.campaign-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.campaign-header .campaign-title{min-width:0}.campaign-title>span{white-space:normal}
html:lang(en) body{font-family:system-ui,-apple-system,sans-serif;letter-spacing:normal}
html:lang(en) .cover-title,html:lang(en) .campaign-title,html:lang(en) h1{font-family:Georgia,serif;letter-spacing:normal}
html:lang(ko) body{font-family:'Noto Sans KR',system-ui,sans-serif;word-break:keep-all;overflow-wrap:anywhere;letter-spacing:normal}
html:lang(ko) .cover-title,html:lang(ko) .campaign-title,html:lang(ko) h1{font-family:'Noto Serif KR',serif;letter-spacing:normal}
.storybook-article:lang(en) h2,.storybook-article:lang(en) blockquote{font-family:Georgia,serif;letter-spacing:normal;word-break:normal}
.storybook-article:lang(en) p{font-family:system-ui,sans-serif;line-height:1.8;letter-spacing:normal;word-break:normal;overflow-wrap:anywhere}
.storybook-article:lang(ko) h2,.storybook-article:lang(ko) blockquote{font-family:'Noto Serif KR',serif;letter-spacing:normal;word-break:keep-all;overflow-wrap:anywhere}
.storybook-article:lang(ko) p{font-family:'Noto Sans KR',sans-serif;line-height:1.8;letter-spacing:normal;word-break:keep-all;overflow-wrap:anywhere}
.storybook-page{height:auto!important;max-height:none!important}.storybook-copy{max-height:none!important;overflow:visible!important;min-width:0}
html:not(:lang(zh)) .cover-title{font-size:clamp(38px,5.2vw,82px);line-height:1.22}html:not(:lang(zh)) .cover-title>span{white-space:normal}
html:not(:lang(zh)) .cover-quote{font-size:clamp(15px,1.3vw,22px)}html:not(:lang(zh)) .campaign-detail h3{font-size:clamp(18px,1.5vw,25px)}
html:not(:lang(zh)) .campaign-detail-note,html:not(:lang(zh)) .campaign-reward-note{white-space:normal}
.form-heading{flex-wrap:wrap}.form-heading-tools{gap:8px;flex-wrap:wrap}.source-language-label{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:12px}.source-language-label select{width:auto;min-height:44px}
input,textarea,select{font-family:system-ui,-apple-system,'Noto Sans KR','PingFang SC','Microsoft YaHei',sans-serif!important}
.storybook-write-form,.storybook-write-layout,.storybook-writing-page #entry-form,.storybook-writing-page #entry-fields{height:auto!important;max-height:none!important;overflow:visible!important}
.storybook-writing-page textarea{min-height:140px!important;height:clamp(140px,20vh,300px)!important}
.storybook-stage{height:auto!important}.book-dots{flex-wrap:wrap}.form-actions{flex-wrap:wrap}.form-actions button{min-height:52px}
.editorial-panel{margin:28px 0;padding:24px;border:1px solid #d8d7c8;border-radius:10px;background:#faf8ef}
.editorial-panel h2,.editorial-panel h3{font-family:STSong,SimSun,Georgia,serif;color:#183b4b}.editorial-panel label{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-weight:600}
.editorial-panel input,.editorial-panel textarea,.editorial-panel select{width:100%;min-height:44px;padding:12px;border:1px solid #b5bcb5;border-radius:6px;color:#183b4b;background:#fff;box-sizing:border-box;font-size:16px}
.editorial-panel textarea{min-height:100px;line-height:1.8}.editorial-panel textarea[data-field=paragraphs]{min-height:240px}.editorial-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.editorial-toolbar .button{min-height:44px}.editorial-statuses{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.editorial-statuses span{padding:6px 10px;border:1px solid #c4cbbd;border-radius:6px;color:#405744;background:#edf0e7}.editorial-statuses .stale{color:#893b23;background:#fff1de}
.editorial-original{white-space:pre-wrap;max-height:280px;overflow:auto;padding:16px;background:#fffdf7;border-left:3px solid #c5aa64;line-height:1.8}
.translation-columns{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(280px,1.3fr);gap:24px}.detail-dialog{width:min(1280px,96vw)!important;max-width:96vw!important}
.preview-dialog{width:min(1480px,96vw);max-width:96vw;max-height:94dvh;overflow:auto;background:#fffdf7;color:#183b4b;padding:24px;border:1px solid #d9d5c7;border-radius:10px}.preview-dialog::backdrop{background:#142b3866}.preview-dialog .dialog-bar{display:flex;justify-content:space-between;gap:12px;align-items:center}.preview-dialog .storybook-page{padding:28px;background:#fffdf7;box-sizing:border-box;width:100%}
.preview-dialog .storybook-meta{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2ddcf;padding-bottom:18px;margin-bottom:24px;color:#77897e}.preview-dialog .storybook-kia-logo{width:84px;filter:brightness(0)}
.preview-dialog .storybook-spread{display:grid;grid-template-columns:45% 1fr;gap:36px;align-items:center}.preview-dialog .storybook-visual{width:100%;aspect-ratio:1/1.05;background-size:contain;background-position:center!important;background-repeat:no-repeat;background-color:#fffdf8}
.preview-dialog .storybook-article h2{font-family:STSong,SimSun,serif;font-size:clamp(23px,2.15vw,36px);font-weight:400;line-height:1.4;letter-spacing:.01em;color:#183b4b;margin:0 0 22px}
.preview-dialog .storybook-intro{font-size:clamp(16px,1.15vw,19px);font-weight:500;line-height:1.85;color:#6c7f73;margin:0 0 24px}.preview-dialog .storybook-quote{font-family:STSong,SimSun,serif;font-size:clamp(19px,1.4vw,23px);font-weight:400;line-height:1.75;color:#5d633f;background:#faf6e8;border-left:3px solid #edc95d;padding:14px 20px;margin:0 0 24px}.preview-dialog .storybook-text{font-size:clamp(14px,1.05vw,18px);line-height:1.95;color:#50666b;margin:0 0 18px}.storybook-title-line{display:block}
.preview-dialog .storybook-article:lang(en) h2,.preview-dialog .storybook-article:lang(en) blockquote{font-family:Georgia,serif}.preview-dialog .storybook-article:lang(ko) h2,.preview-dialog .storybook-article:lang(ko) blockquote{font-family:'Noto Serif KR',serif}
.admin-topbar{height:auto!important;min-height:68px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.admin-brand-header{flex-wrap:wrap}.admin-brand-header .language-switch{margin-left:auto}.dialog-bar{flex-wrap:wrap}.story-label .muted{flex-shrink:0}.form-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#published-notice{margin:12px 0;color:#795b2f}
@media(max-width:1000px){.campaign-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.translation-columns{grid-template-columns:1fr}.preview-dialog .storybook-spread{grid-template-columns:1fr}.preview-dialog .storybook-visual{aspect-ratio:4/3;max-height:500px}.cover-quote{display:none}}
@media(max-width:600px){.campaign-header{align-items:flex-start;flex-direction:column;gap:8px}.language-switch{max-width:100%;gap:2px}.language-switch button{padding:8px 10px}.campaign-header .language-switch{align-self:center}.campaign-details-grid{grid-template-columns:1fr!important}.campaign-title{font-size:18px!important}.admin-brand-header{padding:16px}.admin-brand-header .language-switch{margin-left:0}.editorial-panel{padding:14px}.preview-dialog{padding:12px}.preview-dialog .storybook-page{padding:12px}.form-panel .form-grid{grid-template-columns:1fr}.preview-dialog .storybook-text{font-size:16px}.storybook-title-line{display:inline}.storybook-title-line+span:before{content:' '}.campaign-detail-note,.campaign-reward-note{white-space:normal!important}}
/* Content, rather than the viewport, defines the writing page height. */
.storybook-writing-page #entry-form:not([hidden]),.storybook-writing-page #entry-fields{display:block!important;flex:none!important}
.storybook-writing-page .story-label{display:block!important;flex:none!important;min-height:0!important;position:relative}
.storybook-writing-page .story-label textarea{display:block;flex:none!important;width:100%;height:clamp(150px,20vh,260px)!important;min-height:150px!important}
.storybook-writing-page{overflow:visible!important;display:block!important}
.storybook-write-layout{flex:none!important;align-items:stretch}.storybook-write-form{display:block!important}
.storybook-write-visual img{min-height:240px;object-fit:cover}.form-heading-tools button{min-height:44px}
html:not(:lang(zh)) .storybook-writing-page #submit-story{letter-spacing:normal}
html:lang(en) .cover-title>span+span:before,html:lang(en) .write-visual figcaption>span:before{content:' '}
.storybook-writing-page .story-label>span[data-i18n]{position:static!important;float:none!important;display:inline!important}
.storybook-intro{color:#617367!important}.storybook-label,.storybook-meta,.muted,.small.muted,.campaign-detail-note,.campaign-reward-note{color:#596f64}
@media(max-width:600px){.storybook-writing-page .story-label .small{position:static!important;display:block!important;margin-top:4px}.source-language-label{flex-wrap:wrap}.source-language-label select{width:100%}}
.confirm-dialog{max-width:min(480px,calc(100vw - 32px));background:#fffdf7;color:#183b4b;border:1px solid #d8d4c7;border-radius:12px;padding:28px;font-size:16px;line-height:1.8}.confirm-dialog::backdrop{background:#16324166}.confirm-dialog .editorial-toolbar{justify-content:flex-end}.confirm-dialog button{min-height:44px;padding:10px 20px}.admin-page-heading h1>span+span:before,#login-story-title>span+span:before{content:' '}
/* Longer translations remain inside the illustrated cover. */
html:not(:lang(zh)) .cover-description{font-family:system-ui,'Noto Sans KR',sans-serif;font-size:clamp(16px,1.5vw,23px);line-height:1.8;letter-spacing:normal}
html:not(:lang(zh)) .cover-description>span,html:not(:lang(zh)) .cover-quote>span{white-space:normal;overflow-wrap:anywhere}
html:not(:lang(zh)) .cover-quote{letter-spacing:normal;max-width:16%;line-height:1.7}
html:not(:lang(zh)) .cover-button{font-family:inherit;font-size:clamp(16px,1.35vw,22px);padding:12px 16px;min-height:56px;letter-spacing:normal;height:auto}
@media(min-width:901px){html:not(:lang(zh)) .cover-layout{height:auto;min-height:calc(624 * var(--cover-u));padding-bottom:36px}html:not(:lang(zh)) .cover-copy{position:relative;left:auto;top:auto;padding-top:clamp(48px,6vw,110px);margin-left:calc(56 * var(--cover-u));width:46%}html:not(:lang(zh)) .cover-description{margin:24px 0 28px}}
@media(max-width:600px){.campaign-header{height:auto;padding-block:12px}.campaign-title{max-width:100%}html:not(:lang(zh)) .cover-title{font-size:clamp(34px,8vw,48px)}html:not(:lang(zh)) .cover-button{flex-basis:100%;width:100%}}

/* Fit the desktop cover to available browser height as well as width. */
@media (min-width:1001px) {
 body:has(#landing:not([hidden])) { --landing-header:76px; --landing-hero:clamp(370px,calc(100dvh - 330px),740px); }
 body:has(#landing:not([hidden])) .campaign-header { height:var(--landing-header); min-height:var(--landing-header); }
 body:has(#landing:not([hidden])) .campaign-book-icon { width:40px; height:38px; }
 body:has(#landing:not([hidden])) .campaign-title { font-size:clamp(20px,1.6vw,28px); }
 body:has(#landing:not([hidden])) .cover-backdrop { height:calc(var(--landing-header) + var(--landing-hero)); }
 body:has(#landing:not([hidden])) .cover-backdrop img { object-fit:cover; object-position:right center; }
 #landing .cover-layout { height:auto; min-height:var(--landing-hero); padding:0; display:flex; align-items:center; }
 #landing .cover-copy { position:relative; top:auto; left:auto; padding:30px 0; margin-left:3.7vw; width:46%; }
 #landing .cover-title { font-size:clamp(36px,min(5.1vw,7.4dvh),78px); line-height:1.3; }
 #landing .cover-title::after { margin-top:18px; height:3px; width:60px; }
 #landing .cover-description { font-size:clamp(17px,min(1.7vw,2.6dvh),26px); line-height:1.8; margin:24px 0 30px; }
 #landing .cover-description>span { white-space:normal; }
 #landing .cover-actions { gap:18px; }
 #landing .cover-button { width:auto; min-width:180px; min-height:52px; height:auto; padding:16px 26px; font-size:clamp(18px,1.5vw,24px); border-radius:9px; }
 #landing .cover-button svg { width:24px; height:24px; }
 #landing .cover-quote { top:28%; font-size:clamp(14px,min(1.4vw,2dvh),21px); }
 #landing .campaign-details { min-height:0; padding:22px 3.7vw 24px; flex:1; }
 #landing .campaign-details-grid { margin-top:16px; }
 #landing .campaign-detail,#landing .campaign-detail:nth-child(n) { grid-template-columns:52px minmax(0,1fr); gap:16px; padding-left:20px; }
 #landing .campaign-detail:first-child { padding-left:0; }
 #landing .campaign-detail h3 { font-size:clamp(18px,1.5vw,24px); line-height:1.4; }
 #landing .campaign-detail p,#landing .campaign-reward-list,#landing #participation-info,#landing #reward-info { font-size:clamp(15px,1.15vw,19px); line-height:1.6; }
 body:has(#landing:not([hidden])) .campaign-footer { height:auto; min-height:64px; padding:16px 3.7vw; font-size:16px; }
 body:has(#landing:not([hidden])) .campaign-logo { width:92px; }
 body:has(#landing:not([hidden])) #contact-info { font-size:16px; }
}

/* Desktop book uses the actual remaining viewport, not a width-derived height. */
@media (min-width:1100px) and (min-height:760px) {
 body:has(#stories:not([hidden])) .campaign-header { height:64px; min-height:64px; padding-block:8px; }
 body:has(#stories:not([hidden])) .campaign-book-icon { width:34px; height:34px; }
 #stories:not([hidden]) { padding:10px 3vw 12px; margin:0 auto; height:calc(100dvh - 64px); box-sizing:border-box; display:flex; flex-direction:column; gap:8px; }
 #stories .section-top { margin:0; flex:none; }
 #stories .section-top h2 { margin:0; font-size:23px; line-height:1.4; }
 #stories #book-hint { margin:2px 0; font-size:13px; }
 #stories .storybook { flex:1; min-height:0; }
 #stories .storybook-stage { height:calc(100% - 38px)!important; min-height:0; }
 #stories .storybook-page { height:100%!important; min-height:0; padding:16px 30px; display:flex; flex-direction:column; }
 #stories .storybook-meta { flex:none; padding-bottom:10px; margin-bottom:0; }
 #stories .storybook-spread { flex:1; min-height:0; padding-top:16px; }
 #stories .storybook-visual { height:100%; min-height:0; max-height:100%; aspect-ratio:auto; }
 #stories .storybook-copy h2 { font-size:clamp(24px,2vw,32px); margin-bottom:14px; }
 #stories .storybook-intro { font-size:16px; line-height:1.65; margin-bottom:14px; }
 #stories .storybook-quote { font-size:20px; line-height:1.6; padding:10px 16px; margin-bottom:14px; }
 #stories .storybook-text { font-size:15px; line-height:1.75; margin-bottom:12px; }
 #stories .storybook-controls { height:38px; padding:6px 12px; box-sizing:border-box; }
 #stories .flow-actions { flex:none; margin:0; padding:0; }
 #stories .flow-actions .button { min-height:40px; padding:8px 18px; }
 #stories #published-notice:empty { display:none; }
 #stories .storybook-write-layout { flex:1!important; height:0!important; min-height:0; padding-top:12px; }
 #stories .storybook-write-visual { min-height:0; height:100%; }
 #stories .storybook-write-visual img { min-height:0; }
 #stories .storybook-write-form { height:100%!important; display:flex!important; flex-direction:column; min-height:0; }
 #stories .form-heading { margin-bottom:8px; padding-bottom:8px; }
 #stories .write-form-intro h2 { font-size:21px; }
 #stories .write-form-intro p { font-size:13px; }
 #stories #entry-form:not([hidden]),#stories #entry-fields { display:flex!important; flex-direction:column; flex:1!important; min-height:0; }
 #stories .form-grid { gap:6px 16px; }
 #stories #entry-fields input { height:36px; min-height:36px; padding:6px 10px; margin-top:3px; }
 #stories .form-divider { margin:6px 0; }
 #stories .source-language-label { margin-block:4px; }
 #stories .source-language-label select { min-height:36px; padding:5px 10px; }
 #stories .story-label { display:flex!important; flex-direction:column; flex:1!important; min-height:0!important; margin-top:6px; }
 #stories .story-label textarea { flex:1!important; min-height:65px!important; height:0!important; resize:none; margin-top:4px; }
 #stories .field-bottom { margin:4px 0; }
 #stories #submit-story { min-height:44px; padding:10px 20px; }
 #stories .form-message:empty { display:none; }
}

/* Resolve the legacy important block/auto rules before distributing book space. */
@media (min-width:1100px) and (min-height:760px) {
 #stories:not([hidden]) { width:100%; max-width:none; }
 #stories .storybook { display:flex; flex-direction:column; min-height:0; padding:0; }
 #stories .storybook-stage { flex:1; height:auto!important; min-height:0; }
 #stories .storybook-controls { flex:0 0 38px; }
 #stories .storybook-writing-page { display:flex!important; flex-direction:column; }
 #stories .storybook-write-layout { display:grid!important; grid-template-rows:minmax(0,1fr); height:auto!important; flex:1 1 0!important; min-height:0; }
 #stories .storybook-write-visual { display:flex; flex-direction:column; margin:0; min-height:0; height:100%; }
 #stories .storybook-write-visual img { display:block; flex:1 1 0; height:0; min-height:0; width:100%; object-fit:cover; }
 #stories .storybook-write-visual figcaption { flex:none; }
 #stories .storybook-write-form { min-height:0; padding-bottom:0; }
 #stories #entry-form:not([hidden]) { height:0!important; flex:1 1 0!important; }
 #stories #entry-fields { height:0!important; flex:1 1 0!important; padding:0; margin:0; }
 #stories #entry-fields>.story-label { flex:1 1 0!important; }
 #stories .form-actions { flex:none; margin-top:4px; }
 #stories .form-message:not(:empty) { flex:none; margin:4px 0 0; }
}
