/*! © 2026 LogosVox. All rights reserved. Copying, modifying or redistributing this code is not permitted. https://games.logosvox.com/terms */
/* A collection workbench: original covers carry the colour, controls recede. */
:root,[data-library-theme=light]{--lib-ink:#262735;--lib-muted:#656675;--lib-paper:#f8f7f4;--lib-panel:#ffffff;--lib-line:#dad9e0;--lib-accent:#485ab5;--lib-hover:#eeedf5;--lib-rail:#f0efec;--lib-shadow:#24243926;color-scheme:light}
[data-library-theme=dark]{--lib-ink:#eeeef4;--lib-muted:#b5b5c3;--lib-paper:#191a21;--lib-panel:#23242e;--lib-line:#3f414f;--lib-accent:#5366bf;--lib-hover:#303241;--lib-rail:#16171e;--lib-shadow:#0006;color-scheme:dark}
body{background:var(--lib-paper)}::selection{background:#dce2ff;color:#242a50}a{color:var(--lib-ink);text-underline-offset:3px}button,.file-button,input,select,textarea{border-radius:8px}button:hover,.file-button:hover{background:var(--lib-hover)}.primary:hover{background:#374790}button{transition:background .15s,border-color .15s}input::placeholder{color:var(--lib-muted)}
#lobby{inset:var(--lv-shell-height,56px) 0 0;max-width:none;width:100%;margin:0;padding:0;box-shadow:none;border-radius:0;display:grid;grid-template-columns:236px minmax(0,1fr);overflow:hidden}
#library-rail{padding:30px 18px;background:var(--lib-rail);border-right:1px solid var(--lib-line);display:flex;flex-direction:column;gap:28px;overflow:auto}.library-brand{font:24px/1.25 var(--lib-serif);letter-spacing:-.02em;padding:0 10px}#library-rail nav{display:grid;gap:5px}#library-rail nav button{text-align:left;background:transparent;border-color:transparent;padding:11px 14px}#library-rail nav button[aria-current=true]{background:var(--lib-panel);font-weight:600}#library-rail nav button:hover{background:var(--lib-hover)}.rail-appearance{margin-top:auto}.rail-appearance select{width:100%}
#collection-main{padding:36px clamp(24px,4vw,68px) 24px;overflow:auto;scrollbar-gutter:stable}.library-heading{align-items:center;gap:20px}h1{font:38px/1.15 var(--lib-serif);letter-spacing:-.025em}h2{font:24px/1.25 var(--lib-serif)}#owner-label{font-size:12px;margin:8px 0 0}#intro{color:var(--lib-muted);margin:14px 0 32px}#cabin-choice{position:static;width:auto;background:transparent;border:0;border-top:1px solid var(--lib-line);border-radius:0;padding-top:24px}#cabin-choice>summary{cursor:pointer;min-height:44px;padding:8px 10px;font-size:14px}#cabin-choice[open]{padding:24px 0 0}#environments{grid-template-columns:1fr;gap:8px;margin-top:8px}.environment{background:var(--lib-panel);border:1px solid var(--lib-line);border-radius:8px}.environment[aria-pressed=true]{border:2px solid var(--lib-accent)}.environment span{padding:12px}.environment small{margin-top:3px;font-size:12px}#cabin-choice #enter-world{margin:12px 0 0;font-size:13px}.search{margin:14px 0}.search input{width:100%;background:var(--lib-panel);padding:12px 16px;min-height:48px}#shelf-title{font:16px/1.4 system-ui,sans-serif;font-weight:600}.shelf-heading{border-bottom:1px solid var(--lib-line);padding-bottom:14px}
#catalog-tools{margin:16px 0 30px;gap:8px;align-items:end}#catalog-tools label{font-size:11px}#catalog-tools button[aria-pressed=true],#editor-modes button[aria-pressed=true]{background:var(--lib-ink);color:var(--lib-paper);border-color:var(--lib-ink)}#catalog-tools select{max-width:156px}#catalog-tools .file-button{margin-left:auto;font-size:13px}#catalog-tools .file-button+.file-button{margin-left:0}
#book-list{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:36px 28px;align-items:start;margin-top:0}.book-open{padding:0;border:0;width:100%;background:transparent;text-align:left}.book-open:hover{background:transparent}.book-card{display:block;min-width:0}.book-card canvas{width:100%;max-height:260px;aspect-ratio:148/210;filter:drop-shadow(3px 6px 4px var(--lib-shadow));transition:transform .2s}.book-card strong{font-weight:600;font-size:14px;margin-top:14px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.book-card small{font-size:12px;line-height:1.6}.book-caption{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-top:4px}.book-caption button{font-size:12px;padding:3px 6px;background:transparent;border-color:transparent;min-height:44px}.book-caption button:hover{background:var(--lib-hover)}.book-caption small{font-variant-numeric:tabular-nums;font-size:10px}
#book-list.table-view{display:block;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left;font-variant-numeric:tabular-nums}th{padding:12px;font-weight:500;color:var(--lib-muted);border-bottom:1px solid var(--lib-line);white-space:nowrap;background:var(--lib-paper);position:sticky;top:0}td{padding:10px 12px;border-bottom:1px solid var(--lib-line)}td>canvas{width:36px!important;height:51px!important}td input{border-color:transparent;background:transparent;width:100%;min-width:150px}td input:hover,td input:focus{border-color:var(--lib-line)}td label:not(.file-button)>span{position:absolute;clip-path:inset(50%);width:1px;height:1px}td .row{flex-wrap:nowrap}#catalog-pages{margin:30px 0;justify-content:center;font-size:12px;color:var(--lib-muted)}#library-storage>summary{cursor:pointer;padding:8px 0;min-height:44px;font-size:13px;color:var(--lib-muted)}#storage-note{max-width:80ch;margin:12px 0}#legacy-link{margin-left:auto}
#reader-stage.flat-reader{height:64dvh;overflow:auto;min-height:300px;background:var(--lib-paper);padding:32px}#reader-stage.flat-reader>canvas{width:auto;max-width:100%;height:auto;max-height:none;margin:auto}.reading-page{max-width:65ch;margin:auto;font:var(--reading-size,20px)/1.85 var(--lib-serif);white-space:pre-wrap}.reading-page img{max-width:100%;display:block;height:auto;margin:auto}#reader-tools input[type=number]{width:74px}#reader-tools input[type=range]{width:100px}
#live-book-editor{height:640px;margin:16px 0;touch-action:none;position:relative}#live-book-editor canvas{width:100%;height:100%;display:block;touch-action:none}.live-zoom{position:absolute;right:8px;bottom:8px;display:flex;gap:4px}.word-editor textarea{min-height:440px!important;font:20px/1.7 var(--lib-serif)!important;padding:28px!important;max-width:70ch;margin:16px auto;display:block}.word-editor{background:var(--lib-panel);border:1px solid var(--lib-line)}#editor-modes{margin-bottom:12px}#editor-modes button{font-size:13px}#picture-controls{margin:12px 0}#picture-controls>summary{cursor:pointer;min-height:44px;padding:10px 0}#picture-controls[open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#picture-controls summary,#picture-controls select{grid-column:1/-1}
.empty-library{grid-column:1/-1;padding:60px 0;max-width:44ch;font:22px/1.6 var(--lib-serif);color:var(--lib-muted)}body.in-world #lobby{display:none}body:not(.in-world) #scene,body:not(.in-world) .lv-runtime-toolbar{visibility:hidden}#world-bar{background:var(--lib-panel);border-radius:12px;box-shadow:0 8px 30px #0004}#world-bar button{border-color:transparent;background:transparent}#world-bar button:hover{background:var(--lib-hover)}#world-hint{background:#242735ee;border-radius:8px}.object-panel-body{display:grid;gap:18px;padding:24px}#gramophone-panel{width:min(510px,94vw)}#gramophone-panel audio,#music-player iframe{width:100%}#music-player:empty{display:none}#gramophone-panel output{font-size:13px;color:var(--lib-muted)}#laptop-panel{width:min(1320px,96vw);height:85dvh;overflow:hidden}#laptop-frame{display:block;border:0;width:100%;height:calc(100% - 74px);background:var(--lib-paper)}#sleep-overlay{position:fixed;inset:0;background:#080910;z-index:200;display:grid;place-items:center;color:#eee;font:24px var(--lib-serif);opacity:0;pointer-events:none;transition:opacity .8s}#sleep-overlay.sleeping{opacity:1;pointer-events:auto}
@media(max-width:1050px){#lobby{grid-template-columns:190px minmax(0,1fr)}#library-rail{padding:25px 12px}.library-brand{font-size:21px}#collection-main{padding:28px 24px}#catalog-tools{flex-wrap:wrap}#catalog-tools .file-button{margin-left:0}}
@media(max-width:700px){#lobby{display:block;overflow:auto}#library-rail{overflow:visible;padding:18px 18px 0;border-right:0;border-bottom:1px solid var(--lib-line);display:grid;grid-template-columns:1fr auto;gap:12px}.library-brand{padding:0;font-size:23px}#library-rail nav{grid-column:1/-1;display:flex;overflow:auto;order:3;gap:0}#library-rail nav button{white-space:nowrap;padding:8px 12px;font-size:13px}#library-rail #cabin-choice{grid-column:1/-1;padding:0;margin:0;order:4;border:0}#cabin-choice[open]{padding:0 0 14px}#environments{grid-template-columns:1fr 1fr}.rail-appearance{grid-column:2;grid-row:1}.rail-appearance select{max-width:128px;font-size:12px}#collection-main{padding:26px 20px;overflow:visible}h1{font-size:32px}.library-heading{align-items:start;gap:12px}.collection-actions button{font-size:12px;padding:7px 10px}#intro{font-size:13px;margin:12px 0 24px}#catalog-tools{gap:8px;margin-bottom:25px}#catalog-tools label{flex:1;min-width:100px}#catalog-tools label select{max-width:none}#catalog-tools .file-button{font-size:12px}#book-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.book-caption{align-items:center}.book-caption small{font-size:9px}#live-book-editor{height:440px}.word-editor textarea{padding:16px!important}.reading-page{font-size:var(--reading-size,18px)}#reader-stage.flat-reader{padding:18px}td{padding:6px 8px}#legacy-link{margin-left:0}#world-bar{grid-template-columns:repeat(3,1fr)}.object-panel-body{padding:18px}}
@media(prefers-reduced-motion:reduce){*,#sleep-overlay{transition:none!important}}*{scrollbar-color:var(--lib-line) var(--lib-paper)}

.collection-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.collection-actions .file-button{font-size:13px}#catalog-filters{margin-left:auto;position:relative}#catalog-filters summary{cursor:pointer;min-height:44px;padding:10px 14px;font-size:13px}#catalog-filters[open] .filter-body{position:absolute;right:0;top:48px;z-index:5;background:var(--lib-panel);box-shadow:0 8px 30px var(--lib-shadow);padding:20px;border-radius:12px;display:flex;align-items:end;gap:12px;min-width:460px}.filter-body{display:none}#catalog-tools button{transition:none}#catalog-tools{margin-bottom:24px}#library-storage>.file-button{margin-top:12px}#notice{bottom:105px}.in-world #notice{bottom:100px}
@media(max-width:700px){.library-heading{flex-wrap:wrap}.library-heading>div:first-child{width:100%}.collection-actions{width:100%}.collection-actions>*{flex:1;justify-content:center}#intro{margin:14px 0 20px}#catalog-filters[open] .filter-body{min-width:0;width:calc(100vw - 40px);flex-wrap:wrap;right:0}#catalog-filters[open] label{min-width:130px}#library-rail{gap:8px;padding-top:14px}#library-rail nav{order:4}#library-rail #cabin-choice{grid-column:1;grid-row:2;order:3}#collection-main{padding-top:22px}#shelf-title{display:none}.shelf-heading{display:none}#owner-label{font-size:11px}#catalog-tools{margin-top:8px}#notice{bottom:20px}.in-world #notice{bottom:120px}}

/* Text dismissal controls retain normal type metrics in every object panel. */
dialog>header button{font-size:14px;min-width:64px;width:auto;padding:8px 12px}button>svg{display:block;margin:auto;flex:none}
#world-shelf-pages{position:fixed;left:18px;right:auto;top:calc(var(--lv-shell-height,56px) + 16px);z-index:15;background:var(--lib-panel);padding:6px;display:flex;align-items:center;gap:8px;border-radius:8px;font-size:12px}body:not(.in-world) #world-shelf-pages,#world-shelf-pages[hidden]{display:none}
@media(max-width:700px){#library-rail{gap:4px;padding:8px 16px 0}.library-brand{font-size:20px}#library-rail nav button{min-height:40px;padding:6px 10px}#library-rail #cabin-choice{grid-column:1/-1;grid-row:2}#cabin-choice>summary{min-height:36px;padding:4px 0}#collection-main{padding:14px 18px}.library-heading>div:first-child{display:none}#intro{display:none}.collection-actions{gap:8px}.search{margin:12px 0 8px}.search input{min-height:44px;padding:10px 12px}#catalog-tools{margin:8px 0 18px}#world-shelf-pages{left:12px;right:12px;top:calc(var(--lv-shell-height,56px) + 112px);justify-content:space-between}#world-shelf-pages button{font-size:12px}}

input[type=range],input[type=checkbox]{accent-color:var(--lib-accent)}
