:root{--green:#80c342;--lime:#a6ce39;--brown:#552d14;--cream:#fffdf4;--paper:#f5efd9;--ink:#372b20;--muted:#6f6559;--line:#ded6be;--blue:#739dd2;font-family:Pretendard,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;padding-bottom:220px}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{cursor:default;opacity:.48}a,button,input,select,summary{touch-action:manipulation}:focus-visible{outline:3px solid #3265a2;outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}button{color:inherit}button,a{overflow-wrap:anywhere}img{max-width:100%}.skip-link{position:fixed;top:-100px;left:16px;z-index:20;padding:12px;background:white}.skip-link:focus{top:8px}
.page-header,.page-footer,main,.tray-inner{width:min(1280px,calc(100% - 64px));margin:auto}.page-header{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{font-size:1.85rem;font-weight:900;color:var(--brown);letter-spacing:-.08em;text-decoration:none}.brand span{color:#51832a}.back-link{font-size:.9rem;font-weight:650;text-decoration:none}.back-link:hover{text-decoration:underline}
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;padding:66px 0 48px}.eyebrow{font-size:.76rem;letter-spacing:.1em;font-weight:750;color:#4c732a;margin-bottom:12px}h1{font-size:clamp(2.4rem,4.5vw,3.6rem);letter-spacing:-.06em;line-height:1.25;color:var(--brown)}h1 span{display:block}.hero-description{margin-top:22px;color:var(--muted);font-size:1.07rem}.hero-note{border-left:4px solid var(--lime);padding:16px 26px}.hero-note strong{font-size:1.12rem;color:var(--brown)}.hero-note p{margin:10px 0 18px;color:var(--muted);font-size:.93rem}.hero-note>span{display:inline-block;padding:5px 14px;border-radius:20px;background:#e9efcf;color:#496129;font-size:.82rem;font-weight:700}.shelf-nav{display:flex;gap:0;border-block:1px solid var(--line);margin-bottom:34px}.shelf-nav a{padding:16px 26px 16px 0;text-decoration:none;font-size:.75rem;color:#567731}.shelf-nav span{font-size:.94rem;color:var(--brown);font-weight:750;margin-left:10px}.shelf-nav a:hover span{text-decoration:underline}
.find-panel{border-radius:18px;padding:23px 26px;background:var(--paper);margin-bottom:48px}.find-fields{display:flex;gap:18px;align-items:flex-end}.find-fields label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:700}.search-label{flex:1}.find-fields input,.find-fields select{min-height:46px;border:1px solid #c7bea6;background:var(--cream);border-radius:9px;padding:9px 13px;color:var(--ink);min-width:0;width:100%}.find-fields select{min-width:180px}.result-actions{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:16px;font-size:.87rem}.result-actions p{color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;min-height:46px;border-radius:10px;border:1px solid transparent;padding:10px 18px;font-size:.9rem;font-weight:750;line-height:1.4}.button-primary{background:var(--green);color:#243313;border-color:#6ba535}.button-primary:hover:enabled{background:#91d24f}.button-light{background:var(--cream);border-color:#c8bea6;color:var(--brown)}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;padding:9px 3px;font-size:.85rem;font-weight:650}
.shelf-section{scroll-margin-top:24px;margin-bottom:64px}.shelf-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.shelf-heading .eyebrow{margin-bottom:6px}h2{font-size:1.7rem;letter-spacing:-.04em;color:var(--brown)}.shelf-heading>p{font-size:.88rem;color:var(--muted);text-align:right}.bookshelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 28px}.book{min-width:0;position:relative;padding:0 10px 18px;border-bottom:6px solid #e4d9bd;box-shadow:0 9px 9px -10px #6746228c;display:flex;flex-direction:column}.book-cover{display:block;position:relative;aspect-ratio:210/297;margin:0 8px 20px;box-shadow:3px 5px 11px #48311426;border-radius:3px 7px 7px 3px;overflow:hidden;background:var(--paper);text-decoration:none}.book-cover:after{content:"";position:absolute;inset:0;border:1px solid #00000014;border-radius:inherit;pointer-events:none}.book-cover img{width:100%;height:100%;object-fit:contain;display:block;background:white}.book-cover:hover{box-shadow:3px 7px 16px #4831143b}.cover-pending{position:absolute;inset:0;padding:26px 18px;border:1px dashed #b8a889;display:flex;flex-direction:column;justify-content:center;text-align:center;background:#f5efd9}.cover-pending small{margin-top:20px;color:var(--muted)}.book-kind{font-size:.74rem;color:#426427;font-weight:750;margin-bottom:6px}.book h3,.book h4{font-size:1.02rem;line-height:1.5;color:var(--brown);margin-bottom:9px;letter-spacing:-.025em}.book-description{font-size:.81rem;color:var(--muted);margin-bottom:10px}.book-meta{font-size:.75rem;color:var(--muted);margin-top:auto;margin-bottom:10px}.book-select{display:flex;gap:9px;align-items:center;min-height:44px;font-size:.85rem;cursor:pointer}.book-select input{width:20px;height:20px;accent-color:#527e2c;flex-shrink:0}.book.selected{border-bottom-color:#91ba4d}.explore-link{display:block;font-size:.81rem;color:#355d87;text-decoration:none;padding:9px 0;min-height:40px}.explore-link:hover{text-decoration:underline}.new-tab{font-size:.7rem;color:var(--muted);white-space:nowrap}.book-unavailable{font-size:.8rem;color:#8b5421}.library-notice{padding:25px 0;border-top:1px solid var(--line);font-size:.86rem;color:var(--muted);margin-bottom:15px}.library-notice strong{display:block;color:var(--brown);margin-bottom:8px}.page-footer{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:25px 0;font-size:.8rem;color:var(--muted)}.page-footer strong{color:var(--brown);font-size:1.1rem}.page-footer a{margin-left:auto}.error-message,.empty-message{padding:28px 18px;text-align:center;background:var(--paper);border-radius:12px;margin-bottom:24px}.error-message{color:#8b3421}
.selection-tray{position:fixed;bottom:0;left:0;right:0;z-index:5;background:#fffdf4f7;border-top:1px solid #d4c8a8;box-shadow:0 -5px 25px #5736160d;padding:14px 0 max(14px,env(safe-area-inset-bottom));max-height:60dvh;overflow:auto;backdrop-filter:blur(8px)}.tray-main{display:flex;align-items:center;justify-content:space-between;gap:20px}.selection-info{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}.selection-info strong{font-size:1rem;color:var(--brown)}#selection-size{font-size:.82rem;color:var(--muted)}.tray-buttons{display:flex;gap:14px;align-items:center}#selection-details{font-size:.8rem;margin-top:6px}#selection-details summary{width:fit-content;padding:4px 0;color:var(--muted)}#selected-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;padding:8px 0 4px;list-style:none;max-height:160px;overflow:auto;margin:0}#selected-list li{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:3px 0}#selected-list button{flex-shrink:0;min-height:38px;border:0;background:transparent;text-decoration:underline}#download-state{font-size:.84rem;padding-top:10px}#download-progress{width:100%;height:8px;accent-color:#659f33}#download-status{margin-bottom:5px}#failed-files{color:#942f19;max-height:90px;overflow:auto;margin:6px 0;padding-left:20px}#save-again,#retry-download{margin-top:8px;margin-right:8px;font-size:.82rem;min-height:40px}
@media(min-width:1450px){.bookshelf{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1000px){.bookshelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 18px}.hero-note{padding-left:20px}.hero{gap:25px}.shelf-heading>p{max-width:240px}}
@media(max-width:680px){.page-header,.page-footer,main,.tray-inner{width:calc(100% - 32px)}body{padding-bottom:230px}.page-header{min-height:72px;gap:10px}.brand{font-size:1.55rem}.back-link{font-size:.73rem}.hero{display:block;padding:38px 0 30px}h1{font-size:2.5rem}.hero-description{font-size:.94rem;margin-top:15px}.hero-note{margin-top:25px;padding:0 0 0 16px}.hero-note strong{font-size:.95rem}.hero-note p{font-size:.82rem;margin:6px 0 10px}.hero-note p br{display:none}.shelf-nav{gap:0;margin-bottom:24px;justify-content:space-between}.shelf-nav a{padding:13px 0;font-size:.64rem}.shelf-nav span{font-size:.75rem;margin-left:3px}.find-panel{padding:18px 15px;margin-bottom:35px}.find-fields{flex-wrap:wrap;gap:12px}.search-label{flex-basis:100%}.find-fields label:not(.search-label){flex:1}.find-fields select{min-width:0}.find-fields>.button{font-size:.78rem;padding-inline:10px}.result-actions{font-size:.76rem;gap:8px;align-items:flex-start}.result-actions .text-button{font-size:.76rem;padding-top:0;flex-shrink:0}.shelf-heading{display:block;margin-bottom:20px}.shelf-heading>p{text-align:left;margin-top:9px;max-width:none;font-size:.8rem}.shelf-heading>p br{display:none}h2{font-size:1.4rem}.shelf-section{margin-bottom:42px}.bookshelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}.book{padding:0 2px 10px}.book-cover{margin:0 3px 14px}.book h3,.book h4{font-size:.9rem}.book-description{font-size:.76rem}.book-kind{font-size:.68rem}.book-meta{font-size:.7rem}.book-select{font-size:.78rem}.explore-link{font-size:.75rem;line-height:1.65}.new-tab{display:block;font-size:.65rem}.tray-main{flex-wrap:wrap;gap:6px}.selection-info{gap:10px}.tray-buttons{width:100%;justify-content:flex-end;gap:12px}.tray-buttons .button{flex:1}.tray-buttons .text-button{margin-right:auto;font-size:.78rem}#selected-list{grid-template-columns:1fr}#selection-details{margin-top:3px}.selection-tray{max-height:65dvh}.cover-pending{padding:12px;font-size:.85rem}.cover-pending small{font-size:.65rem}.page-footer{gap:10px}.page-footer a{margin-left:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* 첫 화면에서도 표지가 보이도록 안내 영역은 짧게 유지합니다. */
.hero{padding:34px 0 28px}.hero h1{font-size:clamp(2rem,3.5vw,3.1rem)}.hero h1 span{display:inline}.hero-description{margin-top:14px;font-size:.96rem}.hero-note{padding-block:8px}.shelf-nav{margin-bottom:24px}.find-panel{margin-bottom:32px}.shelf-heading{margin-bottom:22px}
@media(max-width:680px){.hero{padding:24px 0 20px}.hero h1{font-size:2.05rem;line-height:1.2}.hero h1 span{display:block}.hero-description{margin-top:12px;font-size:.85rem}.hero-note{border:0;padding:0;margin-top:13px}.hero-note strong,.hero-note p{display:none}.hero-note>span{font-size:.73rem;padding:3px 12px}.shelf-nav{margin-bottom:18px}.find-panel{margin-bottom:26px}.shelf-heading{margin-bottom:16px}}

/* 여권 지역별 책장 안에서도 기존 반응형 카드 그리드를 그대로 사용합니다. */
.place-groups{display:grid;gap:40px}.place-group{min-width:0}.place-group__title{font-size:1.18rem;color:var(--brown);margin-bottom:20px;padding-bottom:9px;border-bottom:1px solid var(--line);letter-spacing:-.025em}
@media(max-width:680px){.place-groups{gap:30px}.place-group__title{font-size:1.05rem;margin-bottom:16px;padding-bottom:7px}}
