.eac-library-room{position:relative!important;width:100%;height:100vh;min-height:620px;overflow:hidden;isolation:isolate;background:#172127;color:#f9efd8;font-family:Inter,Arial,sans-serif}.eac-library-room *{box-sizing:border-box}.el-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.el-heading{position:absolute;top:6%;left:calc(var(--portal-menu-width) + 7%);z-index:1;text-shadow:0 2px 8px #101820}.el-heading:before{content:"";position:absolute;inset:-25px -60px;z-index:-1;background:radial-gradient(ellipse,#111c2466,transparent 72%)}.el-heading h1{font:600 clamp(32px,3.6vw,64px)/1.05 'Cormorant Garamond',Georgia,serif;color:#fff4dc!important;margin:0}.el-heading p{font:500 clamp(18px,1.85vw,30px)/1.2 'Cormorant Garamond',Georgia,serif;margin:10px 0;color:#fff4dc!important}.el-stage{position:absolute;top:24%;bottom:3.5%;left:calc(var(--portal-menu-width) + 35px);right:clamp(100px,13vw,250px);display:flex;align-items:flex-end;justify-content:center;perspective:1600px;pointer-events:none}.el-shelf{position:relative;width:min(1120px,100%,112vh);aspect-ratio:1583/993;container-type:inline-size;transform:translateY(2.2155%);isolation:isolate;pointer-events:auto;transition:opacity .3s,visibility .3s}.el-art{position:relative;display:block;width:100%;height:auto;z-index:1}.el-shelf:after{content:"";position:absolute;top:97.7845%;left:1%;width:98%;height:1.1%;transform:translateY(-30%);background:radial-gradient(ellipse,#160c04c7,transparent 74%);filter:blur(2px);z-index:0}.el-reflection{position:absolute;left:0;top:95.569%;width:100%;height:auto;transform:scaleY(-1);opacity:.16;filter:blur(1px);mask-image:linear-gradient(to top,#000,transparent 15%);z-index:0;pointer-events:none}.el-niches{position:absolute;inset:0;z-index:2}.el-niches button{position:absolute;width:21%;height:6.6%;border:0!important;background:transparent!important;color:#f9e6b0!important;font:600 clamp(11px,1.83cqw,22px)/1.05 'Cormorant Garamond',Georgia,serif!important;display:grid;place-items:center;padding:0!important;cursor:pointer;text-align:center}.el-niches button>span:first-child{width:78%;text-wrap:balance}.el-niches button>span:last-child{position:absolute;right:5%;top:50%;transform:translateY(-50%);font-size:.9em}.el-niche-0,.el-niche-3{left:12.9%}.el-niche-1,.el-niche-4{left:39.8%}.el-niche-2,.el-niche-5{left:66.4%}.el-niche-0,.el-niche-1,.el-niche-2{top:41%}.el-niche-3,.el-niche-4,.el-niche-5{top:73.3%}.el-niches button:hover{filter:brightness(1.2);text-shadow:0 0 12px #f7bf60}.el-crown{position:absolute;z-index:3;left:32%;top:10%;width:35.5%;height:5.6%;display:flex;align-items:center;gap:7px;color:#f9dfa0}.el-crown>span{font-size:2cqw}.el-crown input{min-width:0;flex:1;width:100%;border:0!important;outline-offset:0;background:transparent!important;color:#fff1cd!important;box-shadow:none!important;font:500 clamp(11px,1.5cqw,19px)/1.1 'Cormorant Garamond',Georgia,serif!important;padding:0 5px!important}.el-crown input::placeholder{color:#edddba;opacity:1}.el-crown button{background:transparent!important;border:0;color:#f9dfa0!important;font-size:1.7cqw;cursor:pointer;padding:2px 5px}.el-sr{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.eac-library-room :focus-visible{outline:2px solid #efbe59!important;outline-offset:3px}.el-panel{position:absolute;inset:auto 0 0;margin:auto;width:min(1380px,100%,126vh);aspect-ratio:1.5;transform:translateY(4.19921875%);visibility:hidden;opacity:0;pointer-events:none;isolation:isolate;color:#1b3040;container-type:inline-size}.is-catalog-open .el-shelf{opacity:0;visibility:hidden;pointer-events:none}.is-catalog-open .el-panel{visibility:visible;opacity:1;pointer-events:auto}.el-console,.el-scroll,.el-console-reflection{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.el-console{clip-path:inset(63.4% 0 0);transform:scaleY(.72);transform-origin:50% 95.80078125%;z-index:1}.el-scroll{clip-path:inset(0 0 42.3%);transform:scaleY(1.1430943);transform-origin:50% 0;z-index:1}.el-console-reflection{top:78.77734375%;transform:scaleY(-.72);opacity:.13;filter:blur(1px);mask-image:linear-gradient(to top,#000,transparent 14%);z-index:0}.el-paper{position:absolute;left:13.5%;right:13.5%;top:13.3%;bottom:36%;z-index:2;display:flex;flex-direction:column;font-size:clamp(11px,1.13cqw,15px)}.el-panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:1.3%;flex-shrink:0}.el-panel-header small{font-size:.72em;font-weight:600;letter-spacing:.15em;color:#91672b}.el-panel-header h2{font:600 2.5em/1 'Cormorant Garamond',Georgia,serif;margin:4px 0}.el-panel button,.el-actions a{font:500 1em/1.2 Inter,Arial,sans-serif;color:#fff0c8;background:linear-gradient(#273b4a,#0b1c2b);border:1px solid #b48a3e;border-radius:7px;padding:7px 10px;cursor:pointer;text-decoration:none}.el-panel button:disabled{opacity:.42;cursor:default}.el-panel button:hover:not(:disabled),.el-actions a:hover{filter:brightness(1.18)}.el-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-bottom:10px;border-bottom:1px solid #b59a6466;flex-shrink:0}.el-tools label{margin:0;min-width:0}.el-find{flex:1;display:flex;min-width:130px!important}.el-tools input,.el-tools select,.el-track-select select{font:inherit!important;background:#fff9e990;color:#24333c;border:1px solid #b8a073;border-radius:6px;padding:6px;width:100%;height:auto}.el-tools select{font-size:.87em!important}.el-tools input{border-radius:6px 0 0 6px;min-width:0}.el-find button{border-radius:0 6px 6px 0;padding:3px 8px}.el-catalog-body{flex:1;min-height:0;overflow:auto;padding:10px 6px 6px 0;scrollbar-width:thin;scrollbar-color:#b39a60 #d9c39333}.el-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.el-card{min-width:0;display:flex;gap:12px;border:1px solid #b6975a66;border-radius:8px;padding:12px;background:linear-gradient(120deg,#fff9e9aa,#ecd8ad55);box-shadow:0 3px 8px #6b431310}.el-cover{flex:0 0 48px;min-height:78px;background:linear-gradient(90deg,#071725,#243b4b 12%,#0d2231 15%,#162c3b);border:1px solid #ac8541;border-left:4px solid #8a662d;box-shadow:2px 3px 4px #392e2540;color:#ead5a1;display:flex;flex-direction:column;align-items:center;justify-content:space-around;font-family:Georgia,serif;padding:7px 3px}.el-cover span{font-size:.8em}.el-cover b{font-size:.66em;letter-spacing:.1em}.el-cover i{font-size:1.6em;font-style:normal}.el-card-copy{flex:1;min-width:0}.el-card small{font-size:.65em;color:#89642e;letter-spacing:.06em}.el-card h3{font:600 1.45em/1.06 'Cormorant Garamond',Georgia,serif;margin:5px 0}.el-status{font-size:.72em;line-height:1.35;color:#6d654e;margin:7px 0}.is-locked .el-cover{opacity:.65}.el-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.el-actions a,.el-actions button{font-size:.73em;padding:6px 8px;white-space:nowrap}.el-actions a:last-child:not(:first-child){background:transparent;color:#745324}.el-footer{border-top:1px solid #b59a6466;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.73em;padding-top:7px;flex-shrink:0}.el-footer p{margin:0}.el-footer nav{display:flex;align-items:center;gap:10px;white-space:nowrap}.el-footer button{padding:4px 9px}.el-state{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.el-state h3,.el-audio-head h3{font:600 1.8em/1.1 'Cormorant Garamond',Georgia,serif;margin:8px 0}.el-state p{max-width:440px;line-height:1.5;font-size:.9em}.el-empty-mark{font-size:3em;color:#a78345}.el-audio-head p,.el-note{font-size:.85em;color:#726345}.el-panel audio{width:100%;margin-top:18px}.el-track-select{display:flex;align-items:center;gap:12px;margin-top:12px}.el-track-select select{flex:1;min-width:0}.el-loader{border:2px solid #c2a26644;border-top-color:#9b7536;border-radius:50%;width:28px;height:28px;margin-bottom:15px;animation:el-spin .8s linear infinite}@keyframes el-spin{to{transform:rotate(360deg)}}
@media(max-width:1500px){.is-book-open .el-tools{gap:4px}.is-book-open .el-card{padding:8px;gap:7px}.is-book-open .el-cover{display:none}.is-book-open .el-footer p span{display:none}}
@media(max-width:1100px){.el-stage{left:calc(var(--portal-menu-width) + 15px);right:50px}.el-heading{left:calc(var(--portal-menu-width) + 30px)}.el-tools .el-find{flex-basis:100%}.el-cards{grid-template-columns:1fr}.el-footer p span{display:none}.el-panel-header h2{font-size:2em}}
@media(prefers-reduced-motion:reduce){.el-shelf,.el-panel{transition:none!important}.el-loader{animation:none}}
/* The legacy course-management shortcut occupies the Concierge's hit area. */
body:has(.eac-library-room) #student-course-entry106{display:none!important}
@media(min-width:1366px){.el-stage{right:clamp(235px,16.5vw,330px)}}
.el-roller{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;clip-path:inset(54.5% 0 36.5%);transform:scaleY(1.1430943);transform-origin:50% 0;z-index:2}
.el-paper{left:15%;right:15%;z-index:3}
.el-crown{border-radius:5px;transition:box-shadow .2s,background-color .2s;padding:1px 5px}
.el-crown:focus-within{background:#0c1b35c7;box-shadow:inset 0 -2px #e8bf6a,0 0 14px #edc77d35}
.eac-library-room .el-crown input:focus,.eac-library-room .el-crown input:focus-visible{outline:none!important;box-shadow:none!important}
.el-crown input::-webkit-search-cancel-button{appearance:none}
.el-crown button:focus-visible{outline-offset:-2px;border-radius:4px}
.el-dictionary-search{padding-bottom:10px}.el-dictionary-search input{font-size:1.05em!important}.el-dictionary-search button{white-space:nowrap;padding:6px 14px}
.el-dictionary{padding:12px 12px 12px 0;line-height:1.55}.el-word-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.el-word-head h3{font:600 2.6em/1.1 'Cormorant Garamond',Georgia,serif;margin:0 0 8px}.el-word-head button{font-size:.8em}.el-definition h4{color:#8b632d;font-size:.9em;letter-spacing:.05em;border-bottom:1px solid #b59a6455;padding-bottom:5px;margin:12px 0}.el-definition ol{padding-left:25px}.el-definition li{padding:0 0 8px 5px}.el-definition p{margin:0}.el-definition blockquote{font-size:.9em;color:#596267;border-left:2px solid #bc9957;padding:4px 12px;margin:5px 0}.el-source{font-size:.8em;border-top:1px solid #b59a6455;padding-top:10px}.el-source a{color:#695124;text-decoration:underline}
.el-panel:after{content:"";position:absolute;top:95.8%;left:9%;right:9%;height:1%;background:linear-gradient(90deg,#170d08 0 10%,transparent 13% 86%,#170d08 90%);opacity:.55;filter:blur(2px);z-index:0;pointer-events:none}
@media(max-width:1500px){.el-card{padding:8px;gap:8px}.el-cover{flex-basis:35px;min-height:54px}.el-card h3{font-size:1.35em;margin:3px 0}.el-status{margin:4px 0}.el-actions a,.el-actions button{padding:4px 6px}.el-panel-header{margin-bottom:5px}.el-tools{padding-bottom:7px}.el-catalog-body{padding-top:7px}}

/* Keep the input focus ring inside its own area, clear of the submit button. */
.el-dictionary-search .el-find{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%;align-items:stretch}
.el-dictionary-search .el-find input{width:100%;min-width:0;border-radius:7px;padding:8px 10px;line-height:1.25}
.el-dictionary-search .el-find button{border-radius:7px;display:inline-flex;justify-content:center;align-items:center;padding:8px 14px;white-space:nowrap;margin:0}
.eac-library-room .el-dictionary-search input:focus-visible{outline-offset:-3px!important;outline-width:2px!important}
.eac-library-room .el-dictionary-search button:focus-visible{outline-offset:2px}

/* Fill the parchment according to the number of materials on the current page.
   Only the material grid participates: dictionary, audio player and empty states
   keep their own scrolling. Minimum content sizes remain scrollable when needed. */
.el-catalog-body:has(> .el-cards){display:flex;padding-bottom:10px}
.el-catalog-body > .el-cards{flex:1;min-width:0;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(min-content,1fr);gap:clamp(8px,1cqw,14px)}
.el-cards > .el-card{align-items:center;gap:clamp(10px,1.4cqw,20px);padding:clamp(8px,.9cqw,12px)}
.el-cards .el-cover{flex:0 0 clamp(40px,5cqw,69px);height:clamp(60px,7.5cqw,104px);min-height:0;align-self:center;font-size:clamp(12px,1.3cqw,18px)}
.el-cards .el-card-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.el-cards .el-card h3{font-size:clamp(16px,1.85cqw,26px);line-height:1.08;margin:3px 0;overflow-wrap:anywhere}
.el-cards .el-card small{font-size:.75em}
.el-cards .el-status{font-size:.82em;margin:3px 0 5px}
.el-cards .el-actions a,.el-cards .el-actions button{font-size:.82em;padding:5px 8px;white-space:normal;text-align:center}
.el-cards:has(> .el-card:only-child){grid-template-columns:minmax(0,1fr)}
.el-cards:has(> .el-card:only-child) > .el-card{padding:clamp(14px,2.4cqw,34px);gap:clamp(20px,4cqw,56px)}
.el-cards:has(> .el-card:only-child) .el-cover{display:flex;flex-basis:clamp(70px,9cqw,124px);height:clamp(105px,13cqw,180px);font-size:clamp(16px,2cqw,28px)}
.el-cards:has(> .el-card:only-child) h3{font-size:clamp(25px,3.2cqw,44px);line-height:1.08}
.el-cards:has(> .el-card:only-child) .el-status{font-size:1em;margin:10px 0 16px}
.el-cards:has(> .el-card:only-child) .el-actions a,.el-cards:has(> .el-card:only-child) .el-actions button{font-size:1em;padding:10px 16px}
.el-cards:has(> .el-card:nth-child(2):last-child) > .el-card{justify-content:center}
.el-cards:has(> .el-card:nth-child(3):last-child) > .el-card:first-child{grid-column:1/-1}
@media(max-width:1500px){
 .el-cards > .el-card{padding:8px;gap:8px}
 .el-cards .el-cover{height:clamp(54px,7cqw,90px);flex-basis:clamp(35px,4.5cqw,60px)}
 .el-cards .el-card h3{font-size:clamp(16px,1.7cqw,24px);margin:3px 0}
 .el-cards .el-status{margin:3px 0 5px}
 .el-cards .el-actions a,.el-cards .el-actions button{padding:5px 7px}
 .is-book-open .el-cards > .el-card{padding:8px;gap:8px}
 .is-book-open .el-cards .el-card h3{font-size:16px}
 .is-book-open .el-cards .el-status{margin:3px 0 5px}
 .is-book-open .el-cards .el-actions a,.is-book-open .el-cards .el-actions button{padding:5px 7px}
 /* The open book reduces both width and height. Use a compact horizontal
    title/action composition instead of hiding the second row of materials. */
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) > .el-card{padding:6px}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-card-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;align-items:center;width:100%}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-card-copy > small{grid-column:1;font-size:8px}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) h3{grid-column:1;font-size:14px;margin:0}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-card:not(.is-locked) .el-status{display:none}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .is-locked .el-status{grid-column:1/-1}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-actions{grid-column:2;grid-row:1/3;max-width:76px}
 .is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-actions a,.is-book-open .el-cards:has(> .el-card:nth-child(3)) .el-actions button{font-size:9px;padding:5px}
}
@media(max-width:900px){
 .el-catalog-body > .el-cards{grid-template-columns:1fr}
 .el-cards:has(> .el-card:nth-child(2):last-child) > .el-card{flex-direction:row;text-align:left}
 .el-cards:has(> .el-card:nth-child(2):last-child) .el-card-copy{align-items:flex-start}
 .el-cards:has(> .el-card:nth-child(2):last-child) .el-cover{flex-basis:40px}
}
