@font-face{font-family:'Barlow Condensed';font-weight:600;font-display:swap;src:url('assets/fonts/barlow-condensed.ttf') format('truetype')}
/* Bronze lettering has a thin dark engraved edge, without changing the map itself. */
.place-pin{font-size:24px;font-weight:600;color:#e9c477;-webkit-text-stroke:.45px #100b04;paint-order:stroke fill;text-shadow:0 1px 0 #160e04,0 0 3px #000,0 -1px 0 #ffe9b833}
.place-pin>span{padding:1px 3px}
.place-pin:before{width:9px;height:9px;left:13px;top:13px;background:radial-gradient(circle at 30% 25%,#fff0b5,#cf9d48 45%,#6f431d);border:1px solid #130e08;box-shadow:0 0 0 1px #e6c17e,0 2px 3px #000}
.place-pin.is-preparing:before{background:radial-gradient(circle at 30% 25%,#d7b879,#93652d);border-color:#1d1007}
.place-pin.has-quest:before{width:12px;height:12px;left:12px;top:12px;border-color:#251607}
.place-pin.has-quest>span{color:#ffe6a1;-webkit-text-stroke:.5px #211102;text-shadow:0 1px 2px #000,0 0 6px #291500,0 0 11px #c58b35}
.lamp-body{object-fit:contain;src:none}
.lamp-flame{left:69px;top:126px;width:16px;height:26px;z-index:1}
.lamp-light{z-index:0}.lamp-body{z-index:1}.lamp-flame{z-index:2}.lamp-dial{z-index:3}
.passport-object{width:75px;height:111px;border:0;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(3px 6px 4px #0008);padding:0}
.passport-prop{position:absolute;inset:-3px;width:100%;height:100%;object-fit:contain}
.passport-object>.passport-word,.passport-object>.passport-emblem,.passport-object>small{opacity:0}
.passport-object .stamp-count{z-index:2;right:-2px;top:-7px}
.keepsake-dock .field-note{position:absolute;left:71px;top:14px;bottom:auto;right:auto;width:81px;padding:8px 5px 3px;font-size:11px;transform:rotate(8deg);transform-origin:center;box-shadow:1px 3px 4px #0006;z-index:3}
.keepsake-dock .field-note:before{left:26px;top:-3px;width:22px}
.keepsake-dock .field-note b{font-size:13px}
.night-object{display:none}
.journal-field-note{padding:20px 15px;font:18px/1.8 'IM Fell English',serif;transform:rotate(-1deg);border:1px solid #a3844b66;background:#eadab77d;box-shadow:2px 4px 8px #3b24152b}
.hydro-label[data-river=landes]{left:44%;top:46%;--tilt:-12deg;font-size:20px}
.hydro-label[data-river=landes-sud]{left:43%;top:68.3%;--tilt:6deg;font-size:19px}
.map-shade{background:#000!important}
.postcard-hover img{object-fit:contain;background:#f4e8cc}
.scene-layout:not(.digital-view) .scene-photo{background:#f4e8cc}
.scene-layout:not(.digital-view) .scene-photo>img{object-fit:contain}
body[data-world=dark]{--display:'Barlow Condensed','DM Sans',sans-serif;--body:'DM Sans',Arial,sans-serif}
body[data-world=dark] .global-bar{background:linear-gradient(#181c20,#080b0f);border-color:#7b8a954d}
body[data-world=dark] .map-heading{background:linear-gradient(#11161bf7,#0a0e14e6 70%,transparent)}
body[data-world=dark] .map-heading h1{font:600 30px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#e2e8ec;text-shadow:0 1px 0 #000,0 0 20px #9e183833}
body[data-world=dark] .place-pin{font:600 18px/1.1 'Barlow Condensed','DM Sans',sans-serif;letter-spacing:.7px;text-transform:uppercase;color:#d4dce3;-webkit-text-stroke:.5px #040709;paint-order:stroke fill;text-shadow:0 1px 2px #000,0 0 5px #000}
body[data-world=dark] .place-pin:before{width:8px;height:8px;left:14px;top:14px;background:radial-gradient(circle at 30% 20%,#eef3f5,#5c6c78 65%,#151c22);border:1px solid #07090c;box-shadow:0 0 0 1px #9cabb4,0 1px 4px #000}
body[data-world=dark] .place-pin.has-quest:before{width:11px;height:11px;left:12px;top:12px;background:#ff657d;border:1px solid #ffe7ec;box-shadow:0 0 9px 3px #ee274d,0 0 20px #a91135}
body[data-world=dark] .place-pin.has-quest>span{color:#ffb6c3;-webkit-text-stroke:.5px #100207;text-shadow:0 1px 2px #000,0 0 8px #bc173d}
body[data-world=dark] .hydro-label{font:600 20px 'Barlow Condensed',sans-serif;letter-spacing:.8px;color:#d78a99;text-shadow:0 1px 2px #000}
body[data-world=dark] .hydro-label[data-river=landes]{left:41%;top:43%;--tilt:-10deg}
body[data-world=dark] .hydro-label[data-river=landes-sud]{left:47.8%;top:65.7%;--tilt:5deg}
body[data-world=dark] .art-water-label{font-family:'Barlow Condensed',sans-serif;font-size:20px;letter-spacing:2px}
body[data-world=dark] .art-ocean-label{font-family:'Barlow Condensed',sans-serif;font-size:35px;font-style:normal;letter-spacing:5px;color:#97a8b2}
body[data-world=dark] .lamp-object{filter:drop-shadow(3px 7px 5px #000b)}
body[data-world=dark] .lamp-body{width:82px;height:230px;left:32px;top:2px}
body[data-world=dark] .lamp-flame{display:none}
body[data-world=dark] .lamp-light{left:-30px;top:-91px;width:218px;height:260px;background:linear-gradient(0deg,#edf6ff44,#ddefff03);clip-path:polygon(38% 100%,62% 100%,100% 0,0 0);filter:blur(4px);opacity:calc(var(--lamp-power)*.55);animation:none}
body[data-world=dark] .lamp-caption{font:14px 'Barlow Condensed',sans-serif;color:#cbd5dc;letter-spacing:1px}
body[data-world=dark] .lamp-dial{right:5px;top:173px}
body[data-world=dark] .loupe-object{transform:rotate(-7deg);width:115px;height:113px}
body[data-world=dark] .glass-object{display:none}
body[data-world=dark] .night-object{display:block;position:absolute;width:100%;height:100%;object-fit:contain;inset:0;pointer-events:none}
body[data-world=dark] .instrument-caption,body[data-world=dark] .divider-object>span{font:14px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:1px;color:#d9e1e6}
body[data-world=dark] .divider-object{background:none!important;filter:drop-shadow(2px 6px 4px #000b);transform:rotate(5deg);width:78px;height:140px;right:42px;top:255px}
body[data-world=dark] .divider-object>span{bottom:-22px}
body[data-world=dark] .magnifying-lens{border:5px solid #7d909e;border-radius:9px;box-shadow:0 0 0 2px #111c25,inset 0 0 0 2px #c6d1d866,0 0 25px #b71d3b33;background-color:#0b1720}
body[data-world=dark] .magnifying-lens:after{display:none}
body[data-world=dark] .magnifying-lens:before{content:'REC · ZOOM ×2';position:absolute;top:8px;left:9px;font:11px monospace;color:#ff6e83}
body[data-world=dark] .keepsake-dock .field-note{left:65px;top:2px;width:45px;padding:3px;font:8px monospace;background:#15212bee;color:#ff8296;border:1px solid #b7435a;transform:rotate(-7deg)}
body[data-world=dark] .keepsake-dock .field-note b{display:none}
body[data-world=dark] .passport-object{background:linear-gradient(135deg,#27343e,#070e16);box-shadow:inset 0 0 0 2px #6a7886,0 0 0 1px #080b0e,3px 5px 8px #0008;border:1px solid #a0344a;border-radius:5px}
body[data-world=dark] .passport-prop{display:none}
body[data-world=dark] .passport-object>.passport-word,body[data-world=dark] .passport-object>.passport-emblem,body[data-world=dark] .passport-object>small{opacity:1}
body[data-world=dark] .compass-face .digital-cap{font:600 38px 'Barlow Condensed',sans-serif;color:#ea8495}
body[data-world=dark] .scene-back h2,body[data-world=dark] dialog h2,body[data-world=dark] .quest-heading h1{font-family:'Barlow Condensed',sans-serif;letter-spacing:1px;text-transform:uppercase}
body[data-world=dark] .scene-back h2{font-size:35px}
body[data-world=dark] .quest-entry h3,body[data-world=dark] .quest-sheet h2{font-family:'Barlow Condensed',sans-serif;letter-spacing:.8px}
body[data-world=dark] .embossed,body[data-world=dark] .scene-ambience button{font:600 17px 'Barlow Condensed',sans-serif;border-radius:4px;background:linear-gradient(#323b44,#101922);border-color:#87929b;color:#f0e7e9;box-shadow:inset 0 1px #dce3e72b,0 3px 0 #030609,0 0 10px #a2152c20}
body[data-world=dark] .scene-ambience span{font:14px 'Barlow Condensed',sans-serif;color:#aaaeb7}
body[data-world=dark] .map-status{font:12px 'Barlow Condensed',sans-serif;letter-spacing:1px;color:#d8a8b3}
/* Transmission: a full black fade, radio snow, then scattered pieces of the same V5. */
.crossing{background:#000;backdrop-filter:none;animation:transmission-blackout .95s ease both;z-index:50}
.crossing canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;opacity:0;z-index:3;pointer-events:none;mix-blend-mode:screen}
.crossing[data-phase=static] canvas{opacity:.24}.crossing[data-phase=rebuild] canvas{opacity:.10}
.crossing[data-phase=settle] canvas{opacity:.04}
.crossing-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:4;pointer-events:none;background:radial-gradient(ellipse,#0008,transparent 60%)}
.crossing-message>span:first-child{font:600 14px 'Barlow Condensed',sans-serif;letter-spacing:5px;color:#c16074}
.crossing h2{font:600 40px/1.15 'Barlow Condensed',sans-serif;color:#cbd5dc;text-transform:uppercase;letter-spacing:2px;max-width:650px;text-align:center;text-shadow:2px 0 #74152c77,-1px 0 #74a2be33}
.crossing[data-phase=black] .crossing-message{opacity:0}.crossing[data-phase=rebuild] .crossing-message{justify-content:flex-start;padding-top:17vh;background:none}
.crossing[data-phase=settle]{animation:transmission-end 1.5s ease both}
.transmission-grid{position:absolute;overflow:hidden;z-index:1;pointer-events:none}
.transmission-tile{position:absolute;background-repeat:no-repeat;opacity:0;animation:signal-tile .6s linear forwards;will-change:opacity,filter}
.transmission-tile:after{content:'';position:absolute;inset:0;border:1px solid #851a2a66;background:repeating-linear-gradient(transparent 0 3px,#0008 3px 4px);mix-blend-mode:multiply}
.transmission-controls{position:absolute;z-index:5;bottom:24px;right:25px;display:flex;gap:15px}
.transmission-controls button{font:13px 'Barlow Condensed',sans-serif;letter-spacing:1px;color:#b8c4cc;border:1px solid #6e747b66;border-radius:3px;padding:8px 13px;background:#071018aa}
.crossing.soft-transmission .transmission-tile{animation-name:signal-tile-soft}.crossing.soft-transmission canvas{display:none}
@keyframes transmission-blackout{from{opacity:0}to{opacity:1}}
@keyframes signal-tile{0%{opacity:0;filter:brightness(1.5)}20%{opacity:.75;filter:brightness(1.4)}48%{opacity:.28;filter:brightness(.65)}100%{opacity:1;filter:brightness(1)}}
@keyframes signal-tile-soft{from{opacity:0}to{opacity:1}}
@keyframes transmission-end{0%{opacity:1}75%{opacity:1}100%{opacity:0}}
@media(max-height:700px) and (min-width:701px){body[data-world=dark] .divider-object{top:235px;right:35px;width:68px;height:125px}body[data-world=dark] .loupe-object{top:115px;width:96px;height:100px}}
@media(max-width:700px){
 .place-pin{font-size:21px}.keepsake-dock .field-note{left:68px;top:10px;bottom:auto;transform:rotate(8deg);font-size:12px;width:85px}
 body[data-world=dark] .place-pin{font-size:15px}body[data-world=dark] .map-heading h1{font-size:23px}
 body[data-world=dark] .loupe-object{right:142px;bottom:112px;top:auto;width:65px;height:65px}
 body[data-world=dark] .divider-object{top:auto;bottom:115px;right:213px;width:43px;height:83px}
 body[data-world=dark] .divider-object>span{bottom:-13px;font-size:11px}
 body[data-world=dark] .keepsake-dock .field-note{left:66px;top:0;width:45px;bottom:auto;font-size:8px}
 .crossing h2{font-size:28px;max-width:90%}.crossing-message>span:first-child{font-size:11px;letter-spacing:3px}.transmission-controls{bottom:18px;right:12px;left:12px;justify-content:space-between;gap:8px}.transmission-controls button{font-size:12px;padding:8px}
}
@media(prefers-reduced-motion:reduce){.transmission-tile{animation-name:signal-tile-soft!important}.crossing canvas{display:none}.crossing{animation-duration:.1s}}
/* Cartes postales : cadrage et correspondances de la référence Claude. */
body[data-world=day] .scene-dialog{width:820px;overflow:auto;background:linear-gradient(#f0dfb622,#b99a5c15),url('assets/parchemin.webp') center/cover;border-radius:4px;padding:20px 24px 36px}
body[data-world=day] .scene-layout{display:flex;flex-direction:column;min-height:0;gap:0}
.postal-heading{text-align:center;padding:6px 0 22px}.postal-heading .overline{font-size:10px;color:#7c603a;letter-spacing:2px;margin:0 0 13px}.postal-heading h2{font:italic 52px/1.1 'IM Fell English',serif;color:#302215;margin:0 0 5px}.postal-heading>span{font:italic 16px 'IM Fell English',serif;color:#7d633e}.postal-heading i{display:block;font:18px Georgia;color:#a27d42;margin:15px auto 0;width:240px;position:relative}.postal-heading i:before,.postal-heading i:after{content:'';position:absolute;top:50%;width:95px;border-top:1px solid #a27d4266}.postal-heading i:before{left:0}.postal-heading i:after{right:0}
body[data-world=day] .scene-layout .scene-photo{flex:none;min-height:0;max-height:none;width:min(100% - 36px,520px);margin:2px auto 25px;padding:10px 10px 33px;overflow:visible;background:#fbf6ea;transform:rotate(-1.6deg);box-shadow:0 12px 25px -12px #211306aa}
body[data-world=day] .scene-layout .scene-photo:before{content:'';position:absolute;top:-12px;left:calc(50% - 45px);width:90px;height:26px;background:#f0e2b4b5;box-shadow:0 1px 2px #0002;transform:rotate(3deg);z-index:2}
body[data-world=day] .scene-layout .scene-photo>img{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;transition:none}
body[data-world=day] .scene-photo .photo-label{bottom:5px;left:5px;right:5px;text-align:center;color:#5a3d22;text-shadow:none}
body[data-world=day] .photo-label strong{font:16px 'Cedarville Cursive',cursive}body[data-world=day] .photo-label small{display:none}
body[data-world=day] .scene-layout .scene-back{padding:0 0 5px;background:none;overflow:visible}
body[data-world=day] .scene-back:before,body[data-world=day] .scene-back>h2,body[data-world=day] .scene-back>.overline{display:none}
body[data-world=day] .scene-back>.scene-ambience{justify-content:center;margin:8px 0 12px}body[data-world=day] .scene-back>p:not(.source-credit){text-align:center;font:italic 16px 'IM Fell English',serif;margin:10px 0 23px}
.postal-quest{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:4px 24px;margin:0 0 27px;padding:20px 19px 16px;background:linear-gradient(#fff7,#fff0),#eee1c3;border-radius:3px;color:#392512;box-shadow:0 12px 22px -16px #1d100bbb,inset 0 0 35px #a0783c23}
.postal-quest:nth-child(odd){transform:rotate(-.6deg)}.postal-quest:nth-child(even){transform:rotate(.5deg)}
.postal-quest:before{content:'';position:absolute;top:19px;bottom:70px;left:57.4%;border-left:1px solid #c8b088}
.postal-message h3{font:26px/1.3 'Cedarville Cursive',cursive;color:#2c1a0a;border-bottom:1px solid #b99d6c;padding:0 0 7px;margin:0 0 9px}
.postal-message p{font:18px/1.65 'Cedarville Cursive',cursive;margin:0;color:#33210f}.postal-sign{display:block;text-align:right;font:22px 'Cedarville Cursive',cursive;margin-top:10px}
.postal-address{display:flex;flex-direction:column;align-items:flex-end;gap:12px;padding-left:8px}
.postal-stamp{width:94px;padding:7px;background:radial-gradient(circle,transparent 2.4px,#fffaf0 2.9px) -4px -4px/8px 8px;filter:drop-shadow(0 1px 1px #0004);transform:rotate(2deg)}
.postal-stamp img{width:100%;aspect-ratio:4/5;display:block;object-fit:cover;border:4px solid #fffaf0}.postal-stamp small{display:block;text-align:center;font:10px 'IM Fell English SC',serif;padding:3px 0;background:#fffaf0}
.postal-lines{display:block;width:100%;height:72px;margin-top:auto;background:repeating-linear-gradient(transparent 0 23px,#c8b088 23px 24px)}
.postal-cancel{position:absolute;right:75px;top:28px;width:97px;height:97px;border:3px double #6f624e88;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-14deg);color:#6d624baa;pointer-events:none}.postal-cancel span{font:8px Georgia;letter-spacing:1px}.postal-cancel b{font:11px Georgia;margin:8px 0}.postal-cancel small{font:9px Georgia;text-align:center;max-width:72px}
.postal-quest footer{grid-column:1/-1;display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px dashed #c8b088;padding-top:13px;margin-top:14px}.postal-quest footer .tag{font:12px 'IM Fell English SC',serif;letter-spacing:1px}.postal-quest footer>small{font:12px/1.5 'IM Fell English',serif;max-width:210px;text-align:right}.postal-quest .embossed{font-size:14px;padding:10px 17px}
@media(max-width:700px){body[data-world=day] .scene-dialog{width:calc(100% - 18px);max-width:calc(100% - 18px);padding:22px 13px}.postal-heading h2{font-size:40px}.postal-heading>span{font-size:14px}body[data-world=day] .scene-layout .scene-photo{width:calc(100% - 16px);padding:7px 7px 30px}.postal-quest{gap:15px;padding:16px 13px;grid-template-columns:minmax(0,1fr) 95px}.postal-message h3{font-size:21px}.postal-message p{font-size:15px;line-height:1.7}.postal-stamp{width:76px}.postal-cancel{right:44px;top:37px;width:75px;height:75px;opacity:.7}.postal-cancel span{font-size:6px}.postal-cancel small{font-size:7px}.postal-cancel b{font-size:9px;margin:5px 0}.postal-quest:before{left:auto;right:112px;bottom:85px}.postal-sign{font-size:18px}.postal-quest footer{flex-wrap:wrap}.postal-quest footer>small{text-align:left;max-width:none}.postal-quest footer .embossed{margin-left:auto;font-size:12px}.postal-lines{height:48px}}
/* Essai bois : uniquement la matière et la teinte des lettres des villes. */
body[data-world=day] .place-pin>span,
body[data-world=day] .place-pin.has-quest>span{
 color:#9c6843;
 background-color:transparent;
 background-image:none;
 -webkit-text-stroke:0 transparent;
 paint-order:stroke fill;
 text-shadow:none;
 filter:drop-shadow(0 0 .75px #f2dec0) drop-shadow(0 1px .65px #1c100c);
}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 body[data-world=day] .place-pin>span,
 body[data-world=day] .place-pin.has-quest>span{
  background-image:repeating-linear-gradient(174deg,#ead2b74d 0 .65px,#68452f40 1px 1.7px,transparent 2.2px 4px),linear-gradient(8deg,#c7a27dc9,#dbc0a0c9 46%,#b78f6bc9),url('assets/desk-wood.webp');
  background-size:100% 100%,100% 100%,210px 95px;
  background-position:center;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
 }
}
