@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f4e6c4;--ink:#4a3424;--muted:#8b7657;--line:#c9af7a;--gold:#c89c4b;--green:#734b2d;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans','Trebuchet MS',sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font:15px var(--sans);color:var(--ink);background:#251d16}button,input,a{touch-action:manipulation}button{cursor:pointer;color:inherit;font:inherit}button:disabled{opacity:.5;cursor:default}button:hover{filter:brightness(1.08)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e9b65a;outline-offset:4px}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.game-shell{width:100%;height:100%;height:100dvh;position:relative;isolation:isolate;display:flex;flex-direction:column;background:#6a5f40}.game-topbar{height:76px;flex-shrink:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:linear-gradient(#493522,#30251b);color:#e4c58a;border-bottom:3px solid #b38d4b;box-shadow:0 4px 0 #3d2a1b,0 8px 20px #2114085c;position:relative}.game-topbar:after{content:'';position:absolute;left:10px;right:10px;top:7px;bottom:7px;border-top:1px solid #b58a4d55;border-bottom:1px solid #b58a4d55;pointer-events:none}.game-logo{border:0;background:none;color:#edd29b;text-align:left;padding:0;z-index:1}.game-logo>span{display:block;font-family:var(--serif);font-size:31px;letter-spacing:.2px}.game-logo i{font-size:25px;color:#ba8649}.game-logo small{display:block;letter-spacing:2.5px;font-size:7px;margin-top:2px;color:#bca47c}.location-title{display:flex;gap:20px;align-items:center;font-family:var(--serif);font-size:26px;text-align:center}.location-title small{display:block;font-family:var(--sans);font-size:9px;color:#bfa882;letter-spacing:1.3px;margin-top:3px}.location-diamond{font-size:10px;color:#b08c50}.top-controls{display:flex;align-items:center;gap:12px;z-index:1}.round-control{height:36px;width:36px;border:1px solid #917048;background:#302419;border-radius:50%;display:grid;place-items:center;position:relative;color:#d0b783}.round-control svg{width:17px;height:17px}.menu-control{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:1.4px;padding:10px 13px;background:linear-gradient(#916737,#5f4027);border:1px solid #b38a4c;color:#ffe6b1;box-shadow:inset 0 0 0 3px #33241850}.menu-control svg{width:19px;height:19px}.scene{position:relative;flex:1;min-height:0;isolation:isolate;overflow:hidden}.scene-world{position:absolute;inset:0}.scene-art{width:100%;height:100%;object-fit:cover;object-position:50% 53%;display:block}.scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#241b1326,transparent 35%,transparent 75%,#241b1326),linear-gradient(0deg,#33230e42,transparent 25%,transparent 80%,#33230e30)}.chapter-ribbon{position:absolute;top:28px;left:32px;padding:15px 20px 10px;background:linear-gradient(90deg,#312518dd,#493a27c9);border-left:3px solid #be934a;color:#edd49b;box-shadow:0 5px 16px #1d1b1520}.chapter-ribbon>span{font-size:8px;letter-spacing:2px;color:#c5aa7b}.chapter-ribbon h1{font-family:var(--serif);font-size:26px;line-height:1.12;font-weight:400;margin:8px 0}.ribbon-rule{color:#aa844c;font-size:8px;display:flex;align-items:center;gap:10px}.ribbon-rule:before,.ribbon-rule:after{content:'';height:1px;background:#ac885344;flex:1}.case-progress{position:absolute;top:31px;right:35px;background:#35281cdd;padding:11px 17px;border:1px solid #ae8c50;color:#e3c690;text-align:center;box-shadow:0 3px 12px #20170e35}.case-progress>span{font-size:8px;letter-spacing:2px;display:block}.case-progress strong{font-family:var(--serif);font-weight:400;font-size:28px;display:block;margin-top:2px}#progress-pips{display:flex;gap:5px;margin-top:6px}#progress-pips i{width:7px;height:7px;transform:rotate(45deg);border:1px solid #a58854}#progress-pips i.done{background:#d0ad68}.cast{position:absolute;inset:0;pointer-events:none;overflow:hidden}.character-sprite{position:absolute;bottom:-19%;height:114%;width:auto;max-width:48vw;object-fit:contain;object-position:bottom;filter:drop-shadow(8px 7px 1px #2b201526)}.vale-sprite{left:12%}.partner-sprite{right:9%;height:97%;bottom:-21%;filter:brightness(.93) drop-shadow(8px 7px 1px #2b201526)}.partner-speaking .vale-sprite{filter:brightness(.87) drop-shadow(8px 7px 1px #2b201526)}.partner-speaking .partner-sprite{filter:drop-shadow(8px 7px 1px #2b201526)}.hotspots{position:absolute;inset:0;visibility:hidden}.hotspot{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);padding:12px;background:none;border:0;color:#382718}.hotspot>span{height:44px;width:44px;border:2px solid #f9db93;outline:2px solid #724e2b;border-radius:50%;background:radial-gradient(circle at 35% 25%,#f1d38c,#bd8c3d);font:bold 28px Georgia,serif;box-shadow:0 2px 9px #33240c55}.hotspot label{white-space:nowrap;background:#33281ddd;color:#f2dba9;border:1px solid #ba9457;font-size:11px;padding:7px 11px;margin-top:10px;cursor:pointer;opacity:0}.hotspot:hover label,.hotspot:focus-visible label,.reveal .hotspot label{opacity:1}.hotspot:focus-visible{outline-offset:0}.hs-letter{left:61%;top:63%}.hs-book{left:23%;top:53%}.hs-clock{left:57%;top:18%}.hs-door{left:91%;top:54%}.scene-utilities{position:absolute;right:26px;bottom:23px;display:flex;gap:9px;z-index:2}.utility-button{display:flex;align-items:center;gap:8px;border:1px solid #be9a5d;background:#382a1ee8;color:#eed3a0;font-size:10px;padding:10px 13px;box-shadow:inset 0 0 0 2px #e6c48017}.utility-button svg{width:16px;height:16px}.explore-message{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);display:none;align-items:center;gap:10px;background:#35281ddc;border:1px solid #bd9b61;padding:12px 17px;color:#f0d6a1;font-size:12px;white-space:nowrap}.exploring .cast{display:none}.exploring .hotspots{visibility:visible}.exploring .chapter-ribbon{display:none}.exploring .explore-message{display:flex}.exploring .scene-utilities{bottom:auto;top:29px;left:27px;right:auto}.dialogue{z-index:5;flex-shrink:0;position:relative;margin:0 22px;min-height:195px;background:radial-gradient(ellipse at 50% 30%,#fff5d8 0,#ebd5a7 90%);border:3px solid #65462b;border-radius:8px;box-shadow:0 0 0 2px #e4bd71,0 0 0 5px #4b3422,0 -10px 25px #30221030,inset 0 0 0 5px #bc945a80;padding:32px 34px 17px;margin-top:-8px}.dialogue:before{content:'';position:absolute;inset:10px;border:1px solid #c1a171;border-radius:2px;pointer-events:none}.speaker-tab{position:absolute;top:-23px;left:32px;min-width:235px;padding:10px 27px 11px;color:#f3ddb0;background:linear-gradient(#8b6038,#5c3e28);border:2px solid #b58b4d;border-radius:5px 5px 0 0;font:19px Georgia,serif;box-shadow:0 2px 0 #53351c,0 -2px 0 #50371f}.dialogue-flourish{position:absolute;right:27px;top:16px;color:#ba955b;font-size:16px}.dialogue-main{display:flex;align-items:center;gap:25px;min-height:70px}.dialogue-main p{font-family:Georgia,serif;font-size:clamp(17px,1.55vw,23px);line-height:1.6;margin:0;flex:1;color:#4c3827}.dialogue-next{width:34px;height:44px;background:none;border:0;color:#9e743a;flex-shrink:0;font-size:21px;text-shadow:1px 1px #fff3ca}.dialogue-toolbar{margin-top:18px;padding-top:12px;border-top:1px solid #bd9a6155;display:flex;align-items:center;justify-content:space-between;gap:16px}.explore-toggle{display:flex;align-items:center;gap:9px;padding:8px 0;background:none;border:0;font-size:12px;font-weight:600;color:#785333}.explore-toggle svg{width:17px;height:17px}.dialogue-instruction{font-size:8px;letter-spacing:2px;color:#a08050}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;border:2px solid #77502d;background:linear-gradient(#b48447,#81542d);color:#fff1ca;box-shadow:inset 0 0 0 1px #d8b475,0 2px 0 #5a3b24;padding:12px 23px;font-weight:600;font-size:12px;min-height:44px;border-radius:4px}.primary-button svg{width:17px;height:17px}.game-status{height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 31px;background:#36281c;color:#a99169;font-size:8px;letter-spacing:.5px;padding-top:5px}.game-status button{border:0;background:none;color:#c2a476;font-size:9px}.secondary-button{display:inline-flex;align-items:center;gap:8px;background:#ead3a3;border:1px solid #ad864e;padding:12px 18px;color:#654326;text-decoration:none;font-size:12px}
dialog{width:min(730px,calc(100% - 30px));max-height:90vh;overflow:auto;padding:0;border:1px solid #b7ba9f;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #061a1690}dialog::backdrop{background:#142c23bb;backdrop-filter:blur(5px)}.modal-bar{position:sticky;top:0;z-index:5;background:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:14px 27px;border-bottom:1px solid var(--line);font-size:9px;letter-spacing:2px;color:#85876b}.modal-bar button{border:0;background:none;font-size:27px;line-height:1}#modal-content{padding:30px}.modal-title{font-family:var(--serif);font-weight:400;font-size:38px;margin:0 0 12px}.modal-intro{font-size:13px;line-height:1.9;color:#727b68;margin:0 0 23px}.puzzle-meta{display:flex;gap:14px;align-items:center;margin-bottom:12px;font-size:9px;letter-spacing:1.5px;color:var(--gold)}.puzzle-paper{border:1px solid #d5ceb7;background:#ece7d6;padding:23px;margin:20px 0;line-height:1.8;font-family:Georgia,serif;color:#65614a}.cipher{display:block;font-family:var(--sans);font-size:29px;letter-spacing:7px;text-align:center;color:#3c5142;margin:14px 0;font-weight:600}.alphabet{font-family:monospace;letter-spacing:2px;font-size:13px;text-align:center;overflow:auto;white-space:nowrap;color:#89816a}.field-label{display:block;font-size:12px;margin:16px 0 8px}input[type=text]{width:100%;padding:15px;border:1px solid #bec5ac;background:#fffef4;font:inherit;letter-spacing:2px;color:var(--ink)}.puzzle-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:20px}.secondary-button{border:1px solid #bdc4ad;background:transparent;padding:11px 16px;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--green);text-decoration:none}.hint{padding:14px;background:#e9e9d7;font-size:12px;line-height:1.7;margin-top:16px;border-left:3px solid #b5a16a}.feedback{font-size:12px;line-height:1.7;padding-top:14px;color:#8c4635;min-height:20px}.choice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #d2d7c5;background:#eeeee2;margin:10px 0;cursor:pointer;line-height:1.65;font-size:12px}.choice input{accent-color:var(--green);margin:4px 0 0;flex-shrink:0}.choice:has(input:checked){background:#e0e5d5;border-color:#7e9169}.choice strong{display:block;font-weight:600}.choice small{display:block;color:#818571;font-size:10px}.binary-row{display:flex;justify-content:center;gap:14px}.bit{text-align:center}.bit small{display:block;margin-bottom:8px;color:#96927a;font-family:var(--sans)}.bit button{width:54px;height:60px;background:#fff8e5;border:1px solid #c4bd9c;font-family:var(--serif);font-size:34px}.bit button.on{background:#34513d;color:#f4eacc}.binary-total{text-align:center;font:12px var(--sans);padding-top:18px}.success-mark{width:61px;height:61px;border:1px solid #a8b492;border-radius:50%;display:grid;place-items:center;color:#62744c;background:#e2e8d8;margin:3px 0 20px}.success-mark svg{width:30px;height:30px}.learning{padding:20px;border:1px solid #d7dcca;background:#e9edde;margin:22px 0}.learning>strong{font-size:10px;letter-spacing:1.4px;color:#748458}.learning p{font-size:13px;line-height:1.8;margin:9px 0 0}.evidence-list{display:grid;gap:14px}.evidence-card{border:1px solid #d6d9c9;padding:17px;display:flex;gap:15px;align-items:flex-start;background:#edeee1}.evidence-card .evidence-icon{font-size:27px}.evidence-card h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 6px}.evidence-card p{font-size:12px;line-height:1.7;color:#7b826d;margin:0}.empty-note{text-align:center;padding:40px 20px;border:1px dashed #c4c9b5;color:#858c75;line-height:1.8}.character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.character-card{border:1px solid #d2d4bf;background:#e8e7d8;overflow:hidden}.character-art{aspect-ratio:.5;background-image:url('assets/personajes.png');background-size:300% 100%;background-repeat:no-repeat}.character-art.iris{background-position:50% 0}.character-art.ada{background-position:100% 0}.character-info{padding:13px}.character-info h3{font-family:var(--serif);font-size:24px;font-weight:400;margin:0 0 5px}.character-info small{font-size:8px;letter-spacing:1px;color:#98804d}.character-info p{font-size:10px;line-height:1.7;color:#757a66}.asset-download{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}.map-art{position:relative;height:250px;background:linear-gradient(#18342755,#18342788),url('assets/meridian-street.png') center/cover;border:5px solid #e9e4d3;display:flex;align-items:flex-end;padding:20px;color:#fff1cb;font-family:var(--serif);font-size:29px}.map-list{list-style:none;padding:0;display:grid;gap:8px}.map-list button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px;background:#eaeddf;border:1px solid #d5dcc6;text-align:left;font-size:12px}.map-list small{font-size:9px;color:#879178}.log-table{width:100%;border-collapse:collapse;font:11px var(--sans)}.log-table td,.log-table th{text-align:left;padding:9px;border-bottom:1px solid #c9c6b2}.log-table th{color:#4e5f43}.log-table code{font-size:10px}.medal{font-size:50px;color:var(--gold);margin-bottom:10px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.profile-stats div{border:1px solid var(--line);padding:20px;text-align:center}.profile-stats strong{display:block;font-family:var(--serif);font-size:35px}.profile-stats small{font-size:10px;color:#8a8f7b}.help-steps{padding-left:20px;font-size:13px;line-height:2.2;color:#737d65}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,25px);opacity:0;pointer-events:none;transition:.2s;background:#284936;color:#f6ecd2;padding:15px 24px;font-size:12px;z-index:10;max-width:calc(100% - 28px);box-shadow:0 3px 20px #182d2640}#toast.visible{opacity:1;transform:translate(-50%,0)}
/* Game screens: parchment puzzles, brass controls and cel character sprites. */
dialog{border:4px solid #6e4c2f;border-radius:7px;width:min(960px,94vw);max-height:94dvh;background:radial-gradient(ellipse at 40% 20%,#fbefcf,#dec08a);box-shadow:0 0 0 2px #d8ad66,0 20px 100px #171008a0;color:#513b27}dialog::backdrop{background:#26190ac9;backdrop-filter:blur(3px)}.modal-bar{background:linear-gradient(#62452b,#3f2b1d);color:#ddbd83;border-bottom:3px solid #a98447;min-height:57px;position:sticky;font-size:11px;letter-spacing:2px;padding:12px 25px}.modal-bar button{display:flex;align-items:center;gap:10px;color:#ead1a3}.modal-bar button>span{font:11px var(--sans);letter-spacing:0}#modal-content{padding:35px 40px}.modal-title{font-size:44px;color:#513b27}.modal-intro{color:#735a3b;font-size:14px;line-height:1.85}.puzzle-meta{color:#9c6939;font-size:10px;letter-spacing:1.5px}.puzzle-paper{background:linear-gradient(135deg,#fff6d9,#e6c992);border:2px solid #bc9863;box-shadow:inset 0 0 0 4px #f7e7bf,2px 4px 0 #b6915c38;padding:25px;color:#715435}.puzzle-paper p{margin-bottom:0}.cipher{color:#653f25;letter-spacing:10px;font-size:40px;padding:10px 0}.alphabet{color:#97784a;font-size:14px}.field-label{font-size:14px;color:#725435}.puzzle-screen input[type=text]{border:2px solid #a8824b;background:#fff8df;padding:17px;font-size:20px;color:#4c3623;border-radius:3px}.primary-button{background:linear-gradient(#ac7c42,#78502e);border:2px solid #6a482a;color:#fff0c8;padding:12px 23px;font-size:12px;border-radius:4px;box-shadow:inset 0 0 0 1px #d1ac6c,0 2px 0 #51351f}.secondary-button{border:1px solid #ad8851;color:#795633;background:#ecd6a8;border-radius:3px;font-size:12px;padding:12px 16px}.choice{border:1px solid #bca16a;background:#f2e3bd;color:#644b31;font-size:13px;padding:15px;border-radius:3px;box-shadow:inset 0 0 0 3px #f9edcd}.choice small{color:#967b53;font-size:11px}.choice:has(input:checked){background:#dfca95;border:2px solid #94703a;padding:14px;box-shadow:inset 0 0 0 3px #eddcb7}.choice input{accent-color:#8a5b2d;width:16px;height:16px}.puzzle-actions{gap:15px;margin-top:22px}.hint{background:#ebd6a2;border-left:3px solid #ae7b3c;color:#78522b}.feedback{color:#9c432f}.learning{background:#ecdbb1;border:1px solid #c6a269;box-shadow:inset 0 0 0 3px #f7e8c7;color:#705234;padding:22px}.learning>strong{color:#99723e}.learning p{font-size:14px}.success-mark{background:#d8dcaf;border:2px solid #91945e;color:#657440}.bit button{background:#f9e6b7;border:2px solid #ae8449;color:#7e5930;box-shadow:0 3px 0 #9b743d}.bit button.on{background:#755236;color:#ffe5a5}.bit small{color:#957745}.binary-total{color:#87683d}.log-table{font-size:12px}.log-table th{color:#775330}.log-table td,.log-table th{border-color:#d3b87e}.log-table caption{font:italic 13px Georgia,serif;margin-bottom:12px}.evidence-card{background:#f0dfb8;border-color:#c6ab74}.evidence-card p{color:#8b6d43}.empty-note{color:#8c6e45;border-color:#bf9d60}.character-card{background:linear-gradient(#d0b88c,#ede0bc);border-color:#aa8752}.character-art{background-image:url('assets/vale-v2.png');background-size:contain;background-position:center bottom!important;aspect-ratio:2/3;background-repeat:no-repeat}.character-art.iris{background-image:url('assets/iris-v2.png')}.character-art.ada{background-image:url('assets/ada-v2.png')}.character-info{background:#f1e1bb}.character-info h3{color:#63492c}.character-info p{color:#8c6f47;font-size:11px}.map-art{background:linear-gradient(transparent,#372615b0),url('assets/vigo-casco-vello.png') center/cover;border-color:#bf9a60;height:270px}.map-list button{background:#f0dfb5;border-color:#c5a96e;color:#6c4d2c}.map-list small{color:#967848}.profile-stats div{border-color:#c5a169}.profile-stats small{color:#957947}.help-steps{color:#81643e}.medal{color:#ae7e3b}#toast{background:#513c26;color:#f7e3b6;border:1px solid #c39a55;bottom:35px;z-index:20;line-height:1.6}#modal.puzzle-screen,#modal.result-screen{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0;box-shadow:none;background:radial-gradient(ellipse at 20% 30%,#fbefcf 0,#efdaab 55%,#dbc08d 100%)}.puzzle-screen:after,.result-screen:after{content:'';position:fixed;inset:70px 16px 15px;border:1px solid #b5955a70;pointer-events:none}.puzzle-screen .modal-bar,.result-screen .modal-bar{height:62px}.puzzle-screen #modal-content{max-width:1340px;margin:auto;padding:65px 65px 45px;display:grid;grid-template-columns:.85fr 1.15fr;grid-template-rows:auto auto 1fr;column-gap:75px;align-items:start;position:relative;min-height:calc(100dvh - 62px)}.puzzle-screen .puzzle-meta{grid-column:1;grid-row:1;margin-top:24px;margin-bottom:25px;line-height:1.7}.puzzle-screen .modal-title{grid-column:1;grid-row:2;font-size:clamp(42px,4.3vw,64px);line-height:1.06;padding-bottom:28px;border-bottom:1px solid #bba16f8c;margin-bottom:23px}.puzzle-screen .modal-intro{grid-column:1;grid-row:3;font:19px/1.8 Georgia,serif;color:#795c36}.puzzle-screen #puzzle-form{grid-column:2;grid-row:1/4;align-self:center;padding:0 0 15px;min-width:0}.puzzle-screen #puzzle-form:before{content:'RÉSOLVEZ L’ÉNIGME';display:none}.puzzle-screen .puzzle-paper:first-child{margin-top:0}.result-screen #modal-content{max-width:900px;margin:auto;padding:45px 60px}.result-screen .modal-title{font-size:58px}.result-screen .success-mark{margin:0 auto 20px}.result-screen .puzzle-meta{justify-content:center}.result-screen .modal-title{text-align:center}.result-screen .primary-button{display:flex;margin:auto}.menu-heading{text-align:center}.menu-heading>span{color:#ad8041;font-size:25px}.menu-heading h2{font-size:51px;margin:10px 0 0}.menu-heading p{font-size:12px;color:#947448;margin-top:6px}.game-menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:28px 0}.game-menu-grid button{display:grid;grid-template-columns:40px 1fr;align-items:center;column-gap:13px;text-align:left;padding:20px;border:2px solid #b38c54;border-radius:3px;background:linear-gradient(#f8eac8,#e5c992);box-shadow:inset 0 0 0 3px #f2dfb6;color:#71502c}.game-menu-grid svg{grid-row:span 2;height:30px;width:30px}.game-menu-grid strong{font-family:var(--serif);font-size:29px;font-weight:400}.game-menu-grid small{font-size:10px;color:#a1804e;margin-top:5px}.menu-objective{text-align:center;border-top:1px solid #c6a975;padding-top:20px}.menu-objective>span{font-size:9px;letter-spacing:2px;color:#9c7b44}.menu-objective p{font-family:Georgia,serif;font-size:17px;color:#745431}#resume-game{display:flex;margin:22px auto 0}.game-shell:fullscreen{height:100vh}
@media(min-aspect-ratio:2/1){.character-sprite{height:120%;bottom:-24%;left:17%}.partner-sprite{height:108%;left:auto;right:14%;bottom:-26%}.chapter-ribbon{top:20px}.dialogue{min-height:165px;padding-top:24px}.dialogue-main{min-height:50px}.dialogue-toolbar{margin-top:12px;padding-top:8px}.game-topbar{height:65px}}
@media(max-width:1000px){.game-topbar{padding:0 20px;height:68px}.game-logo>span{font-size:26px}.game-logo small{font-size:6px;letter-spacing:1.7px}.location-title{font-size:22px;gap:11px}.location-title small{font-size:8px;letter-spacing:.5px}.top-controls{gap:8px}.chapter-ribbon{top:20px;left:23px;padding:12px 15px 8px}.chapter-ribbon h1{font-size:23px}.chapter-ribbon>span{font-size:7px}.case-progress{right:23px;top:23px;padding:10px 12px}.vale-sprite{left:4%;height:104%;bottom:-11%}.partner-sprite{right:2%;height:91%;bottom:-14%}.dialogue{margin-left:15px;margin-right:15px;padding:28px 23px 15px;min-height:190px}.dialogue-main p{font-size:18px}.dialogue-instruction{font-size:7px;letter-spacing:1px}.speaker-tab{left:24px;min-width:210px;font-size:17px;padding:9px 24px}.scene-utilities{right:17px;bottom:21px}.puzzle-screen #modal-content{column-gap:30px;padding:40px 36px}.puzzle-screen .modal-title{font-size:44px}.puzzle-screen .modal-intro{font-size:17px}.puzzle-paper{padding:20px}.cipher{font-size:32px;letter-spacing:7px}.choice{font-size:12px}.puzzle-actions .primary-button{padding:12px 15px}.puzzle-actions .secondary-button{padding:12px}.game-menu-grid strong{font-size:25px}}
@media(max-width:650px){.game-topbar{height:62px;padding:0 14px}.game-logo>span{font-size:26px}.game-logo small{font-size:5px;letter-spacing:1.4px}.location-title{display:none}.top-controls{gap:7px}.round-control{width:32px;height:32px}.menu-control{padding:8px;font-size:8px;gap:6px}.menu-control svg{width:16px;height:16px}.chapter-ribbon{top:15px;left:13px;padding:10px 12px 7px}.chapter-ribbon h1{font-size:21px}.chapter-ribbon>span{font-size:6px;letter-spacing:1.2px}.case-progress{top:17px;right:15px;padding:8px 10px}.case-progress strong{font-size:24px}.case-progress>span{font-size:6px}.character-sprite{height:87%;bottom:-9%;left:-12%;max-width:75vw}.partner-sprite{height:73%;bottom:-11%;left:auto;right:-15%;max-width:69vw}.scene-art{object-position:51% 50%}.scene-utilities{right:13px;bottom:25px;gap:6px}.utility-button{padding:8px;font-size:8px;gap:5px}.utility-button svg{width:14px;height:14px}.dialogue{min-height:220px;margin:0 9px;padding:28px 18px 13px;border-width:2px;margin-top:-7px}.speaker-tab{left:17px;min-width:184px;top:-21px;font-size:15px;padding:9px 20px}.dialogue-main{gap:8px;min-height:100px}.dialogue-main p{font-size:16px;line-height:1.5}.dialogue-next{width:22px;font-size:17px}.dialogue-flourish{top:14px;right:16px;font-size:12px}.dialogue-instruction{display:none}.dialogue-toolbar{gap:8px;margin-top:12px;padding-top:10px}.explore-toggle{font-size:10px;gap:5px;max-width:130px;text-align:left}.explore-toggle svg{width:15px}.primary-button{padding:10px 12px;font-size:10px;gap:8px;min-height:40px}.primary-button svg{width:14px}.game-status{height:24px;padding:3px 15px 0;font-size:6px}.game-status button{font-size:8px}.explore-message{bottom:26px;max-width:90%;white-space:normal;width:max-content;padding:10px 12px;font-size:10px}.exploring .scene-utilities{top:19px;left:14px}.hotspot>span{width:36px;height:36px;font-size:24px}.hotspot label{font-size:9px;padding:6px}.hs-book{left:13%;top:49%}.hs-letter{left:73%;top:67%}.hs-clock{left:61%;top:22%}.hs-door{left:89%;top:45%}#modal-content{padding:25px 22px}.modal-bar{padding:12px 17px;letter-spacing:1px;font-size:9px}.modal-title{font-size:34px}.modal-intro{font-size:13px}.puzzle-screen #modal-content{display:block;padding:30px 27px 35px;min-height:0}.puzzle-screen .puzzle-meta{margin:0 0 12px;font-size:8px}.puzzle-screen .modal-title{font-size:38px;padding-bottom:15px;margin-bottom:15px}.puzzle-screen .modal-intro{font-size:15px;line-height:1.7}.puzzle-screen .modal-bar{height:55px}.puzzle-screen:after,.result-screen:after{inset:65px 10px 10px}.puzzle-screen #puzzle-form{padding:5px 0 15px}.puzzle-screen .puzzle-paper{padding:17px}.cipher{font-size:30px;letter-spacing:6px}.alphabet{font-size:11px;letter-spacing:1px}.puzzle-paper p{font-size:13px}.choice{font-size:12px;padding:12px}.choice:has(input:checked){padding:11px}.choice small{font-size:10px}.puzzle-screen input[type=text]{font-size:17px;padding:13px}.puzzle-actions{gap:9px}.puzzle-actions .primary-button{padding:12px 17px}.puzzle-actions .secondary-button{font-size:11px}.bit button{width:48px;height:54px}.binary-row{gap:12px}.log-table{font-size:10px}.log-table td,.log-table th{padding:7px 4px}.result-screen #modal-content{padding:30px 27px}.result-screen .modal-title{font-size:42px}.result-screen .learning{padding:17px}.learning p{font-size:12px}.character-grid{grid-template-columns:1fr}.character-card{display:grid;grid-template-columns:105px 1fr;align-items:stretch}.character-art{aspect-ratio:2/3;align-self:end}.character-info{padding:15px}.character-info h3{font-size:25px}.character-info p{font-size:12px}.asset-download{gap:8px}.asset-download a{font-size:10px;padding:10px}.game-menu-grid{gap:10px;margin:20px 0}.game-menu-grid button{padding:15px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}.game-menu-grid svg{width:25px;height:25px}.game-menu-grid strong{font-size:23px}.game-menu-grid small{font-size:8px;margin-top:0}.menu-heading h2{font-size:40px}.menu-heading p{font-size:10px}.menu-objective p{font-size:15px}.map-art{height:190px;font-size:26px}.map-list button{font-size:11px;padding:13px 11px;gap:10px}.map-list small{font-size:8px}.profile-stats{gap:7px}.profile-stats div{padding:12px 5px}.profile-stats small{font-size:8px}.evidence-card{gap:10px;padding:12px}.evidence-card .evidence-icon{font-size:21px}.evidence-card .learning{padding:12px}.evidence-card h3{font-size:24px}#toast{font-size:10px;padding:12px 16px;bottom:30px}}
@media(max-height:600px) and (min-width:651px){.game-topbar{height:53px}.game-logo>span{font-size:25px}.game-logo small{display:none}.location-title{font-size:22px}.location-title small{font-size:7px}.dialogue{min-height:137px;padding:23px 24px 10px;margin-top:-4px}.dialogue-main{min-height:40px}.dialogue-main p{font-size:15px;line-height:1.4}.dialogue-toolbar{margin-top:8px;padding-top:6px}.primary-button{min-height:33px;padding:7px 14px;font-size:10px}.explore-toggle{font-size:10px;padding:6px 0}.speaker-tab{top:-19px;padding:7px 20px;font-size:15px;min-width:190px}.game-status{height:20px;font-size:6px;padding-top:2px}.chapter-ribbon{top:15px;padding:9px 13px}.chapter-ribbon h1{font-size:19px}.chapter-ribbon>span{font-size:6px}.case-progress{top:15px;padding:7px 10px}.case-progress strong{font-size:22px}.case-progress>span{font-size:6px}.scene-utilities{bottom:17px}.character-sprite{height:125%;bottom:-28%;left:18%}.partner-sprite{height:112%;bottom:-30%;right:14%;left:auto}.puzzle-screen #modal-content{padding:28px 40px;column-gap:35px}.puzzle-screen .puzzle-meta{margin-top:0;margin-bottom:13px}.puzzle-screen .modal-title{font-size:38px;padding-bottom:15px;margin-bottom:15px}.puzzle-screen .modal-intro{font-size:14px;line-height:1.7}.puzzle-paper{padding:17px}.cipher{font-size:29px;padding:0}.puzzle-screen input[type=text]{padding:10px;font-size:17px}.puzzle-actions{margin-top:14px}.choice{padding:10px;font-size:11px}.choice:has(input:checked){padding:9px}.choice small{font-size:9px}.choice strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.scene-canvas{position:relative;width:100%;height:100%}.scene-world{scrollbar-width:none}.scene-world::-webkit-scrollbar{display:none}.exploring .scene-world{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.exploring .scene-art{object-position:50% 53%}
/* Unobstructed scene: retain only the requested floating controls. */
.top-controls{position:absolute;top:max(18px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));z-index:8;gap:12px;filter:drop-shadow(0 2px 4px #21160b55)}
.top-controls .round-control{background:#302419dc}
.dialogue{min-height:0;padding:32px 34px 24px}
.dialogue-main{min-height:78px}
@media(max-width:1000px){.dialogue{min-height:0;padding:28px 23px 21px}.top-controls{top:16px;right:20px}}
@media(max-width:650px){.top-controls{top:max(13px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));gap:8px}.dialogue{min-height:0;padding:28px 18px 20px}.dialogue-main{min-height:90px}}
@media(max-height:600px) and (min-width:651px){.top-controls{top:12px;right:17px}.dialogue{min-height:0;padding:23px 24px 16px}.dialogue-main{min-height:45px}}
/* The received letter and its unnamed brass object. */
.letter-and-object{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;margin-bottom:25px}.cesar-letter{padding:26px 28px;background:linear-gradient(115deg,#fff6dc,#efdab0);border:1px solid #b89c67;box-shadow:2px 4px 0 #7c54271a;color:#674a2f;font:15px/1.7 Georgia,serif}.cesar-letter p{margin:0 0 13px}.cesar-letter .letter-date{font:11px var(--sans);color:#9b7a49;text-align:right;margin-bottom:22px}.cesar-letter .letter-signature{font:italic 31px Georgia,serif;text-align:right;margin:19px 5px 0;color:#69482c}.cesar-letter .cipher{font-size:26px;letter-spacing:6px;margin:10px 0;padding:0}.object-panel>p{font:13px/1.7 Georgia,serif;color:#92713f;text-align:center;margin:22px 0}.brass-device{display:flex;flex-direction:column;align-items:center;gap:10px;margin:10px auto 20px}.brass-wheel{width:min(260px,100%);height:auto;aspect-ratio:1;flex-shrink:1;filter:drop-shadow(2px 5px 3px #68482022)}.brass-wheel text{fill:#55391e;stroke:none;font-family:Georgia,serif;font-weight:600}.wheel-controls{display:flex;align-items:center;gap:20px}.wheel-controls button{font-size:25px;width:42px;height:38px;min-height:0;padding:0;line-height:1}.wheel-controls output{font:20px Georgia,serif;min-width:75px;text-align:center;color:#825c2b}.brass-device>small{font-size:10px;color:#977746;text-align:center}.letter-fold{margin:0 0 15px}.letter-fold summary{cursor:pointer;color:#8b6134;font-size:12px;padding:11px 13px;border:1px solid #c1a06b;background:#f4e2bc}.letter-fold .cesar-letter{margin-top:10px;font-size:13px}.compact-cipher{padding:12px 20px!important;margin:12px 0!important;text-align:center}.compact-cipher .cipher{padding:0;margin:5px 0;font-size:29px;letter-spacing:7px}.compact-cipher p{font:12px/1.5 var(--sans);margin-top:8px}.letter-menu-link{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;margin:18px 0;background:#efdab0;border:1px solid #b78e54;font:13px var(--sans);color:#795430}#letter-puzzle{display:flex;margin:20px auto 0}.puzzle-screen:has(#brass-object) #modal-content{padding-top:35px;padding-bottom:30px}.puzzle-screen #brass-object .brass-wheel{width:215px}.puzzle-screen #brass-object .brass-device{margin:8px auto 12px;gap:7px}
@media(max-width:650px){.letter-and-object{display:block}.cesar-letter{padding:21px 19px;font-size:14px}.object-panel{margin-top:25px}.brass-wheel{width:235px}.puzzle-screen #brass-object .brass-wheel{width:210px}.letter-menu-link{font-size:11px;padding:12px}.puzzle-screen:has(#brass-object) #modal-content{padding-top:27px}.object-panel>p{font-size:12px}.letter-fold summary{font-size:11px}}
/* Dialogue geometry stays constant across short and long lines. */
/* Illustrated evidence desk. Lettering stays live and accessible over the prop art. */
dialog.letter-screen{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;background:radial-gradient(ellipse at 33% 30%,#3d5549 0%,#233e35 48%,#142a25 100%);color:#f2dfb7;box-shadow:none;scrollbar-color:#ad8c54 #203b32}
.letter-screen .modal-bar{background:#142a25eb;border-bottom:1px solid #b897554a;color:#d3ba89;min-height:60px;padding:12px 30px;letter-spacing:3px}
.letter-screen #modal-content{max-width:1200px;margin:auto;padding:32px 45px 40px}
.letter-screen .letter-and-object{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:65px;align-items:center;margin:0;min-height:calc(100dvh - 132px)}
.letter-evidence{filter:drop-shadow(7px 17px 13px #08191480);transform:rotate(-1deg)}
.cesar-letter{position:relative;border:0;box-shadow:none;background:url('assets/carta-cesar.png') center/100% 100% no-repeat;padding:44px 42px 69px;color:#513a28;font:italic 16px/1.65 Georgia,serif}
.cesar-letter p{margin-bottom:14px}
.cesar-letter .letter-date{font:11px/1.5 var(--sans);letter-spacing:.4px;color:#806244;margin-bottom:25px}
.cesar-letter .letter-signature{font:italic 37px Georgia,serif;margin-top:17px;margin-right:12px;color:#503523}
.cesar-letter .cipher{display:block;text-align:center;font:24px/1.4 Georgia,serif;letter-spacing:7px;margin:17px 0 20px;color:#7e352d}
.object-panel{text-align:center;min-width:0}
.object-eyebrow{font:10px var(--sans);letter-spacing:3px;color:#c7ae7c}
.object-panel h2{font:48px/1.05 var(--serif);font-weight:400;color:#f2dfb7;margin:14px 0}
.letter-screen .object-description{font:14px/1.7 Georgia,serif;color:#cabd9f;margin:15px 0 7px}
.brass-wheel{width:min(330px,100%);filter:drop-shadow(0 10px 9px #21180a44)}
.brass-wheel text{fill:#472b17;font-weight:600;paint-order:stroke;stroke:#f7d98b66;stroke-width:.5px}
.letter-screen .brass-wheel{width:min(365px,100%);filter:drop-shadow(4px 14px 12px #07171099)}
.letter-screen .brass-device{margin:10px auto 0;gap:13px}
.wheel-controls{gap:25px}
.wheel-controls button{width:46px;height:44px;border-radius:50%;font-size:27px;display:grid;place-items:center;box-shadow:0 3px 0 #2b231c33}
.wheel-readout{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:94px}
.wheel-readout>span{font:8px var(--sans);letter-spacing:2px;color:#92713f}
.wheel-controls output{font:24px Georgia,serif;color:#684923}
.letter-screen .wheel-controls button{background:linear-gradient(#d3b16f,#a77b3e);color:#30271a;border:1px solid #ecd094;box-shadow:0 3px 0 #0e2019}
.letter-screen .wheel-controls output{color:#f1deb5}
.letter-screen .wheel-readout>span,.letter-screen .brass-device>small{color:#b9b69b}
.brass-device>small{font-size:11px;line-height:1.5}
.letter-screen .object-clue{color:#e2c48b;font:italic 17px Georgia,serif;margin:23px 0 0}
.letter-screen #letter-puzzle{margin:24px auto 0;font-size:13px;padding:15px 27px;min-height:48px;background:linear-gradient(#c39b58,#8c612f);color:#fff0ce;border-color:#ddbb7e;box-shadow:0 3px 0 #0a1c17,inset 0 0 0 2px #6f492e}
.letter-fold .cesar-letter{padding:30px 28px 55px}
.puzzle-screen #brass-object .brass-wheel{width:260px}
@media(min-width:1001px) and (min-height:850px){.letter-screen .cesar-letter{font-size:18px;padding:48px 44px 80px}.letter-screen .letter-and-object{gap:80px}.letter-screen .brass-wheel{width:350px}}
@media(max-width:1000px){.letter-screen #modal-content{padding:25px 25px 32px}.letter-screen .letter-and-object{gap:25px}.letter-screen .cesar-letter{padding:35px 29px 65px;font-size:15px}.object-panel h2{font-size:39px}.letter-screen .object-description{font-size:13px}}
@media(max-width:700px){.letter-screen .modal-bar{padding:10px 18px;letter-spacing:1.7px}.letter-screen #modal-content{padding:23px 14px 35px}.letter-screen .letter-and-object{display:flex;flex-direction:column;gap:30px;min-height:0}.letter-evidence{width:100%;max-width:490px;transform:none}.letter-screen .cesar-letter{padding:36px 31px 69px;font-size:16px;line-height:1.65}.letter-screen .object-panel{width:100%;max-width:420px;margin:0}.object-panel h2{font-size:42px}.letter-screen .brass-wheel{width:min(350px,100%)}.letter-screen .object-description{font-size:14px}.letter-fold .cesar-letter{padding:27px 22px 52px}.puzzle-screen #brass-object .brass-wheel{width:250px}}
@media(max-width:370px){.letter-screen .cesar-letter{padding:30px 26px 62px;font-size:15px}.letter-screen .cesar-letter .letter-date{font-size:10px}}
.game-shell{--dialogue-height:180px}
.dialogue{height:var(--dialogue-height);min-height:var(--dialogue-height);max-height:var(--dialogue-height);flex:0 0 var(--dialogue-height)}
.dialogue-main{height:100%;min-height:0}
.dialogue-main p{min-width:0;max-height:100%;overflow-y:auto;overflow-wrap:anywhere;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#af8a50 transparent;padding-right:5px}
@media(max-width:650px){.game-shell{--dialogue-height:220px}}
@media(max-height:600px) and (min-width:651px){.game-shell{--dialogue-height:140px}}

@media(min-width:701px) and (max-height:800px){.letter-screen #modal-content{padding-top:22px;padding-bottom:22px}.letter-screen .letter-and-object{min-height:calc(100dvh - 104px)}.letter-screen .brass-wheel{width:280px}.letter-screen .object-panel h2{font-size:36px;margin:10px 0}.letter-screen .object-description{margin:10px 0 5px}.letter-screen .object-clue{margin-top:16px}.letter-screen #letter-puzzle{margin-top:18px}}

/* Fit both pieces of evidence into the available viewport as one composition. */
dialog.letter-screen[open]{display:flex;flex-direction:column;overflow:hidden}
.letter-screen .modal-bar{position:relative;flex:0 0 52px;min-height:52px;padding:8px 22px}
.letter-screen #modal-content{position:relative;flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:0;overflow:hidden}
.letter-screen .letter-and-object{position:absolute;left:50%;top:50%;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:44px;min-height:0;margin:0;transform:translate(-50%,-50%) scale(var(--evidence-scale,1));transform-origin:center}
.letter-screen .letter-evidence{width:auto;max-width:none;transform:none}
.letter-screen .cesar-letter{padding:42px 38px 65px;font-size:18px;line-height:1.55}
.letter-screen .object-panel{width:auto;max-width:none;margin:0}
.letter-screen .object-panel h2{font-size:42px;margin:12px 0}
.letter-screen .object-description{font-size:14px;margin:12px 0 5px}
.letter-screen .brass-wheel{width:330px;max-width:100%}
.letter-screen .brass-device{gap:10px;margin:8px auto 0}
.letter-screen .object-clue{margin-top:18px}
.letter-screen #letter-puzzle{margin:20px auto 0;padding:13px 24px}
.letter-screen .letter-and-object.is-portrait{display:flex;flex-direction:column;gap:12px}
.letter-screen .is-portrait .letter-evidence{width:100%}
.letter-screen .is-portrait .cesar-letter{padding:30px 30px 52px;font-size:16px;line-height:1.45}
.letter-screen .is-portrait .cesar-letter p{margin-bottom:11px}
.letter-screen .is-portrait .letter-date{font-size:11px;margin-bottom:17px}
.letter-screen .is-portrait .letter-signature{font-size:31px;margin-top:12px}
.letter-screen .is-portrait .cipher{font-size:23px;margin:12px 0}
.letter-screen .is-portrait .object-panel{width:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;column-gap:10px;align-items:center}
.letter-screen .is-portrait #brass-object,.letter-screen .is-portrait .brass-device{display:contents}
.letter-screen .is-portrait .object-eyebrow,.letter-screen .is-portrait .object-description,.letter-screen .is-portrait .object-clue,.letter-screen .is-portrait .brass-device>small{display:none}
.letter-screen .is-portrait .brass-wheel{width:100%;grid-column:1;grid-row:1 / 4}
.letter-screen .is-portrait .object-panel h2{grid-column:2;grid-row:1;font-size:26px;line-height:1.05;margin:0 0 7px}
.letter-screen .is-portrait .wheel-controls{grid-column:2;grid-row:2;gap:8px;justify-content:center}
.letter-screen .is-portrait .wheel-controls button{width:42px;height:42px;font-size:24px}
.letter-screen .is-portrait .wheel-readout{min-width:62px}
.letter-screen .is-portrait .wheel-readout output{min-width:62px;font-size:21px}
.letter-screen .is-portrait #letter-puzzle{grid-column:2;grid-row:3;font-size:12px;min-height:42px;margin:10px auto 0;padding:10px 12px;gap:7px;white-space:nowrap}

/* The letter itself explains the puzzle; only its tools remain on the desk. */
.letter-screen .modal-bar{display:none}
.letter-screen .letter-and-object{top:calc(50% + 32px)}


.letter-screen .brass-wheel{width:420px}
.letter-screen .brass-device{gap:16px;margin:0 auto 23px}
.letter-screen .wheel-controls{gap:36px}
.letter-screen .wheel-controls button{width:54px;height:54px;border:1px solid #d3b77a;border-radius:50%;background:radial-gradient(circle at 35% 20%,#e0c68a,#b48d4f 65%,#896132);box-shadow:inset 0 0 0 3px #73522b55,inset 0 0 0 4px #ead49a66,0 4px 0 #10251c,0 6px 12px #0c1c1844;transition:transform .15s,box-shadow .15s;color:#513718}
.letter-screen .wheel-controls button:hover{transform:translateY(-2px)}
.letter-screen .wheel-controls button:active{transform:translateY(2px);box-shadow:inset 0 0 0 3px #73522b55,0 1px 0 #10251c}
.wheel-controls button svg{width:27px;height:27px;stroke-width:2;fill:none}
#letter-answer-form{width:100%;max-width:430px;margin:0 auto}
.letter-answer-row{display:flex;align-items:stretch;gap:10px}
.letter-answer-row input[type=text]{min-width:0;flex:1;width:0;border:1px solid #b89861;border-radius:4px;background:#fbefcf;color:#493726;font:17px Georgia,serif;letter-spacing:1px;padding:13px 15px;box-shadow:inset 0 2px 5px #6b4a2222}
.letter-answer-row input::placeholder{color:#917955;font-style:italic;letter-spacing:0}
.letter-answer-row .primary-button{min-height:48px;padding:12px 18px;font-size:13px;gap:9px;white-space:nowrap;background:linear-gradient(#c39b58,#8c612f);color:#fff0ce;border-color:#ddbb7e;box-shadow:0 3px 0 #0a1c17,inset 0 0 0 2px #6f492e}
.letter-screen .feedback{color:#f1c994;min-height:42px;padding-top:12px;font-size:12px;line-height:1.5;text-align:center}
.letter-screen .is-portrait .object-panel{grid-template-columns:1.05fr 1fr;grid-template-rows:auto auto;gap:8px 12px}
.letter-screen .is-portrait .brass-wheel{grid-column:1;grid-row:1 / 3;width:100%}
.letter-screen .is-portrait .wheel-controls{grid-column:2;grid-row:1;gap:20px;align-self:end}
.letter-screen .is-portrait .wheel-controls button{width:46px;height:46px}
.letter-screen .is-portrait #letter-answer-form{grid-column:2;grid-row:2;align-self:start}
.letter-screen .is-portrait .letter-answer-row{flex-direction:column;gap:8px}
.letter-screen .is-portrait .letter-answer-row input[type=text]{flex:none;width:100%;font-size:16px;padding:10px 12px}
.letter-screen .is-portrait .letter-answer-row .primary-button{justify-content:center;min-height:40px;padding:9px 12px;font-size:12px}
.letter-screen .is-portrait .feedback{font-size:11px;min-height:42px;padding-top:8px}

/* Navigation shares the exact round control treatment used by fullscreen. */
#story-back,#letter-back{position:absolute;z-index:9;top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left))}
#story-back,#letter-back,#close-modal{background:#302419dc;padding:0;box-shadow:none}
#story-back svg,#letter-back svg,#close-modal svg{transform:rotate(180deg)}
.modal-bar #close-modal{width:36px;height:36px;min-height:0;border:1px solid #917048;border-radius:50%;color:#d0b783;display:grid;place-items:center;font-size:inherit}
.modal-bar #close-modal svg{width:21px;height:21px}
@media(max-width:1000px){#story-back,#letter-back{top:16px;left:20px}}
@media(max-width:650px){#story-back,#letter-back{top:max(13px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left))}.modal-bar #close-modal{width:32px;height:32px}}
@media(max-height:600px) and (min-width:651px){#story-back,#letter-back{top:12px;left:17px}}

/* Actual illustrated PNG controls for the brass disk. */
.letter-screen .wheel-controls button,.letter-screen .is-portrait .wheel-controls button{width:66px;height:66px;padding:0;border:0;background:none;box-shadow:none;filter:drop-shadow(0 3px 2px #0a1b1680)}
.letter-screen .wheel-controls button img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.letter-screen .wheel-controls button[data-turn="1"] img{transform:scaleX(-1)}
.letter-screen .wheel-controls button:hover{filter:brightness(1.12) drop-shadow(0 4px 3px #0a1b1680)}
.letter-screen .wheel-controls button:active{box-shadow:none;transform:translateY(2px);filter:brightness(.95)}
.letter-screen .letter-answer-row .illustrated-resolve{flex:0 0 144px;width:144px;min-height:48px;padding:0 15px;border:0;border-radius:0;background:url('assets/boton-resolver.png') center/100% 100% no-repeat;box-shadow:none;font:600 16px Georgia,serif;color:#ffe6ae;text-shadow:0 1px 2px #23140b}
.letter-screen .is-portrait .wheel-controls{gap:20px}
.letter-screen .is-portrait .wheel-controls button{width:52px;height:52px}
.letter-screen .is-portrait .letter-answer-row .illustrated-resolve{flex:none;width:100%;height:48px;min-height:48px;padding:0 14px;font-size:15px}

/* Keep the dialogue frame clear of the viewport edge after removing the footer. */
.dialogue{margin-bottom:max(14px,env(safe-area-inset-bottom))}
@media(max-height:600px) and (min-width:651px){.dialogue{margin-bottom:max(10px,env(safe-area-inset-bottom))}}

/* Four-frame character sheets: columns = mouth closed/open; rows = gestures. */
.character-sprite{aspect-ratio:2/3;background-size:200% 200%;background-repeat:no-repeat;background-position:0 0}
.vale-sprite{background-image:url('assets/criptobal-gestos.png')}
.partner-sprite{background-image:url('assets/lola-gestos.png')}
.character-sprite[data-gesture="think"]{background-position-y:100%}
.character-sprite.is-speaking{background-position-x:100%;animation:none}
.character-sprite[data-character="ada"]{background-image:url('assets/ada-v2.png');background-size:contain;background-position:center bottom;animation:none}
.game-shell .vale-sprite,.game-shell .partner-sprite{filter:brightness(.58) saturate(.76) drop-shadow(5px 7px 2px #241a1840)}
.game-shell .character-sprite.is-speaking{filter:brightness(1) drop-shadow(5px 7px 2px #241a1840)}

@media(prefers-reduced-motion:reduce){.character-sprite.is-speaking{animation:none;background-position-x:100%}}
.at-clockshop .scene-art{object-position:50% 50%}
.at-clockshop .vale-sprite{left:-3%;height:90%;bottom:-14%}
.at-clockshop .partner-sprite{right:-4%;height:83%;bottom:-15%}

@media(max-width:650px){.at-clockshop .vale-sprite{left:-18%;height:71%;bottom:-12%;max-width:70vw}.at-clockshop .partner-sprite{right:-19%;height:66%;bottom:-13%;max-width:65vw}}
/* The illustrated prop is the interface: its slot is editable and its bell is clickable. */
dialog.door-screen{background:#40352b;border:0;border-radius:0;box-shadow:none;padding:0;overflow:hidden;isolation:isolate}
.door-screen::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#261d16a6,#261d16a6),url('assets/timbre-reloj.png') center/cover;filter:blur(6px)}
.door-screen .modal-bar{position:absolute;inset:0 auto auto 0;z-index:5;min-height:0;padding:18px 22px;background:none;border:0}
.door-screen #modal-kicker{display:none}
.door-screen #modal-content{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;gap:0;place-items:center;width:100%;height:100%;min-height:0;padding:0;max-width:none;margin:0}
.door-screen #modal-content::before,.door-screen #modal-content::after{display:none}
.bell-closeup{position:relative;container-type:inline-size;width:min(100vw,calc(100dvh * 2 / 3));aspect-ratio:2/3;margin:0;box-shadow:0 0 80px #160e0bb3}
.bell-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.door-screen #door-answer{position:absolute;left:24.5%;top:31.2%;width:51%;height:5.7%;min-height:0;padding:0 8px;margin:0;border:0;border-radius:3px;background:transparent;box-shadow:none;color:#ffebba;font:clamp(16px,3.2cqw,22px)/1.2 Georgia,serif;letter-spacing:.02em;text-align:center;outline-offset:3px;caret-color:#ffebba}
.door-screen #door-answer::placeholder{color:#dcc190;letter-spacing:.03em;opacity:1}
.door-screen #door-answer:focus-visible{outline:2px solid #ffe5a8;box-shadow:0 0 16px #edc88070}
.door-screen #door-answer[aria-invalid=true]{color:#ffd0b8}
.bell-push{position:absolute;left:36.8%;top:43%;width:26.4%;height:18%;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;cursor:pointer;transition:box-shadow .15s,background .15s}
.bell-push:hover{background:#ffedb912;box-shadow:0 0 22px #ffe4a74d}
.bell-push:focus-visible{outline:3px solid #ffedb9;outline-offset:5px}
.bell-push:active{background:#50300d3d;box-shadow:inset 0 4px 12px #37200d80;transform:none}
.door-screen #door-feedback{position:absolute;left:10%;top:91%;width:80%;margin:0;text-align:center;font:clamp(12px,2.8cqw,17px)/1.35 Georgia,serif;color:#fff0cf;text-shadow:0 1px 3px #24170c}
.door-screen #door-feedback:not(:empty){padding:8px 12px;border:1px solid #c29e5c88;border-radius:3px;background:#3a291ce8}
@media(max-width:650px){.door-screen .modal-bar{padding:13px 14px}.bell-closeup{box-shadow:0 0 45px #160e0bb3}}

.door-screen::after{display:none}

/* Inside the shop, the speaker faces Clotilde; mouths remain static. */
.vale-sprite[data-character="iris"]{transform:scaleX(-1);background-image:url('assets/lola-gestos.png')}
.character-sprite[data-character="clotilde"]{background-image:url('assets/clotilde-gestos-v3.png');background-size:200% 100%;background-position:0 0}
.character-sprite[data-character="clotilde"].is-speaking{background-position:100% 0}
.inside-workshop .partner-sprite{height:88%;bottom:-13%;right:-2%}
.inside-workshop .vale-sprite{height:88%;bottom:-13%;left:-2%}
.inside-workshop .vale-sprite[data-character="iris"]{height:82%;bottom:-14%}
dialog.clock-screen{background:#33271b;border:0;border-radius:0;box-shadow:none;padding:0;overflow:hidden;isolation:isolate}
.clock-screen::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#2d1e1299,#2d1e12bf),url('assets/relojeria-interior.png') center/cover;filter:blur(3px)}
.clock-screen::after{display:none}
.clock-screen .modal-bar{position:absolute;inset:0 auto auto 0;z-index:5;min-height:0;padding:18px 22px;background:none;border:0}
.clock-screen #modal-kicker{display:none}
.clock-screen #modal-content{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;gap:0;place-items:center;width:100%;height:100%;min-height:0;padding:52px 30px 20px;max-width:none;margin:0}
.clock-workbench{display:grid;grid-template-columns:minmax(0,500px) minmax(0,470px);gap:42px;align-items:center;justify-content:center;width:100%;max-width:1100px;height:100%;min-height:0}
.repair-clock{position:relative;width:100%;max-width:min(500px,calc(100dvh - 100px));aspect-ratio:1;justify-self:center;filter:drop-shadow(0 15px 15px #160e0c80)}
.repair-clock-art{display:block;width:100%;height:100%;object-fit:contain}
.repair-gear{position:absolute;width:22%;aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px #321a0780);pointer-events:none}
.repair-gear[hidden]{display:none}
.gear-0{left:35.5%;top:52%}.gear-1{left:61.7%;top:52%}.gear-2{left:48.1%;top:70.8%}
.is-running .repair-gear{animation:clock-gears 16s linear infinite}.is-running .gear-1{animation-direction:reverse}
@keyframes clock-gears{to{transform:translate(-50%,-50%) rotate(360deg)}}
.clock-clues{position:relative;width:100%;min-width:0}
.clock-note{position:relative;display:grid;place-items:center;aspect-ratio:3/2;width:100%;padding:14% 8%;background:url('assets/nota-codificada.png') center/100% 100% no-repeat;filter:drop-shadow(0 8px 9px #1b100740)}
.encoded-word{display:flex;gap:8px 12px;flex-wrap:wrap;justify-content:center;align-content:center;color:#51351e;text-align:center}
.encoded-word span{font:bold clamp(16px,1.65vw,22px)/1.7 monospace;letter-spacing:1px}
#clock-form{display:flex;gap:10px;align-items:stretch;margin:8px 5% 0}
.numbered-answer{display:flex;flex:1;min-width:0;align-items:stretch;border:2px solid #ad8349;background:#fff2d1;border-radius:4px;overflow:hidden}
.answer-number{display:grid;place-items:center;min-width:46px;background:#7c5735;color:#ffe5b1;font:24px Georgia,serif}
.clock-screen #clock-answer{width:100%;min-width:0;background:transparent;border:0;border-radius:0;box-shadow:none;padding:13px;font:18px Georgia,serif;letter-spacing:1px;color:#54341e}
.clock-screen #clock-answer:focus-visible{outline:2px solid #b58642;outline-offset:-3px}
.numbered-answer:has([aria-invalid=true]){border-color:#c75b42;box-shadow:0 0 0 2px #6c281a80}
.is-solved .numbered-answer{border-color:#9ba965}
.clock-action{width:58px;min-height:54px;flex:0 0 58px;border:0;display:grid;place-items:center;background:url('assets/boton-resolver.png') center/100% 100% no-repeat;color:#ffe9b6;padding:12px;box-shadow:none}
.clock-action svg{width:25px;height:25px;stroke-width:2}
.clock-clues [hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
@media(prefers-reduced-motion:reduce){.is-running .repair-gear{animation:none}}
@media(max-width:650px){
  .inside-workshop .partner-sprite{height:75%;bottom:-13%;right:-21%;max-width:70vw}
  .inside-workshop .vale-sprite{height:74%;bottom:-13%;left:-21%;max-width:70vw}
  .inside-workshop .vale-sprite[data-character="iris"]{height:68%;bottom:-13%;left:-19%}
  .clock-screen .modal-bar{padding:13px 14px}
  .clock-screen #modal-content{padding:52px 15px 18px;overflow:hidden}
  .clock-workbench{grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;justify-items:center;align-content:center;height:100%;min-height:0}
  .repair-clock{width:min(80vw,calc(100dvh - 380px),350px);max-width:none}
  .clock-clues{max-width:400px}
  .clock-note{aspect-ratio:1.9}
  .encoded-word span{font-size:16px;letter-spacing:0}
  .encoded-word{gap:6px 9px}
  #clock-form{margin-top:8px;gap:8px}
  .clock-screen #clock-answer{font-size:16px;padding:10px}
  .answer-number{min-width:36px;font-size:21px}
  .clock-action{width:48px;flex-basis:48px;min-height:46px;padding:10px}
}
@media(min-width:651px) and (max-height:600px){.clock-workbench{gap:25px;grid-template-columns:minmax(0,340px) minmax(0,430px)}.clock-screen #modal-content{padding-top:45px}.clock-note{aspect-ratio:1.9}.encoded-word span{font-size:17px}.clock-action{min-height:46px}}

/* Preserve the note/answer footprint and center the final action within it. */
#clock-form{min-height:54px}
.clock-clues.is-complete .clock-note,.clock-clues.is-complete #clock-form{visibility:hidden;pointer-events:none}
.clock-clues.is-complete #clock-continue{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);visibility:visible;pointer-events:auto;width:190px;height:58px;min-height:58px;font:20px Georgia,serif;display:grid;place-items:center}
@media(max-width:650px){#clock-form{min-height:46px}.clock-clues.is-complete #clock-continue{width:180px;height:54px;min-height:54px;font-size:18px}}

/* César's keepsake box and its briefly unfolded note. */
.box-workbench{display:grid;grid-template-columns:minmax(0,620px) minmax(0,470px);gap:30px;align-items:center;width:100%;max-width:1150px;min-height:0}
.antique-box{position:relative;container-type:inline-size;width:100%;max-width:calc(100dvh - 90px);justify-self:center;aspect-ratio:1;filter:drop-shadow(0 14px 12px #130b0880)}
.antique-box>img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.box-lock{position:absolute;left:30.7%;top:56.3%;width:38.9%;height:11.6%;display:grid;grid-template-columns:repeat(5,1fr);gap:3.1%}
.box-digit{min-width:0;min-height:0;border:0;border-radius:3px;padding:0;background:transparent;box-shadow:none;color:#503019;font:7cqw/1 Georgia,serif;text-shadow:0 1px 0 #fff4c9;touch-action:manipulation}
.box-digit:hover{background:#d2a14b22;color:#29180b}.box-digit:active{transform:none;background:#bc8b4433}.box-digit:focus-visible{outline:2px solid #fff0bb;outline-offset:3px}
.box-note-panel{display:grid;justify-items:center;gap:12px;width:100%;min-width:0}
.box-note{width:100%;aspect-ratio:3/2;position:relative;display:grid;place-items:center}
.folded-note{display:block;width:92%;filter:drop-shadow(0 8px 8px #160c0780)}
.unfolded-note{position:absolute;inset:0;display:grid;place-items:center;padding:13% 10%;background:url('assets/nota-codificada.png') center/100% 100% no-repeat;filter:drop-shadow(0 8px 8px #160c0780)}
.unfolded-note p{margin:0;font:italic clamp(17px,2vw,26px)/1.45 Georgia,serif;color:#51351e;text-align:center}
.box-note [hidden]{display:none}
.box-note-panel .illustrated-note-button{width:190px;min-height:58px;padding:12px 20px;justify-content:center;border:0;border-radius:0;background:url('assets/boton-resolver.png') center/100% 100% no-repeat;box-shadow:none;font:20px Georgia,serif;color:#ffe6ae;text-shadow:0 1px 2px #23140b}
.illustrated-note-button:disabled{opacity:.55;cursor:default}
.box-prop-panel{display:grid;justify-items:center;align-content:center;min-width:0;width:100%;position:relative}
.box-prop-panel .antique-box{max-width:calc(100dvh - 160px)}
.box-prop-panel .illustrated-note-button{width:190px;min-height:58px;padding:12px 20px;justify-content:center;border:0;border-radius:0;background:url('assets/boton-resolver.png') center/100% 100% no-repeat;box-shadow:none;font:20px Georgia,serif;color:#ffe6ae;text-shadow:0 1px 2px #23140b;margin-top:-7%}
#box-feedback{position:absolute;top:100%;margin:8px 0 0;max-width:95%;font:16px/1.3 Georgia,serif;text-align:center;color:#ffe5bd}
.secret-note-paper{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;width:min(760px,100%,calc((100dvh - 85px)*1.5));aspect-ratio:3/2;padding:10% 8%;background:url('assets/nota-codificada.png') center/100% 100% no-repeat;color:#51351e;filter:drop-shadow(0 12px 16px #150b0870);user-select:text;-webkit-user-select:text}
.secret-note-paper p{margin:0;text-align:center;font:italic clamp(18px,2.6vw,30px)/1.45 Georgia,serif}
.secret-note-paper .statue-coordinates{font:clamp(17px,2.3vw,26px)/1.4 Georgia,serif;white-space:nowrap}
.secret-word{display:inline-block;color:#000;background:#000;text-shadow:none;font:600 clamp(20px,2.4vw,28px)/1.4 Georgia,serif;letter-spacing:.13em;padding:5px 14px;cursor:text;user-select:text;-webkit-user-select:text;forced-color-adjust:none}
.secret-word::selection{color:#fff;background:#305b91;text-shadow:none}
@media(max-width:650px){
  .box-workbench{grid-template-columns:1fr;gap:0;justify-items:center;align-content:center;height:100%}
  .antique-box{width:min(90vw,calc(100dvh - 360px),400px);max-width:none}
  .box-prop-panel .antique-box{width:min(90vw,calc(100dvh - 420px),360px);max-width:none}
  .box-prop-panel .illustrated-note-button{min-height:50px;width:180px;font-size:18px;margin-top:-5%}
  .box-prop-panel{padding-bottom:34px}
  #box-feedback{top:auto;bottom:2px;font-size:13px;line-height:1.2;margin:0}
  .secret-note-paper{aspect-ratio:3/4;padding:15% 10%;gap:28px;max-width:400px;width:min(100%,calc((100dvh - 85px)*.75))}
  .secret-note-paper p{font-size:clamp(17px,5.2vw,22px)}
  .secret-note-paper .statue-coordinates{font-size:clamp(16px,4.7vw,21px)}
  .box-note-panel{max-width:400px;gap:6px}
  .unfolded-note p{font-size:clamp(16px,4.6vw,20px);line-height:1.4}
  .box-note-panel .illustrated-note-button{min-height:50px;width:180px;font-size:18px}
}
@media(min-width:651px) and (max-height:600px){.box-workbench{gap:20px}.box-note-panel{max-width:440px;justify-self:center}.unfolded-note p{font-size:clamp(16px,2vw,21px)}.box-note-panel .illustrated-note-button{min-height:48px}.box-note{max-width:calc((100dvh - 140px)*1.5)}}
@media(min-width:651px) and (max-height:600px){.secret-note-paper{padding:20px 50px;gap:16px}.secret-note-paper p{font-size:19px}.secret-note-paper .statue-coordinates{font-size:18px}.secret-word{font-size:20px}.box-prop-panel .illustrated-note-button{min-height:46px;margin-top:-4%}#box-feedback{font-size:13px}}

/* Both evidence actions share the same row, independent of prop height. */
#game[hidden],#book-intro[hidden]{display:none}
#book-intro{position:fixed;inset:0;z-index:20;isolation:isolate;overflow:hidden;background:#7f4b30;display:grid;place-items:center}
#book-intro::before{content:"";position:absolute;inset:-35px;z-index:-1;background:linear-gradient(#50331a44,#50331a44),url('assets/libro-portada-v2.png') center/cover;filter:blur(24px)}
#book-intro[data-page="chapter"]::before{background-image:linear-gradient(#50331a44,#50331a44),url('assets/libro-capitulo-v2.png')}
.book-intro-picture{position:absolute;inset:0;display:block;width:100%;height:100%}
.book-intro-art{display:block;width:100%;height:100%;min-height:0;object-fit:cover;pointer-events:none;user-select:none}
#book-next{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:14px;width:248px;height:62px;padding:12px 20px;border:0;background:url('assets/boton-resolver.png') center/100% 100% no-repeat;box-shadow:none;color:#ffe6ae;text-shadow:0 1px 2px #23140b;font:21px Georgia,serif}
#book-next svg{width:22px;height:22px}
#book-next:hover{filter:brightness(1.12)}
#book-back,#book-fullscreen{position:absolute;z-index:5;top:max(18px,env(safe-area-inset-top));background:#302419f2;pointer-events:auto}
#book-back{left:max(22px,env(safe-area-inset-left))}#book-back svg{transform:rotate(180deg)}
#book-fullscreen{right:max(22px,env(safe-area-inset-right))}
@media(max-width:650px){#book-next{width:218px;height:56px;font-size:19px;right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}#book-back,#book-fullscreen{top:max(13px,env(safe-area-inset-top))}#book-back{left:14px}#book-fullscreen{right:14px}}
@media(max-height:500px){#book-next{height:48px;width:220px;font-size:18px;bottom:12px;right:16px}}
.box-workbench{align-items:stretch}
.box-prop-panel,.box-note-panel{grid-template-rows:1fr 58px;gap:12px;align-content:stretch}
.box-prop-panel .antique-box,.box-note-panel .box-note{align-self:center}
.box-prop-panel .illustrated-note-button,.box-note-panel .illustrated-note-button{margin:0;height:58px;min-height:58px;align-self:end}
@media(min-width:651px) and (max-height:600px){.box-prop-panel,.box-note-panel{grid-template-rows:1fr 48px}.box-prop-panel .illustrated-note-button,.box-note-panel .illustrated-note-button{height:48px;min-height:48px}}
@media(max-width:650px){
  .box-workbench{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto 50px auto;gap:8px 10px;align-content:center}
  .box-prop-panel,.box-note-panel{display:contents}
  .box-prop-panel .antique-box{grid-column:1/-1;grid-row:1;width:min(90vw,calc(100dvh - 420px),360px)}
  .box-note-panel .box-note{grid-column:1/-1;grid-row:2;max-width:400px}
  .box-prop-panel .illustrated-note-button,.box-note-panel .illustrated-note-button{grid-row:3;width:100%;max-width:180px;height:50px;min-height:50px;font-size:17px}
  #unlock-box{grid-column:1}#unfold-note{grid-column:2}
  #box-feedback{position:static;grid-column:1/-1;grid-row:4;margin:0;font-size:13px}
  #box-feedback:empty{display:none}
}

/* A quiet, image-free loading screen inspired by the game's detective props. */
#chapter-loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#f5f0e5;color:#4a3a2b}
#chapter-loader[hidden],#loader-retry[hidden]{display:none}
.loader-card{width:100%;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center}
.loader-mark{display:block;width:clamp(120px,24vw,170px);height:auto;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
#loader-status{max-width:34ch;min-height:3em;margin:0;font:clamp(12px,2.8vw,14px)/1.6 'Courier New',monospace;text-wrap:balance}
#loader-retry{margin:0;padding:9px 18px;border:1px solid #4a3a2b55;border-radius:2px;background:transparent;color:inherit;font:13px 'Courier New',monospace}
