/* MORDLOGIK cover identity. Folder artwork and puzzle colours stay scoped to their components. */
html{background:#0e0c0d}
body{background:#0e0c0d;color:#f7f4f3}
body::before{content:"";position:absolute;top:0;right:0;width:min(35vw,360px);height:220px;pointer-events:none;background:radial-gradient(ellipse at 89% 0%,#890b16 0 13px,transparent 14px),radial-gradient(ellipse at 94% 7%,#8d101b 0 6px,transparent 7px),radial-gradient(ellipse at 80% 3%,#b01623 0 4px,transparent 5px),radial-gradient(ellipse at 97% 25%,#6c0b15 0 3px,transparent 4px),radial-gradient(ellipse at 86% 15%,#a31320 0 2px,transparent 3px);opacity:.8}
.masthead{position:relative;border-color:#393033;padding-top:18px;padding-bottom:18px}
.brand{display:block;flex:none;letter-spacing:0}
.brand-logo{display:block;position:relative;width:244px;aspect-ratio:3.4;overflow:hidden;mix-blend-mode:screen}
.brand-logo img{position:absolute;width:112.94%;max-width:none;height:auto;left:-6.53%;top:-24.44%}
.brand small{color:#c8bec1;font-size:12px;margin:5px 0 0 2px;letter-spacing:.02em}
.header-help{position:relative;min-height:64px;gap:12px;padding:11px 18px;border:1px solid #f4545e;border-radius:9px;background:#bd1426;color:#fff8f8;box-shadow:0 4px 0 #650b16;transition:background .18s,transform .18s,box-shadow .18s}
.header-help:hover{background:#d51b30;transform:translateY(-2px);box-shadow:0 6px 0 #650b16}
.header-help:active{transform:translateY(2px);box-shadow:0 2px 0 #650b16}
.header-help>.help-icon{width:32px;height:32px;flex:none;border:2px solid #ffc7cd;font:800 21px/1 SourceSans,sans-serif}
.header-help>.help-copy{display:block;width:auto;height:auto;border:0;border-radius:0;text-align:left;font-size:16px;line-height:1.25}
.help-copy strong{display:block;font-weight:800}.help-copy small{display:block;margin-top:3px;font-size:12px;font-weight:600;color:#ffe0e3}
.header-help:focus-visible,.brand:focus-visible{outline:3px solid #fff4f5;outline-offset:6px}
.file-hub>.hub-heading .eyebrow,.level-heading .eyebrow,.suspects-panel>.section-head .eyebrow{color:#ff6472}
.hub-heading h1,.level-heading h2,.intro h1,.suspects-panel>.section-head h2,.hint-box h3{color:#f7f4f3}
.hub-heading h1>span,.intro h1>span{color:#ed3347}
.hub-heading p,.suspects-panel>.section-head p,.case-meta,.case-story summary,.case-story p{color:#c9bec2}
.file-level{border-color:#393033}
.level-pill{background:#2a1c20;color:#ffd0d5;border:1px solid #593139}
.hub-progress{background:#1d1417;border-color:#60303b;color:#f6e8eb;border-radius:5px;box-shadow:inset 0 3px #bf1b30}
.hub-progress strong{color:#fff7f8}.hub-progress span{color:#e9bdc5}
.back-to-files,.case-meta>span:first-child{color:#ff8290}
.suspects-panel .hint-box{border-color:#473039}.hint-box h3{color:#fff5f6}.hint-box p{color:#cdbec3}
.hint-symbol{background:#3e1822;color:#ff8996}
footer{border-color:#393033;color:#b9aeb2}
dialog::backdrop{background:#090507d9}
@media(min-width:1101px){.view-game .brand-logo{width:185px}.view-game .brand small{font-size:10px}.view-game .header-help{min-height:50px;padding:7px 14px}.view-game .help-copy small{font-size:11px}}
@media(max-width:760px){.masthead,.view-game .masthead{padding:14px 14px;gap:12px}.brand-logo{width:178px}.brand small{font-size:10px;margin-top:4px}.header-help{min-height:56px;padding:9px 12px;gap:9px}.header-help>.help-icon{width:26px;height:26px;font-size:18px}.header-help>.help-copy{font-size:14px}.help-copy small{font-size:10px}.hub-heading h1{color:#faf7f8}}
@media(max-width:420px){.brand-logo{width:150px}.brand small{display:none}.header-help{max-width:157px;padding:9px 10px;gap:7px}.header-help>.help-icon{width:23px;height:23px;font-size:16px}.header-help>.help-copy{font-size:12px}.help-copy small{font-size:10px}.masthead,.view-game .masthead{padding:12px 10px;gap:10px}}
@media(max-width:350px){.brand-logo{width:132px}.header-help{max-width:152px}}
@media(prefers-reduced-motion:reduce){.header-help{transition:none}.header-help:hover,.header-help:active{transform:none}}

.mode-group{grid-template-columns:1.35fr 1fr 1fr}
@media(max-width:760px){.suspects-panel>.section-head,.suspects-panel>#suspects{display:none}.suspects-panel{padding-top:0}.suspects-panel .hint-box{margin-top:0}.mode{font-size:12px}}
/* Clear replay entry and isolated, non-destructive gesture demonstrations. */
.tool-actions #start-tour{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 13px;border:1px solid #a31a2b;border-radius:7px;background:#ae172a;color:#fff7f8;font-weight:800;box-shadow:0 2px 0 #650a18}
#start-tour::before{content:'▶';font-size:11px}#start-tour:hover{background:#ce2338}
.tour-card{max-height:calc(100dvh - 24px);overflow-y:auto;border-color:#c79097}.tour-spot{border-color:#f45d71}.tour-actions .tour-next{background:#ae172a;border-color:#ae172a}
.tour-demo{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;margin:0 0 12px}.tour-demo[hidden]{display:none}
.gesture-board{position:relative;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;background:#74645c;border:2px solid #74645c;border-radius:5px;width:150px;height:150px;grid-column:1/-1;justify-self:center;isolation:isolate}
.gesture-cell{position:relative;min-width:0;min-height:0;display:grid;place-items:center;background:#e6decb}.gesture-center{background:#f5ebd4}
.gesture-note{position:absolute;left:4px;bottom:3px;display:grid;place-items:center;width:19px;height:19px;background:#fffdfa;border:2px solid #215f59;border-radius:4px;font:900 13px/1 SourceSans,sans-serif;color:#174b44;opacity:0;animation:gesture-appear .18s 1s forwards}
.gesture-finger{position:absolute;width:39px;height:47px;left:calc(50% - 10px);top:calc(50% - 3px);z-index:4;pointer-events:none;opacity:0;filter:drop-shadow(0 2px 2px #0005);animation:gesture-tap 1.6s ease-out forwards}
.gesture-hold .gesture-finger{animation:gesture-hold 2.4s ease-out forwards}
.gesture-letter{font:900 22px/1 SourceSans,sans-serif;color:#215f59;animation:gesture-letter 2s forwards}
.gesture-ring{position:absolute;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);transform:rotate(-90deg);animation:gesture-ring-hide 2.2s forwards}
.gesture-ring circle{fill:none;stroke:#b91830;stroke-width:4;stroke-dasharray:100;stroke-dashoffset:100;animation:gesture-fill .9s .65s linear forwards}
.gesture-person{width:90%;height:90%;object-fit:contain;position:absolute;opacity:0;animation:gesture-appear .22s 1.65s forwards;background:#d4e5d6;border:2px solid #286b64;border-radius:50%}
.gesture-cross{font:900 45px/.8 SourceSans,sans-serif;color:#e31f35;opacity:0;animation:gesture-appear .2s 1.85s forwards}
.gesture-caption{font-size:11px;font-weight:700;color:#675b58}.gesture-replay{min-height:36px;padding:5px 8px;border:1px solid #cab8ac;border-radius:5px;background:#fffaf3;color:#8c1427;font-size:12px;font-weight:800}
@keyframes gesture-tap{0%{opacity:0;transform:translate(18px,25px)}35%,55%{opacity:1;transform:translate(0,0)}65%{opacity:1;transform:scale(.92)}100%{opacity:0;transform:translate(14px,18px)}}
@keyframes gesture-hold{0%{opacity:0;transform:translate(18px,25px)}25%,72%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(14px,18px)}}
@keyframes gesture-fill{to{stroke-dashoffset:0}}
@keyframes gesture-appear{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes gesture-letter{0%,75%{opacity:1}100%{opacity:0}}
@keyframes gesture-ring-hide{0%,78%{opacity:1}100%{opacity:0}}
.legend-name,.legend-state{display:block}.legend-name{line-height:1.15;overflow-wrap:anywhere}.legend-state{margin-top:4px;font-weight:900;font-size:11px;line-height:1.2;white-space:nowrap}.legend-state.is-available{color:#19613b}.legend-state.is-blocked{color:#ae192e}
@media(max-width:760px){.object-legend{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px 5px}.legend-item{font-size:11px;min-width:0}.legend-name{min-height:2.3em;display:flex;align-items:center;justify-content:center}.legend-state{font-size:10px}.tool-actions #start-tour{flex-shrink:0}.gesture-board{width:138px;height:138px}}
@media(max-height:650px){.gesture-board{width:108px;height:108px}.gesture-cross{font-size:34px}.tour-demo{gap:3px;margin-bottom:6px}.gesture-finger{width:30px;height:36px}}
@media(prefers-reduced-motion:reduce){.gesture-finger,.gesture-ring,.gesture-letter{display:none}.gesture-note,.gesture-person,.gesture-cross{animation:none;opacity:1;transform:none}}
/* One shared column rhythm for tools, progress and the check action. */
.view-game .mode-group,.view-game .submit-row{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:6px}
.view-game .mode,.view-game .submit-button{height:44px;min-height:44px;box-shadow:none}
.view-game .submit-row{margin-top:6px;align-items:center}
.view-game .case-progress{grid-column:1;min-width:0;width:100%}
.view-game .submit-button{grid-column:2/4;max-width:none;width:100%;padding:5px 10px;gap:8px;font-size:16px}
.view-game .submit-button small{display:none}
.view-game .progress-numbers{gap:4px;font-size:11px;white-space:nowrap}
.view-game .progress-pips{gap:3px}.view-game .progress-pips i{flex:1;max-width:17px;min-width:0;width:auto}

.view-game .board-surface{min-width:0;width:100%}.view-game .plan-wrap{overflow-x:clip}

/* Book invitation appears only inside the successful-case dialog. */
.verdict-dialog{width:min(510px,calc(100% - 24px));padding:22px 24px;background:#fffaf3;max-height:calc(100dvh - 24px);overflow-y:auto}
.verdict-dialog .verdict-seal{width:52px;height:52px;font-size:30px;margin:14px auto 12px}.verdict-dialog h2{font-size:38px}.verdict-dialog #verdict-message{font-size:16px;line-height:1.3;margin:8px 0 18px}
.verdict-book{position:relative;text-align:left;border:1px solid #ddcdbd;border-radius:10px;padding:16px;background:#fff}
.verdict-dialog .book-invitation{font:800 16px/1.2 SourceSans,sans-serif;margin:0 0 12px;color:#9e152b}.book-product{display:grid;grid-template-columns:88px minmax(0,1fr);gap:15px;align-items:center}.book-product>img{display:block;width:88px;height:auto;border-radius:2px;box-shadow:2px 4px 8px #20100a33}
.book-format{font-size:9px;font-weight:900;letter-spacing:.07em;color:#74615e}.verdict-book h3{font:800 24px/1.05 Alegreya,Georgia,serif;color:#23191c;margin:5px 0 8px}.verdict-dialog .book-product p{font:400 13px/1.35 SourceSans,sans-serif;color:#5a4c50;margin:0 0 8px}
.book-rating{display:flex;gap:5px;align-items:center;flex-wrap:wrap;text-decoration:none;font-size:12px;color:#46343a}.book-rating>span:first-child{font-size:18px;letter-spacing:0;color:#b95c00}.book-rating .rating-count{font-size:11px;text-decoration:underline;text-underline-offset:2px}
.book-amazon-cta{display:flex;justify-content:center;align-items:center;gap:12px;min-height:46px;margin-top:15px;background:#ffd84b;border:1px solid #edbd22;border-radius:7px;color:#241c0b;font:900 15px/1.2 SourceSans,sans-serif;text-decoration:none}.book-amazon-cta:hover{background:#ffcd28}.book-amazon-cta:focus-visible{outline:3px solid #94192d;outline-offset:3px}.book-rating-date{display:block;text-align:center;font-size:10px;color:#776b68;margin-top:7px}.verdict-actions{margin-top:14px}
@media(max-width:420px){.verdict-dialog{padding:17px 15px}.verdict-book{padding:12px}.book-product{grid-template-columns:73px minmax(0,1fr);gap:12px}.book-product>img{width:73px}.verdict-book h3{font-size:21px}.verdict-dialog .book-product p{font-size:12px}.book-amazon-cta{font-size:14px}.verdict-dialog .verdict-actions{gap:6px}.verdict-dialog .verdict-actions button,.verdict-dialog .verdict-actions a{font-size:12px}}
@media(max-height:650px){.verdict-dialog{padding:12px 14px}.verdict-dialog .verdict-seal{width:36px;height:36px;font-size:23px;margin:9px auto}.verdict-dialog h2{font-size:30px}.verdict-dialog #verdict-message{font-size:13px;margin:5px 0 10px}.verdict-book{padding:10px}.verdict-dialog .book-invitation{margin-bottom:8px}.book-product>img{width:65px}.book-product{grid-template-columns:65px minmax(0,1fr)}.verdict-book h3{font-size:20px}.book-amazon-cta{margin-top:10px}.verdict-actions{margin-top:9px}}

@font-face{font-family:MordlogikDisplay;src:url("/fonts/shared/5e65eaa5f224b4fc.woff2") format("woff2");font-weight:400;font-display:swap}
.level-difficulty{display:grid;justify-items:end;gap:6px;flex:none;color:#f7f4f3}
.level-difficulty strong{font-family:MordlogikDisplay,Impact,sans-serif;font-size:28px;font-weight:400;line-height:1.1;text-transform:uppercase;letter-spacing:.04em}
.difficulty-bars{display:flex;gap:4px}.difficulty-bars i{display:block;width:17px;height:4px;background:#493b3e;transform:skewX(-18deg)}.difficulty-bars i.active{background:#ed3347}
.level-difficulty small{color:#bfb3b7;font-size:11px;letter-spacing:.06em}
.discover-games{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:8px 14px;margin:0 0 22px;border:1px solid #765159;border-radius:3px;background:#23181c;color:#fff1f3;text-decoration:none;font-size:14px;font-weight:700;transition:background .18s,border-color .18s}
.discover-games:hover{background:#461c25;border-color:#ed3347}.discover-games:focus-visible{outline:3px solid #ff6472;outline-offset:4px}.discover-games>span{color:#ff6472;font-size:20px;line-height:1}
@media(max-width:480px){.level-difficulty strong{font-size:23px}.level-difficulty small{font-size:10px}.difficulty-bars i{width:13px}.discover-games{font-size:13px;margin-bottom:18px}.level-heading{gap:10px}}

/* Main headings share the book's condensed display character. */
.hub-heading h1,.level-heading h2,.intro h1,.board-heading h2,.suspects-panel>.section-head h2,.hint-box h3,.rules-top h2,.rule-card h3,.verdict-dialog h2{font-family:MordlogikDisplay,Impact,sans-serif;font-weight:400;letter-spacing:.015em;line-height:1.12}
.hub-heading h1{font-size:clamp(34px,5vw,56px)}.level-heading h2{font-size:30px}.rule-card h3{font-size:26px}.rules-top h2{font-size:38px}
.direction-demo{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}
.rule-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.rule-grid>span{min-height:0;min-width:0}.rule-diagonal{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}
.tutorial-direction>span:nth-child(-n+6){background:#d9e9d0;color:#17643b}
@media(max-width:480px){.level-heading h2{font-size:26px}.rules-top h2{font-size:29px}.rule-card h3{font-size:23px}}

.hub-progress{width:200px;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;text-align:left}
.progress-label{display:flex;align-items:baseline;gap:8px;margin-bottom:11px}.hub-progress strong{font-family:MordlogikDisplay,Impact,sans-serif;font-weight:400;font-size:32px}.hub-progress .progress-label span{color:#c9bec2;font-size:13px;font-weight:600}
.case-progress-bar{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}.case-progress-bar i{height:9px;background:#382c30;transform:skewX(-12deg)}.case-progress-bar i.filled{background:#ed3347}
@media(max-width:600px){.hub-heading{flex-wrap:wrap}.hub-progress{width:100%;margin-top:8px}.progress-label{margin-bottom:8px}.hub-progress strong{font-size:26px}.case-progress-bar i{height:7px}}

/* The archive header follows the same content edge as its main section. */
.view-hub .masthead{max-width:1192px;padding-left:32px;padding-right:32px}
@media(max-width:1080px){.view-hub .masthead{padding-left:24px;padding-right:24px}}
@media(max-width:760px){.view-hub .masthead{padding-left:16px;padding-right:16px}}
@media(max-width:380px){.view-hub .masthead{padding-left:11px;padding-right:11px}}

/* Completed files: the entire case sheet rests on top of the folder. */
.sheet-case-title{display:none}
.file-card.completed{min-height:340px;margin-top:24px}
.file-card.completed .file-cover{min-height:340px;padding-bottom:24px;transform:none}
.file-card.completed .file-cover .file-title,.file-card.completed .file-cover .file-world{visibility:hidden}
.file-card.completed .file-sheet,.file-card.completed:hover .file-sheet{z-index:3;top:-30px;left:5%;right:5%;height:332px;transform:rotate(-2deg);padding:18px;overflow:visible;box-shadow:0 9px 22px #130a0960}
.file-card.completed .sheet-case-title{display:block;color:#443820;font:700 24px/1.1 Alegreya,Georgia,serif;margin:8px 0}
.file-card.completed .file-sheet svg{height:238px;margin-top:9px}
.file-card.completed .solved-stamp{z-index:4;left:3%;right:3%;top:45%;bottom:auto;text-align:center;font-family:MordlogikDisplay,Impact,sans-serif;font-weight:400;font-size:clamp(40px,5vw,70px);letter-spacing:.06em;border:7px double #a32429;color:#a32429;background:#f8f1dcaa;padding:12px 2px;transform:rotate(-16deg);box-shadow:inset 0 0 0 1px #a3242955}
@media(max-width:760px){.file-card.completed,.file-card.completed .file-cover{min-height:305px}.file-card.completed .file-sheet,.file-card.completed:hover .file-sheet{height:306px;padding:13px}.file-card.completed .file-sheet svg{height:220px}.file-card.completed .sheet-case-title{font-size:21px}.file-card.completed .solved-stamp{font-size:clamp(36px,7vw,56px);padding:10px 2px}}

/* Spoilerfreie Einladung nach dem gelösten Fall. */
.verdict-share{margin-top:14px;padding:16px 0 2px;border-top:1px solid #d9ccc1;text-align:center}
.verdict-share h3{margin:0;color:#273d3d;font:400 24px/1.15 Anton,SourceSans,sans-serif}
.verdict-dialog .verdict-share p{font:400 14px/1.4 SourceSans,sans-serif;margin:6px 0 12px;color:#52635c}
.verdict-share>button{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #1f6661;border-radius:7px;background:#266d67;color:white;font:900 15px/1.2 SourceSans,sans-serif;padding:10px 12px;cursor:pointer}
.verdict-share>button:hover{background:#1b5651}.verdict-share>button:focus-visible,.verdict-share input:focus-visible{outline:3px solid #ba1831;outline-offset:3px}.verdict-share>button:disabled{opacity:.6;cursor:wait}
.verdict-dialog #share-status:empty{display:none}.verdict-dialog #share-status{font-size:12px;margin:8px 0 0}
#share-manual label{display:block;font:700 12px SourceSans,sans-serif;margin-top:8px}#share-link{box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid #84948c;border-radius:4px;font:14px SourceSans,sans-serif}
@media(max-width:420px){.verdict-share{padding-top:12px;margin-top:12px}.verdict-share h3{font-size:21px}.verdict-dialog .verdict-share p{font-size:13px}}

/* High-contrast clue cues sit above furniture; walls retain their own clear outline. */
.view-game .cell.clue-object,.view-game .cell.clue-possible{animation:none!important;outline:none!important;box-shadow:none!important}
.view-game .cell.clue-object::after,.view-game .cell.clue-possible::after{content:"";position:absolute;inset:4px;border:4px solid #e00076;box-shadow:0 0 0 2px #fff,inset 0 0 0 2px #fff;border-radius:3px;z-index:8;pointer-events:none}
.view-game .cell.clue-possible::after{background:#e000761a}
.view-game .wall-line{stroke-width:5;stroke:#293b35}
.view-game .door-jamb{stroke-width:4}

.view-game .intro .back-to-files{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-height:38px;padding:6px 10px;margin:2px 0 4px;border:2px solid #f8e7b5;border-radius:9px;background:#33292b;color:#f8e7b5;font:800 14px/1.2 SourceSans,Arial,sans-serif;text-decoration:none}
.view-game .intro .back-to-files:focus-visible{outline:3px solid #f8e7b5;outline-offset:3px}
@media(max-width:760px){.view-game .intro{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px}.view-game .back-to-files{grid-column:1;grid-row:1}.view-game .case-meta{grid-column:2;grid-row:1;justify-content:flex-end;gap:5px;font-size:10px}.view-game .intro h1{grid-column:1/-1;grid-row:2}.view-game .case-story{grid-column:1/-1;grid-row:3}}

/* The preview uses the playable board's wall geometry and stroke treatment. */
.preview-architecture .wall-line{stroke:#293b35;stroke-width:5}
.preview-architecture .door-jamb{stroke-width:4}
.file-sheet .preview-architecture .wall-line{stroke-width:2.5}
.file-sheet .preview-architecture .door-jamb{stroke-width:2}
.file-sheet .preview-architecture .window-line{stroke-width:1}
.preview-map svg{overflow:visible}
/* Keep rules visible beside the board title, including compact screens. */
#intro-rules-button{flex:none;min-height:44px;padding:8px 12px;border:2px solid #293b35;border-radius:7px;background:#f4cf62;color:#20372f;font-weight:900;box-shadow:0 3px 0 #293b3526;white-space:nowrap}
#intro-rules-button:hover{background:#ffe08a}
#intro-rules-button:focus-visible{outline:3px solid #293b35;outline-offset:3px}
.header-help,.view-game .header-help{min-height:44px;border:2px solid #293b35;background:#f4cf62;color:#20372f;box-shadow:0 3px 0 #293b3540}
.header-help:hover{background:#ffe08a}
.header-help .help-copy small{color:#3f5147}
.header-help>.help-icon{border-color:#3f5147}
@media(max-width:380px){#intro-rules-button{padding:7px 8px;font-size:12px}.board-heading{gap:8px}}

/* Undo stays identifiable; an unavailable action remains visibly disabled. */
.tool-actions #undo{min-height:44px;padding:9px 8px;border:2px solid #315d53;border-radius:7px;background:#e3eee7;color:#244c42;font-size:14px;font-weight:900;opacity:1}
.tool-actions #undo:not(:disabled){background:#f4cf62;border-color:#293b35;color:#20372f;box-shadow:0 3px 0 #293b3526}
.tool-actions #undo:not(:disabled):hover{background:#ffe08a}
.tool-actions #undo:disabled{background:#e7e9e4;border-color:#a4aea5;color:#667269;box-shadow:none;cursor:default}
.tool-actions #undo:focus-visible{outline:3px solid #293b35;outline-offset:3px}

.book-rating{display:flex;gap:5px;align-items:center;flex-wrap:wrap;text-decoration:none;font-size:12px;color:#46343a}
.book-rating>.book-rating-stars{font-size:18px;letter-spacing:0;color:transparent;background:linear-gradient(90deg,#b95c00 var(--rating-fill),#c8c3bb var(--rating-fill));background-clip:text;-webkit-background-clip:text}
.book-rating .rating-count{font-size:11px;text-decoration:underline;text-underline-offset:2px}
.book-rating-date{display:block;text-align:center;font-size:10px;color:#776b68;margin-top:7px}
@media(max-width:380px){.legend-state{white-space:normal;overflow-wrap:anywhere}}

/* A tap always targets the button, not a changing/transformed decorative child. */
.file-card>*{pointer-events:none}
.file-card.is-pressed{translate:none;scale:none}
@media(hover:none),(pointer:coarse){
 .file-card:hover{transform:none}
 .file-card:not(.opened):not(.completed):hover .file-sheet{transform:translateY(-48px) rotate(-2deg)}
}
@media(max-width:760px) and (hover:none){.file-card:not(.opened):not(.completed):hover .file-sheet{transform:translateY(-42px) rotate(-2deg)}}
