.unified .welcome,.unified.browsing .welcome{display:grid;min-height:180px;margin-top:20px;grid-template-columns:64% 36%}.unified .welcomeCopy{padding:22px 30px;position:relative}.unified .welcome h1{font-size:30px;margin:8px 0}.unified .welcome h1 br{display:none}.unified .welcome p{font-size:13px;margin-bottom:0}.unified .welcome>img{max-height:185px}.unified .welcome #todayPick,.unified .welcomeSign{display:none}.unified.browsing .portals{display:grid}.unified .portals{margin:16px 0 25px}.unified .portals>button{padding:18px 22px}.unified .portals>button.active{box-shadow:inset 0 0 0 2px var(--green)}.unified .portalNumber{margin-bottom:6px}.unified .portals strong{font-size:21px}.unified .portals p{margin:4px 0}.unified .libraryLayout{grid-template-columns:190px minmax(0,1fr);gap:25px}.unified .filterGroup{padding:12px 0}.unified .filterGroup button{min-height:39px}.unified .searchDrawer{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.unified .searchDrawer summary{cursor:pointer;min-height:44px;font-size:12px;display:flex;align-items:center}.unified .searchBand{margin:0;padding:0}.unified .searchBand form{display:block;width:100%}.unified .searchBand form>div{display:flex;flex-direction:column}.unified .searchBand label,.unified .searchBand>p{display:none}.unified .searchBand input{width:100%;font-size:12px}.unified .searchBand button{min-height:40px;font-size:12px}.unified .bookGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.unified .bookGrid.listView{grid-template-columns:1fr}.unified .cover{height:210px}.unified .listView .cover{height:130px}.unified .collectionHeader h2{font-size:26px}.unified .forestBanner{margin-top:30px}@media(max-width:1050px){.unified .libraryLayout{grid-template-columns:155px minmax(0,1fr);gap:20px}.unified .cover{height:175px}.unified .portals strong{font-size:18px}.unified .welcome h1{font-size:28px}}@media(max-width:760px){.unified .libraryLayout{display:block}.unified .sidePanel{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:16px}.unified #filters{margin-bottom:0;flex:1}.unified .searchDrawer{margin:0;padding:0;border:0;max-width:100%}.unified .searchDrawer[open]{flex-basis:100%}.unified .searchDrawer summary{min-height:40px;padding:5px 10px;border:1px solid var(--line);border-radius:8px}.unified .searchDrawer[open] .searchBand{margin-top:10px}.unified .searchBand form>div{flex-direction:row}.unified .filterGroup{padding:0}.unified .welcome,.unified.browsing .welcome{grid-template-columns:62% 38%;min-height:150px}.unified .welcomeCopy{padding:20px}.unified .welcome h1{font-size:25px}.unified .welcome>img{max-height:180px}.unified .welcome .eyebrow{font-size:8px}.unified .portals>button{padding:14px 12px}.unified .portals strong{font-size:15px}.unified .cover{height:155px}.unified .bookInfo{padding:10px}.unified .book h3{font-size:14px}.unified .bookActions .read{font-size:10px}.unified .bookGrid{gap:10px}.unified .bookMeta{font-size:9px}.unified .bookActions{gap:3px}.unified .bookActions .save{width:30px;height:32px;min-height:32px}}@media(max-width:540px){.unified .bookGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.unified .welcome,.unified.browsing .welcome{display:block;min-height:155px}.unified .welcomeCopy{padding:20px;min-height:155px;background:linear-gradient(90deg,#e8ecdc 20%,#e8ecdcde 65%,#e8ecdc55)}.unified .welcome>img{width:50%;max-height:100%;height:100%;position:absolute;right:0;top:0}.unified .welcome h1{font-size:24px}.unified .welcome h1 br{display:block}.unified .welcome p{font-size:11px}.unified .portals{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:20px}.unified .portals>button{padding:12px 9px}.unified .portalNumber{float:none;display:block;font-size:7px;margin:0 0 7px}.unified .portals strong{font-size:13px;word-break:keep-all;line-height:1.5}.unified .portals p{display:none}.unified .collectionHeader h2{font-size:23px}.unified .bookActions .read{font-size:10px}}
.unified .welcome{position:relative}.unified .welcomeCopy{z-index:1}
.unified.visualShelves .libraryLayout{display:flex;flex-direction:column;gap:18px}.unified.visualShelves .sidePanel{order:2}.unified.visualShelves #filters{display:none}.unified.visualShelves .collection{width:100%}.unified.visualShelves .searchDrawer{max-width:400px}.unified.visualShelves #books{display:block}.unified:not(.visualShelves) #books.visualShelfRoot{display:grid}.shelfActions{display:flex;gap:7px;flex-wrap:wrap}.shelfActions button{font-size:12px;border:1px solid var(--line);background:var(--paper);padding:9px 13px}.visualShelf{margin-bottom:16px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--paper)}.shelfToggle{width:100%;display:flex;align-items:center;text-align:left;gap:20px;min-height:105px;border-radius:0;padding:18px 25px;background:var(--shelf-tone)}.shelfTitle{flex:1}.shelfTitle small{display:block;font-size:9px;color:var(--muted);letter-spacing:1.8px}.shelfTitle strong{display:block;font-size:23px;letter-spacing:-.5px;margin:5px 0}.shelfTitle>span{display:block;font-size:11px;color:var(--muted)}.shelfArrow{font-size:13px;white-space:nowrap;border:1px solid #74857544;border-radius:30px;padding:8px 14px}.shelfPeek{display:flex;align-items:center;padding-right:12px}.shelfPeek img{width:65px;height:73px;object-fit:cover;border:3px solid var(--paper);border-radius:5px;margin-left:-12px;box-shadow:2px 3px 8px #203d3419;transform:rotate(5deg)}.shelfPeek img:nth-child(2){transform:rotate(-7deg)}.shelfContent{padding:22px}.shelfContent[hidden]{display:none}.shelfBooks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.unified .shelfBooks .cover{height:220px}.shelfEnd{font-size:12px;color:var(--muted);margin:18px 0 0;text-align:center}.shelfEmpty{font-size:14px;color:var(--muted)}.moreShelf{display:block;width:100%;margin-top:20px;background:var(--soft);border:1px solid var(--line);min-height:48px}.unified.visualShelves .collectionHeader{align-items:center;gap:20px}.unified.visualShelves .collectionHeader h2{font-size:27px}@media(max-width:1100px){.shelfBooks{grid-template-columns:repeat(3,minmax(0,1fr))}.unified .shelfBooks .cover{height:195px}}@media(max-width:760px){.shelfToggle{padding:15px 18px;gap:10px;min-height:96px}.shelfTitle strong{font-size:20px}.shelfPeek img{width:45px;height:55px}.shelfArrow{font-size:11px;padding:7px 10px}.shelfContent{padding:16px}.shelfBooks{gap:12px}.unified .shelfBooks .cover{height:170px}.unified.visualShelves .collectionHeader{align-items:flex-start;flex-direction:column;gap:12px}.unified.visualShelves .collectionHeader h2{font-size:23px}.shelfActions button{font-size:11px}.shelfEnd{font-size:11px}}@media(max-width:540px){.shelfBooks{grid-template-columns:repeat(2,minmax(0,1fr))}.shelfToggle{padding:15px 14px}.shelfTitle strong{font-size:18px}.shelfTitle small{font-size:8px}.shelfTitle>span{font-size:10px}.shelfPeek{display:none}.shelfArrow{font-size:10px}.shelfContent{padding:12px}.unified .shelfBooks .cover{height:160px}.shelfEnd{text-align:left}.shelfActions{gap:5px}}

.unified .siteHead .brand{display:flex;align-items:center;flex-shrink:0}.unified .siteHead .brand img{display:block;width:214px;height:auto;object-fit:contain}@media(max-width:760px){.unified .siteHead .brand img{width:174px}}@media(max-width:420px){.unified .siteHead .brand img{width:150px}}
/* Illustrated entrances: transparent artwork shares the page background. */
.unified .channels{display:none}
.unified .welcome,.unified.browsing .welcome{display:block;background:transparent;min-height:0;margin:10px 0 0;border-radius:0}
.unified .welcomeCopy{padding:8px 0;text-align:center;min-height:0;background:none}
.unified .welcome h1{font-size:26px;margin:0;line-height:1.4}
.unified .welcome .eyebrow,.unified .welcome p,.unified .welcome>img{display:none}
.unified .portals,.unified.browsing .portals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0 0 25px}
.unified .portals>button{position:relative;padding:0 12px 16px;text-align:center;border:0;border-radius:0;background:transparent;box-shadow:none;transition:transform .2s}
.unified .portals>button.active{box-shadow:none;background:radial-gradient(ellipse at 50% 48%,#dfebd67a,transparent 68%)}
.unified .portals>button:hover{transform:translateY(-5px)}
.unified .portals>button:focus-visible{outline:3px dashed #32644f;outline-offset:3px;border-radius:24px}
.unified .portalArt{display:block;width:100%;height:225px;object-fit:contain;margin:0 auto -6px;filter:drop-shadow(0 10px 8px #5b563414)}
.unified .portalNumber{display:none}
.unified .portals strong{display:inline-block;font-size:23px;line-height:1.45;padding:2px 13px;color:#244e43}
.unified .portals strong b{float:none;margin-left:8px}
.unified .portals>button.active strong{background:#e4edda;border-radius:60% 45% 55% 40%/45% 55% 40% 60%}
.unified .portals p{display:block;font-size:13px;margin:3px 0}
.unified .portals small{display:block;font-size:11px;margin-top:4px;color:var(--muted)}
@media(max-width:900px){.unified .portalArt{height:180px}.unified .portals{gap:8px}.unified .portals strong{font-size:19px}.unified .portals small{font-size:10px}}
@media(max-width:540px){.unified .welcomeCopy{padding:12px 0 4px}.unified .welcome h1{font-size:19px}.unified .portals,.unified.browsing .portals{gap:0;margin-bottom:18px}.unified .portals>button{padding:0 2px 10px}.unified .portalArt{height:110px;margin-bottom:0}.unified .portals strong{font-size:14px;padding:3px 5px;word-break:keep-all}.unified .portals strong b,.unified .portals p{display:none}.unified .portals small{font-size:9px;line-height:1.5;margin:5px 3px 0}.unified .portals>button[data-mode=ebook] small{font-size:0}.unified .portals>button[data-mode=ebook] small:after{content:'초급 · 보리의 숲';font-size:9px}}
@media(prefers-reduced-motion:reduce){.unified .portals>button{transition:none}.unified .portals>button:hover{transform:none}}
/* Illustrated category doors */
.unified .visualShelf{background:transparent;border:0;border-radius:0;overflow:visible;margin-bottom:12px}
.unified .shelfToggle{position:relative;background:transparent;border-bottom:1px solid #d7ddce;min-height:156px;padding:6px 22px 6px 0;gap:25px;border-radius:22px;text-align:left}
.unified .shelfToggle:hover{background:#edf0e580}
.unified .shelfToggle[aria-expanded=true]{background:linear-gradient(90deg,transparent,#e8efdf90,transparent)}
.unified .shelfArt{width:220px;height:150px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 5px 5px #35472612);transition:transform .2s}
.unified .shelfToggle:hover .shelfArt{transform:translateY(-3px) rotate(-1deg)}
.unified .shelfTitle small{display:none}
.unified .shelfTitle strong{font-size:25px;margin:0 0 8px}
.unified .shelfTitle>span{font-size:12px}
.unified .shelfPeek{display:none}
.unified .shelfContent{background:var(--paper);border:1px solid var(--line);border-radius:18px;margin:8px 0 20px}
.unified .shelfToggle:focus-visible{outline:3px dashed #32644f;outline-offset:3px}
@media(max-width:760px){.unified .shelfArt{width:170px;height:125px}.unified .shelfToggle{min-height:133px;gap:15px;padding-right:12px}.unified .shelfTitle strong{font-size:21px}.unified .shelfTitle>span{font-size:11px}}
@media(max-width:540px){.unified .shelfArt{width:125px;height:115px}.unified .shelfToggle{gap:8px;min-height:123px;padding-right:6px}.unified .shelfTitle strong{font-size:17px;word-break:keep-all;margin-bottom:5px}.unified .shelfTitle>span{font-size:10px;line-height:1.5}.unified .shelfArrow{padding:7px;font-size:10px}.unified .shelfContent{padding:12px}}
@media(prefers-reduced-motion:reduce){.unified .shelfArt{transition:none}.unified .shelfToggle:hover .shelfArt{transform:none}}

.seriesButton{font-size:12px;padding:7px 10px;min-height:36px;margin-top:8px;border:1px solid var(--line);background:var(--soft)}.volumeChoice{text-align:left;display:flex;flex-direction:column;gap:8px}.volumeChoice img{width:100%;height:140px;object-fit:contain}.volumeChoice small{font-size:11px}.forestChooser{max-height:60vh;overflow:auto}

/* Compact public library header, 2026-10-22 */
.unified .siteHead{padding:2px 24px;min-height:64px;gap:12px}
.brandCluster{display:flex;align-items:center;gap:14px;min-width:0}
.unified .siteHead .brand img{width:174px;height:auto}
.siteIdentity{font-size:22px;font-weight:800;line-height:1.25;white-space:nowrap;letter-spacing:-.6px}
.unified .welcome,.unified.browsing .welcome{margin:0;min-height:0}
.unified .welcomeCopy{padding:2px 0}
.unified .welcome h1{font-size:24px}
.unified .portals,.unified.browsing .portals{margin:0 0 8px}
.unified .portals>button{padding:0 10px 3px}
.unified .portals p{margin:2px 0 0}
.unified .collectionHeader{margin-bottom:10px}
@media(max-width:760px){.unified .siteHead{padding:2px 12px;min-height:54px;gap:6px}.brandCluster{gap:6px}.unified .siteHead .brand img{width:120px}.siteIdentity{font-size:16px;white-space:normal;max-width:130px;word-break:keep-all}.unified .welcome h1{font-size:21px}.unified .portals>button{padding:0 2px 2px}}
@media(max-width:420px){.siteIdentity{font-size:14px;max-width:84px}.unified .siteHead .brand img{width:108px}.unified .global{gap:0}.unified .global #forestTop{padding:8px}.unified .welcome h1{font-size:19px}}

/* Full-window personal shelf: browsing remains available before saving a book. */
dialog.myShelf{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:var(--bg);overflow:hidden}
.myShelfHead{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 24px;background:var(--paper);border-bottom:1px solid var(--line)}
.myShelfHead h2{margin:0 0 5px;font-size:26px}.myShelfHead p{margin:0;font-size:14px;color:var(--muted)}.shelfClose{flex-shrink:0;background:var(--soft)}
.myShelfBody{height:calc(100% - 106px);overflow:auto;padding:16px 24px 40px}.myShelfTools,.myShelfTabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.myShelfTools{justify-content:space-between}.myShelfTabs button:not(.dark){background:var(--paper);border:1px solid var(--line)}.myShelfTools select{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);max-width:100%}.myShelfHint{font-size:13px;color:var(--muted);margin:12px 0}.myShelfGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.myShelfGrid .cover{height:180px}.myShelfGrid .bookActions{flex-wrap:wrap}.myShelfGrid .bookActions .save{width:100%;height:auto;min-height:44px;font-size:14px;background:var(--soft)}
.myShelfGrid .bookActions .save[aria-pressed=true]{background:#dcebd8;color:#244e43}.myShelfGrid .bookActions .read{font-size:12px}.myShelfGrid .book h3{min-height:44px}
@media(max-width:1050px){.myShelfGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.myShelfHead{padding:12px;gap:8px;align-items:flex-start}.myShelfHead h2{font-size:20px}.myShelfHead p{font-size:12px}.myShelfBody{height:calc(100% - 120px);padding:12px 12px 28px}.myShelfGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.myShelfGrid .cover{height:150px}.myShelfTools{align-items:stretch}.myShelfTabs button{font-size:12px;padding:8px}.myShelfHint{font-size:12px}.myShelfGrid .bookActions .save{font-size:12px}.myShelfHead .shelfClose{font-size:12px;padding:7px}}

dialog.myShelf[open]{display:flex;flex-direction:column}.myShelfHead{flex-shrink:0}.myShelfBody{flex:1;min-height:0;height:auto}

/* Logo motion runs in the page, independently of SVG image playback. */
.unified .brand .logoMotion{display:block;position:relative;margin:0;padding:0;border:0;line-height:0}.logoSky{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.logoSpark{animation:logoArcV2 14s linear infinite,logoFadeV2 14s linear infinite;transform:translate(204px,36px)}.logoSpark path{fill:#fff;animation:logoColorV2 14s ease-in-out infinite}@keyframes logoArcV2{0%{transform:translate(204px,36px)}5.625%{transform:translate(193px,29.4375px)}11.25%{transform:translate(182px,23.75px)}16.875%{transform:translate(171px,18.9375px)}22.5%{transform:translate(160px,15px)}28.125%{transform:translate(149px,11.9375px)}33.75%{transform:translate(138px,9.75px)}39.375%{transform:translate(127px,8.4375px)}45%{transform:translate(116px,8px)}50.625%{transform:translate(105px,8.4375px)}56.25%{transform:translate(94px,9.75px)}61.875%{transform:translate(83px,11.9375px)}67.5%{transform:translate(72px,15px)}73.125%{transform:translate(61px,18.9375px)}78.75%{transform:translate(50px,23.75px)}84.375%{transform:translate(39px,29.4375px)}90%{transform:translate(28px,36px)}100%{transform:translate(28px,36px)}}@keyframes logoFadeV2{0%{opacity:0}5%,84%{opacity:1}90%,100%{opacity:0}}@keyframes logoColorV2{0%,50%,100%{fill:#fff}25%,75%{fill:#151515}}
