.home-page{--library-header-height:66px}.home-page .site-header{position:sticky;top:0;z-index:20;height:var(--library-header-height);background:#f8f7fd}.home-page .case-library .case-library-toolbar{position:sticky;top:var(--library-header-height);z-index:10;flex-shrink:0;padding-top:14px;background:#f0ebf8;box-shadow:0 5px 10px #302b300a}.home-page .case-library-toolbar:before{content:"";position:absolute;inset:0 calc((100vw - 100%)/-2);z-index:-1;background:#f0ebf8;pointer-events:none}@media(min-width:900px){.home-page{--library-header-height:52px}}@media(max-width:760px){.home-page{--library-header-height:58px}}.case-library{width:100%;max-width:none;margin:0;padding:45px clamp(20px,4vw,76px) 76px;background:#f0ebf8;min-height:calc(100vh - 122px);color:#29242d}.case-library .case-library-heading{text-align:center;margin:0 auto 29px}.case-library .case-library-eyebrow{font-size:10px;font-weight:800;letter-spacing:2.5px;color:#7a6e86;margin:0 0 13px}.case-library .case-library-heading h1{font-size:clamp(28px,3.4vw,43px);font-weight:800;letter-spacing:-1.2px;margin:0 0 12px}.case-library .case-library-heading>p:last-child{font-size:13px;color:#746a7c;margin:0 auto;max-width:620px;line-height:1.8}.case-library .case-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:0 0 15px;border-bottom:1px solid #d6ccdf}.case-library .case-library-filters{display:flex;gap:7px;flex-wrap:wrap}.case-library .case-library-filters button{background:transparent;border:1.5px solid transparent;padding:8px 17px;min-height:38px;border-radius:6px;font-size:12px;font-weight:700;color:#716479;transition:background .15s,color .15s}.case-library .case-library-filters button:hover{background:#e1d6ec}.case-library .case-library-filters button[aria-pressed=true]{background:#3b3047;border-color:#3b3047;color:#fff9ee;box-shadow:2px 2px #b7a7c4}.case-library .case-library-search{display:flex;align-items:center;gap:10px;font-size:11px;color:#786e80;white-space:nowrap}.case-library .case-library-search input{width:260px;max-width:100%;min-height:40px;font:inherit;font-size:13px;color:#3b3047;background:#f7f3fc;border:1.5px solid #c8bacf;border-radius:6px;padding:9px 12px;min-width:0}.case-library .case-library-search input::placeholder{color:#91859b}.case-library .case-library-count{max-width:1440px;margin:16px auto 20px;font-size:10px;letter-spacing:.5px;color:#887b93}.case-library .case-library-grid{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:29px 25px;max-width:1440px;margin:0 auto}.case-library .case-library-card{min-width:0;display:flex;flex-direction:column;text-decoration:none;background:#fff7e3;border:2px solid #302b30;border-radius:7px;box-shadow:5px 6px #302b30;overflow:hidden;transition:transform .16s,box-shadow .16s}.case-library a.case-library-card:hover{transform:translate(-2px,-3px);box-shadow:7px 9px #302b30}.case-library a.case-library-card:active{transform:translate(3px,4px);box-shadow:2px 2px #302b30}.case-library .case-library-preview{aspect-ratio:1.22;display:flex;align-items:center;justify-content:center;padding:19px 24px 10px;overflow:hidden;pointer-events:none;background:#f8efd9}.case-library .case-library-preview .crime-map{height:100%;width:100%;max-height:none;overflow:visible;pointer-events:none}.case-library .case-library-card-body{padding:14px 19px 16px;border-top:1px solid #e4d9c2;flex:1;display:flex;flex-direction:column}.case-library .case-library-card h2{font-family:Caveat,Noteworthy,cursive;font-weight:700;font-size:clamp(24px,2.3vw,33px);line-height:1.15;letter-spacing:-.3px;margin:0;color:#28252a}.case-library .case-library-subtitle{font-size:11px;color:#958775;line-height:1.5;margin:5px 0 15px}.case-library .case-library-card-meta{display:flex;align-items:center;gap:10px;margin-top:auto;min-height:23px}.case-library .case-library-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;border:1px solid #b5bd8b;background:#e5ebd1;color:#657443;border-radius:4px;line-height:1.5;padding:3px 9px}.case-library [data-difficulty=简单] .case-library-badge{background:#ddebd2;color:#577343;border-color:#aabc92}.case-library [data-difficulty=中等] .case-library-badge{background:#eee1bc;color:#8b7131;border-color:#d5bc7d}.case-library [data-difficulty=困难] .case-library-badge{background:#efd4c6;color:#955f42;border-color:#d4a992}.case-library [data-difficulty=专家] .case-library-badge{background:#e4d4e9;color:#825b8a;border-color:#baa0c3}.case-library .case-library-size{font-size:10px;color:#9b8e7c;letter-spacing:.5px}.case-library .case-library-arrow{font-size:20px;line-height:1;color:#736b5d;margin-left:auto}.case-library .case-library-locked{background:#ebe4d5;border-color:#817b78;box-shadow:5px 6px #a69daa}.case-library .case-library-locked-preview{color:#aaa08d;background:repeating-linear-gradient(-35deg,#e9e1d2 0,#e9e1d2 1px,#eee7db 1px,#eee7db 12px)}.case-library .case-library-locked-preview svg{width:58px;height:70px}.case-library .case-library-locked h2{color:#938b80}.case-library .case-library-locked .case-library-badge{background:#e2dbce;color:#8f8677;border-color:#bbb1a1}.case-library .case-library-empty{text-align:center;padding:50px 10px;font-size:14px;color:#7d7087}.case-library [hidden]{display:none!important}.case-library a:focus-visible,.case-library button:focus-visible,.case-library input:focus-visible{outline:3px solid #8460b2;outline-offset:5px}@media(min-width:1700px){.case-library .case-library-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-width:1700px}.case-library .case-library-toolbar,.case-library .case-library-count{max-width:1700px}}@media(max-width:1050px){.case-library .case-library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 22px}.case-library .case-library-card h2{font-size:28px}}@media(max-width:760px){.case-library{padding:30px 20px 55px}.case-library .case-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 18px}.case-library .case-library-toolbar{gap:14px;align-items:flex-start;flex-direction:column}.case-library .case-library-filters{gap:3px}.case-library .case-library-filters button{padding:7px 13px}.case-library .case-library-preview{padding:13px 14px 8px}.case-library .case-library-card-body{padding:12px}.case-library .case-library-card h2{font-size:26px}.case-library .case-library-search{width:100%}.case-library .case-library-search input{flex:1;width:0}.case-library .case-library-heading{margin-bottom:22px}}@media(max-width:400px){.case-library{padding-right:15px;padding-left:15px}.case-library .case-library-grid{gap:20px 14px}.case-library .case-library-card h2{font-size:23px}.case-library .case-library-card-body{padding:10px}.case-library .case-library-preview{padding:9px}.case-library .case-library-badge{padding:2px 6px}.case-library .case-library-card-meta{gap:6px}.case-library .case-library-filters button{padding:7px 11px}}@media(prefers-reduced-motion:reduce){.case-library .case-library-card,.case-library .case-library-filters button{transition:none}}@font-face{font-family:Caveat;src:url(/assets/fonts/caveat.woff2) format("woff2");font-weight:400 800;font-display:swap}@font-face{font-family:Inter;src:url(/assets/fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#252529;background:#f8f7fd;font-synthesis:none;--line:#d3d1d8;--ink:#292929;--accent:#538e98}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.35}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #528fbc;outline-offset:4px}button[hidden]{display:none}.site-header{height:66px;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--line)}.wordmark{display:flex;gap:18px;align-items:center;text-decoration:none}.wordmark img{width:176px;height:39px}.wordmark small{font-size:13px;font-weight:600;color:#66616d}.original-link{text-decoration:none;border:2px solid var(--ink);border-radius:9px;padding:8px 14px;font-size:12px;box-shadow:2px 2px #aaa7af;background:#faf9ff}.original-link span{margin-left:12px}main{max-width:1600px;margin:auto}.case-heading{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;gap:12px}h1{margin:0;font-size:18px;font-weight:800}h1 span{font-size:13px;margin-left:10px;font-weight:500;color:#77717d}.case-meta{display:flex;gap:16px;font-size:11px;color:#6c6671}.case-meta span{white-space:nowrap}.case-meta i{display:inline-block;background:#73ab79;width:7px;height:7px;border-radius:50%;margin-right:5px}.workspace{display:grid;grid-template-columns:minmax(300px,1.03fr) minmax(280px,1.2fr) minmax(260px,.87fr);border-top:1px solid var(--line);min-height:calc(100vh - 165px)}.suspects-panel{padding:17px 15px 24px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:26px}.panel-heading h2{font-size:15px;margin:0;font-weight:800}.panel-heading h2 small{font-weight:500;font-size:11px;color:#77717d;margin-left:5px}.panel-heading>span{font-size:10px;color:#77717d}.suspects-note{font-size:11px;color:#85808b;text-align:center;margin:5px 0 14px}.characters-list{display:grid;grid-template-columns:1fr 1fr;gap:15px 12px}.character{--card-color:#ae6453;min-width:0;text-align:center}.character[data-character=B]{--card-color:#50894e}.character[data-character=C]{--card-color:#78aeb3}.character[data-character=D]{--card-color:#7c89c2}.character[data-character=E]{--card-color:#715880}.character[data-character=V]{--card-color:#d0a3a3}.character-head{display:flex;flex-direction:column;align-items:center;width:108px;margin:0 auto -5px;position:relative;z-index:1;border:3px solid var(--ink);border-radius:7px;padding:5px 5px 3px;background:#fff;box-shadow:4px 4px #67666b;transition:transform .15s}.character-head:hover{transform:translateY(-3px)}.portrait-wrap{display:block;position:relative;width:92px;height:92px;background:var(--card-color);overflow:hidden}.portrait-wrap img{width:100%;height:100%;object-fit:contain}.character-letter{position:absolute;left:3px;top:3px;font-size:9px;font-weight:800;color:#fff;background:#292929b3;line-height:16px;width:16px;border-radius:50%}.identity strong{display:block;font-family:Caveat,Noteworthy,Chalkboard SE,cursive;font-size:22px;font-weight:700;line-height:29px;color:#101010}.clue-card{border:2.5px solid var(--ink);border-radius:10px;box-shadow:3px 4px #aaa8af;background:linear-gradient(180deg,color-mix(in srgb,var(--card-color) 18%,#f8f7fd),#f8f7fd 85%);padding:19px 9px 8px;min-height:108px;display:flex;flex-direction:column;justify-content:center}.clue-card>p{font-size:12px;line-height:1.6;margin:0 0 7px}.character-status{font-size:9px;color:#69646f}.character details{font-size:9px;color:#817b87;margin-top:4px}.character details summary{cursor:pointer;list-style:none}.character details summary:after{content:" ＋"}.character details[open] summary:after{content:" −"}.character details p{font-size:10px;line-height:1.5;margin:6px 0}.character.is-focused .character-head{border-color:#63b4ff;outline:3px solid rgb(99,180,255);outline-offset:-1px;box-shadow:0 0 0 2px #7cb9ff59,0 0 18px #6b8dff40}.character.is-focused .identity strong{color:#7cb9ff}.character.is-focused .clue-card{border-color:#63b4ff;outline:1px solid rgb(99,180,255);outline-offset:-1px;box-shadow:none}.character.is-placed .clue-card{box-shadow:none}.map-panel{background:#f0eef5;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:20px 18px;display:flex;flex-direction:column;min-width:0;position:sticky;top:0;align-self:start;height:calc(100vh - 120px);min-height:520px;max-height:850px}.map-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:600;color:#6d6675}.map-top span:last-child{font-size:10px;font-weight:400}#board{width:100%;margin:auto 0;padding:25px 0 15px}.crime-map{display:block;width:100%;max-height:540px;overflow:visible;filter:none}.axis{font:18px monospace;fill:#89838f;text-anchor:middle}.room-label{font-size:19px;text-anchor:middle;fill:#fff;font-weight:800;paint-order:stroke;stroke:#222;stroke-width:6px;stroke-linejoin:round;letter-spacing:1px}.candidate{font:800 27px sans-serif;text-anchor:middle;fill:#a94b26}.candidate.removed{fill:#ab7563}.placed-letter{font:700 15px sans-serif;fill:#fff;text-anchor:middle}.cell-hit{cursor:pointer}.cell-hit:hover{fill:#fff;fill-opacity:.18}.cell-hit:focus-visible{outline:none;stroke:#4a8da3;stroke-width:4px}.map-legend{display:flex;justify-content:center;gap:12px;font-size:10px;color:#6d6675}.map-legend>span{display:flex;align-items:center;gap:5px}.map-legend i{display:inline-flex;width:19px;height:19px;justify-content:center;align-items:center;font:11px sans-serif;font-style:normal}.legend-candidate{border:1px dashed #b36945;border-radius:50%;color:#af542e}.legend-eliminated{color:#a66b5a;text-decoration:line-through}.legend-placed{border-radius:4px;background:#64765b;color:#fff}#cell-description{font-size:11px;line-height:1.7;color:#77717d;text-align:center;min-height:38px;margin:12px 0}.map-bottom{font-size:10px;color:#8a8392;text-align:center}.map-bottom button{display:block;margin:8px auto 0;border:2px solid #292929;border-radius:7px;background:#fff;padding:7px 12px;font-size:11px;box-shadow:2px 2px #aaa7af}.teaching-panel{padding:17px 20px 24px;display:flex;flex-direction:column}.directory-label{font-size:11px;position:relative;border:1.5px solid #292929;border-radius:7px;padding:6px 9px;cursor:pointer;white-space:nowrap}.directory-label:after{content:"⌄";margin-left:7px}.directory-label select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;cursor:pointer}#lesson{display:flex;flex:1}.lesson-content{display:flex;flex-direction:column;width:100%}.lesson-progress{display:flex;justify-content:space-between;color:#77717d;font-size:11px;margin-top:23px}.progress-track{height:7px;background:#e2dee9;border:1px solid #ccc6d5;border-radius:5px;margin-top:10px;overflow:hidden}.progress-track span{display:block;height:100%;background:#79aeb8;transition:width .2s}.lesson-body{padding-top:29px;flex:1}.section-kicker{font-size:11px;color:#85788e}.lesson-body h2{font-size:23px;line-height:1.5;font-weight:800;margin:12px 0 18px}.explanation{font-size:14px;line-height:1.95;margin:0;color:#514b59}.intro-list{font-size:13px;color:#68606f;line-height:2.3;padding-left:20px;margin:23px 0}.rule{display:flex;gap:10px;padding:16px 12px;margin:26px 0;background:#e9e5f0;border:2px solid #5e566a;border-radius:9px;box-shadow:3px 3px #cac4d3}.rule-icon{font-size:23px;color:#777082}.rule>div>span{font-size:11px;font-weight:700;color:#696073}.rule p{font-size:12px;line-height:1.9;margin:6px 0 0;color:#5c5466}.evidence{margin-top:20px}.evidence>span{font-size:11px;color:#77717d}.evidence>div{display:flex;gap:8px;margin-top:10px}.evidence-person{border:2px solid #343039;border-radius:7px;background:#fff;padding:4px 9px 4px 4px;display:flex;align-items:center;gap:5px;font-size:12px;box-shadow:2px 2px #b0abb7}.evidence-person img{width:30px;height:30px}.lesson-nav{display:flex;gap:10px;margin-top:12px}.lesson-nav button{border:2px solid #292929;border-radius:10px;height:46px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700;box-shadow:3px 4px #aaa6b1}.previous{width:40%;background:#faf9ff}.next{flex:1;background:#d7e9ec}.lesson-nav button:not(:disabled):hover,.original-link:hover{background:#c8e2e7}.lesson-nav button:not(:disabled):active{transform:translate(2px,2px);box-shadow:1px 2px #aaa6b1}.nav-note{text-align:center;font-size:10px;color:#8c8594;margin-top:16px}footer{padding:17px 24px;border-top:1px solid var(--line);font-size:10px;color:#8a8292;text-align:center;line-height:1.8}footer a{text-underline-offset:3px}.asset-error{grid-column:1/-1;padding:40px;color:#99452b;line-height:2}@media(min-width:1350px){.character-head{width:128px}.portrait-wrap{width:112px;height:112px}.identity strong{font-size:25px;line-height:33px}.clue-card{min-height:116px}.clue-card>p{font-size:14px}.characters-list{gap:20px 15px}.suspects-panel{padding:20px}.teaching-panel{padding:20px 26px}}@media(max-width:899px)and (min-width:761px){.workspace{grid-template-columns:minmax(280px,1fr) minmax(290px,1fr)}.teaching-panel{grid-column:1/-1;border-top:1px solid var(--line)}.lesson-body{padding-top:15px}.lesson-content{max-width:780px;margin:auto}.lesson-nav{max-width:420px;align-self:center;width:100%}.map-panel{height:700px}.case-meta{display:none}}@media(max-width:760px){.site-header{padding:10px 14px;height:58px}.wordmark{gap:10px}.wordmark img{width:136px;height:32px}.wordmark small{font-size:10px}.original-link{font-size:10px;padding:7px 9px}.original-link span{margin-left:3px}.case-heading{padding:14px}.case-heading h1{font-size:15px}h1 span{display:block;font-size:11px;margin:5px 0 0}.case-meta{font-size:10px;gap:6px;flex-direction:column;text-align:right}.workspace{display:flex;flex-direction:column}.map-panel{order:0;border:0;border-bottom:1px solid var(--line);height:auto;min-height:0;max-height:none;width:100%;padding:12px 16px;position:relative}.map-top{font-size:10px}#board{max-width:380px;margin:0 auto;padding:12px 6px 6px}.crime-map{max-height:360px;filter:none}.map-legend{font-size:9px;gap:17px}#cell-description{min-height:17px;margin:7px 0 0;font-size:10px}.map-bottom>span{display:none}.suspects-panel{order:2;padding:20px 15px}.suspects-note{margin-bottom:16px}.characters-list{gap:18px 13px}.character-head{width:116px}.portrait-wrap{width:100px;height:100px}.clue-card{min-height:108px}.clue-card>p{font-size:13px}.teaching-panel{order:1;padding:19px 16px 20px;border-bottom:1px solid var(--line)}.lesson-progress{margin-top:17px}.lesson-body{padding-top:20px}.lesson-body h2{font-size:23px;margin:9px 0 14px}.explanation{font-size:14px}.rule{margin:20px 0}.lesson-nav{position:sticky;bottom:0;z-index:3;padding:10px 0 9px;background:#f8f7fd}.nav-note{margin:7px 0 0}footer{font-size:9px;padding:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.map-bottom button[hidden]{display:none}.portrait-wrap img{filter:drop-shadow(2px 0 0 #000) drop-shadow(-2px 0 0 #000) drop-shadow(0 2px 0 #000) drop-shadow(0 -2px 0 #000)}@media(max-width:760px){.map-panel{position:sticky;top:0;z-index:2;box-shadow:0 2px 5px #2929290a}.crime-map{max-height:30vh;min-height:200px}#board{padding:6px 0}.map-panel{padding-top:8px;padding-bottom:8px}.map-legend{margin-top:3px}}.placed-portrait{filter:drop-shadow(3px 0 0 #000) drop-shadow(-3px 0 0 #000) drop-shadow(0 3px 0 #000) drop-shadow(0 -3px 0 #000)}.placed-letter{font-family:Inter,sans-serif;font-size:32px;font-weight:900;text-anchor:start;stroke:#000;stroke-width:5px;stroke-linejoin:round;paint-order:stroke fill}.character.is-placed:not(.is-focused) .character-head{opacity:.48}@media(min-width:900px){html,body,#app{height:100%;margin:0}body{overflow:hidden}#app{display:flex;flex-direction:column}.site-header{height:52px;flex-shrink:0;padding:7px 18px}.wordmark img{width:160px;height:35px}main{max-width:none;width:100%;margin:0;flex:1;min-height:0;display:flex;flex-direction:column}.case-heading{padding:9px 18px;height:42px;flex-shrink:0}h1{font-size:16px}.workspace{flex:1;min-height:0;grid-template-columns:clamp(265px,25vw,390px) minmax(0,1fr) clamp(270px,24vw,365px)}.suspects-panel{min-height:0;padding:10px 13px 14px;display:flex;flex-direction:column}.panel-heading{min-height:23px;flex-shrink:0}.panel-heading h2{font-size:13px}.panel-heading h2 small{font-size:10px}.suspects-note{font-size:10px;margin:3px 0 9px}#characters{min-height:0;flex:1}.characters-list{height:100%;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}.character{display:flex;flex-direction:column;min-height:0;position:relative}.character-head{width:auto;flex-shrink:0;padding:4px 4px 1px;border-width:3px}.portrait-wrap{width:clamp(42px,calc((100dvh - 523px)/3),125px);height:clamp(42px,calc((100dvh - 523px)/3),125px)}.identity strong{font-size:clamp(17px,2.6vh,25px);line-height:1.15}.clue-card{min-height:0;flex:1;padding:10px 5px 4px;border-width:2px;border-radius:9px}.clue-card>p{font-size:clamp(10px,1.55vh,13px);line-height:1.4;margin:0 0 3px}.character-status{font-size:9px}.character details{margin-top:2px;font-size:9px}.character details[open]>p{position:absolute;z-index:5;left:0;right:0;bottom:23px;background:#fff;border:2px solid #292929;border-radius:7px;padding:10px;box-shadow:3px 3px #aaa;font-size:12px}.map-panel{position:static;align-self:stretch;height:auto;min-height:0;max-height:none;padding:12px 16px 10px}#board{flex:1;min-height:0;margin:0;display:flex;align-items:center;justify-content:center;padding:8px 0}.crime-map{width:100%;height:100%;max-height:none;min-height:0}.map-legend{flex-shrink:0}#cell-description{min-height:18px;margin:7px 0 0;font-size:10px}.map-bottom{min-height:22px;display:flex;justify-content:center;align-items:center}.map-bottom>span{display:none}.map-bottom button{margin:3px 0 0;padding:3px 9px;font-size:10px}.teaching-panel{padding:10px 15px 12px;min-height:0}.lesson-content,#lesson{min-height:0}.lesson-content{max-width:none}.lesson-progress{margin-top:14px}.progress-track{flex-shrink:0;margin-top:8px}.lesson-body{padding-top:clamp(10px,2vh,24px);min-height:0}.lesson-body h2{font-size:clamp(18px,2.6vh,25px);line-height:1.4;margin:9px 0 12px}.explanation{font-size:clamp(12px,1.75vh,15px);line-height:1.8}.intro-list{font-size:12px;line-height:1.8;margin:14px 0}.evidence{margin-top:12px}.evidence>div{margin-top:6px}.evidence-person img{width:25px;height:25px}.rule{margin:clamp(12px,2vh,24px) 0;padding:10px;gap:8px}.rule p{font-size:clamp(11px,1.55vh,13px);line-height:1.65;margin:5px 0 0}.lesson-nav{flex-shrink:0;width:100%;max-width:none;align-self:stretch;margin-top:8px}.lesson-nav button{height:40px}.nav-note{font-size:9px;margin:10px 0 0;flex-shrink:0}footer{padding:9px 12px;font-size:10px;flex-shrink:0;line-height:1.6}}.portrait-wrap{container-type:inline-size}.portrait-wrap img{transform:scale(1.1);transform-origin:top center;filter:drop-shadow(2.4px 0 0 #000) drop-shadow(-2.4px 0 0 #000) drop-shadow(0 2.4px 0 #000) drop-shadow(0 -2.4px 0 #000)}@media(min-width:900px){.character-head,.portrait-wrap{max-width:100%}}.portrait-wrap{height:auto;aspect-ratio:1;flex-shrink:0}.portrait-wrap img{display:block;object-fit:cover;object-position:top center}.general-clue{font-size:11px;line-height:1.5;padding:7px 9px;margin:0 0 8px;border:1px solid #b9a78b;border-radius:6px;background:#f5ebd3}.detail-toggle{display:block;margin:14px 0 0;padding:8px 10px;border:2px solid #292929;border-radius:7px;background:#fff;box-shadow:2px 2px #bcb6c5;font-size:12px}.detail-reader[hidden]{display:none}.detail-reader{margin-top:14px;border-left:3px solid #77b1d0;padding-left:12px}.detail-text{font-size:13px;line-height:1.85;margin:0 0 14px}.detail-reader>div{display:flex;align-items:center;gap:14px;font-size:11px}.detail-reader button{border:1px solid #292929;background:#fff;border-radius:5px;padding:6px 12px}.reading-detail .explanation,.reading-detail .evidence,.reading-detail .rule{display:none}.hard-case .character[data-character=F]{--card-color:#ad7954}.hard-case .character[data-character=G]{--card-color:#4b9254}.hard-case .character[data-character=H]{--card-color:#b988bc}.hard-case .character[data-character=I]{--card-color:#679eb5}@media(min-width:900px){.hard-case .character-status{font-size:8px}.hard-case .character details{font-size:8px}.hard-case .general-clue{font-size:10px;padding:5px 7px}.hard-case .teaching-panel{padding-left:13px;padding-right:13px}.hard-case .lesson-body h2{font-size:clamp(17px,2.3vh,23px)}.hard-case .rule{margin-top:14px}.hard-case .evidence{margin-top:10px}.hard-case .detail-text{font-size:12px}.hard-case .characters-list .character details[open]>p{font-size:11px;bottom:15px}.hard-case .case-meta{gap:12px}}.hard-case .character:not(.is-placed) .character-status{display:none}.hard-case .character-status{display:none}@media(min-width:900px){.hard-case .character details{margin:0;height:0}.hard-case .character details summary{position:absolute;right:4px;top:5px;font-size:8px;color:#817b87}.hard-case .character details[open]>p{height:auto;bottom:8px}}.evidence-person .portrait-wrap{width:30px;height:30px;max-width:none;background:var(--card-color)}.evidence-person .portrait-wrap img{width:100%;height:100%;filter:drop-shadow(.72px 0 0 #000) drop-shadow(-.72px 0 0 #000) drop-shadow(0 .72px 0 #000) drop-shadow(0 -.72px 0 #000)}.placement-check{position:absolute;top:-7px;right:-7px;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#43855b;border:2px solid #fff;z-index:3;pointer-events:none}.placement-check svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.character.is-placed:not(.is-focused) .character-head{opacity:1}.character.is-placed:not(.is-focused) .portrait-wrap,.character.is-placed:not(.is-focused) .identity{opacity:.48}.identity small{display:block;font:9px Inter,sans-serif;color:#77717d;line-height:1.3}.expert-case .character-letter{width:12px;line-height:12px;font-size:8px;left:1px;top:1px}.expert-case .character.is-focused .character-head{box-shadow:0 0 0 2px #7cb9ff59,0 0 18px #6b8dff40}.expert-case .character.is-focused .clue-card,.expert-case .character.is-placed .clue-card{box-shadow:none}.expert-case .placement-check{width:18px;height:18px;top:-6px;right:-6px}.expert-case .placement-check svg{width:12px;height:12px}.expert-case .evidence>div{flex-wrap:wrap}.expert-case .room-label{font-size:23px;letter-spacing:0;stroke-width:7px}@media(min-width:900px){.expert-case .workspace{grid-template-columns:clamp(360px,32vw,500px) minmax(0,1fr) clamp(280px,23vw,350px)}.expert-case .suspects-panel{padding:10px 12px 13px}.expert-case .general-clue{font-size:10px;padding:5px 7px;margin-bottom:6px;flex-shrink:0}.expert-case .suspects-note{margin-bottom:7px}.expert-case .map-panel{padding-left:9px;padding-right:9px}.expert-case .lesson-body h2{font-size:clamp(17px,2.3vh,23px)}.expert-case .evidence-person{padding:3px 5px 3px 3px}.expert-case .evidence-person .portrait-wrap{width:24px;height:24px}.expert-case .detail-text{font-size:12px}}@media(max-width:760px){.expert-case .map-panel{position:relative}.expert-case #board{max-width:none}.expert-case .crime-map{max-height:none;min-height:0;aspect-ratio:1}.expert-case .map-top span:last-child{font-size:9px}}body.home-page{overflow:auto}.home-page #app{min-height:100dvh;height:auto}.case-index{max-width:1100px;width:100%;margin:0 auto;padding:clamp(32px,7vw,90px) 24px;display:block}.case-index h1{font-size:clamp(26px,4vw,44px);margin:14px 0 18px}.case-index>p{font-size:14px;line-height:1.9;color:#77717d;max-width:550px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:40px}.case-entry{display:flex;flex-direction:column;text-decoration:none;border:2px solid #292929;border-radius:12px;padding:25px 22px;background:#fff;box-shadow:5px 5px #cbc6d3;transition:transform .15s}.case-entry:hover{transform:translateY(-4px)}.case-entry>span{font-size:11px;color:#6d6675}.case-entry h2{font-size:23px;margin:22px 0 8px}.case-entry p{font-size:13px;color:#77717d;margin:0 0 28px}.case-entry small{font-size:11px;color:#77717d;margin-top:auto}.case-entry b{font-size:13px;margin-top:15px;color:#477d87}.home-page footer{margin-top:auto}@media(max-width:760px){.case-grid{grid-template-columns:1fr;gap:18px;margin-top:25px}.case-entry{padding:22px}.case-entry h2{margin-top:14px}.case-entry p{margin-bottom:18px}}@media(max-width:760px){.expert-case .lesson-nav{position:static}}#characters .characters-list{grid-template-columns:repeat(var(--roster-columns),minmax(0,1fr));grid-template-rows:repeat(var(--roster-rows),minmax(0,1fr));gap:12px 10px}#characters .character{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;text-align:center}#characters .character-head{align-self:center;flex:none;width:auto;min-width:0;max-width:calc(100% - 6px);margin:0 auto -4px;padding:3px 4px 1px;border-width:3px}#characters .character-head .portrait-wrap{width:clamp(34px,6vw,80px);max-width:100%}#characters .identity strong{font-size:clamp(15px,1.5vw,21px);line-height:1.15;white-space:nowrap}#characters .identity small{text-align:center;font-size:8px}#characters .clue-card{flex:1;min-width:0;min-height:68px;padding:11px 5px 6px;border-width:2px}#characters .clue-card>p{font-size:12px;line-height:1.45;margin:0;overflow-wrap:anywhere}@media(min-width:900px){#characters{container-type:size}#characters .characters-list{gap:10px 9px}#characters .character-head .portrait-wrap{width:clamp(28px,calc(100cqh / var(--roster-rows) - 100px),125px)}#characters .identity strong{font-size:clamp(14px,2vh,21px)}#characters .clue-card{min-height:0;padding:9px 5px 4px}#characters .clue-card>p{font-size:clamp(10px,1.4vh,13px);line-height:1.4}.hard-case .workspace{grid-template-columns:clamp(310px,28vw,430px) minmax(0,1fr) clamp(270px,24vw,365px)}}@media(max-width:760px){#characters .characters-list{gap:12px 7px}#characters .character-head{padding:3px 3px 1px;border-width:2px}#characters .character-head .portrait-wrap{width:clamp(32px,10vw,65px)}#characters .identity strong{font-size:15px}#characters .clue-card{padding:10px 4px 6px}#characters .clue-card>p{font-size:11px}}@media(min-width:900px){#characters .characters-list[data-rows="4"] .character-head .portrait-wrap{width:clamp(22px,calc(25cqh - 118px),95px)}}
