/* Nocturne — warm inks, illustrated theatre, collectible characters. */
@media screen{
:root{--cream:#211722;--paper:#2d222e;--ink:#f7e7ce;--muted:#baa6b1;--line:#503b48;--orange:#ed9957;--gold:#edb767;--pink:#e69ab6;--teal:#90c7b7;--yellow:#eeb65b;--night:#211722;--panel:#2d222e}
body{background:var(--night);color:var(--ink)}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h160v160H0z'/%3E%3C/svg%3E");background-size:160px}
.demo-banner{background:#15121b;color:#cbb4be;border-bottom:1px solid #392a36;height:25px;font-size:8px;letter-spacing:.08em}.demo-dot{background:var(--orange)}
.header{padding:23px 40px 20px}.brand{font-size:26px;letter-spacing:-.5px}.brand>span:last-child>span{color:var(--pink);font-size:12px;letter-spacing:1.7px}.brand-mark{width:40px;height:49px}.desktop-nav{background:transparent;padding:0;gap:9px;border-radius:0}.desktop-nav button{border-radius:0;color:var(--muted);border-bottom:1px solid transparent;padding:13px 17px}.desktop-nav button.active{color:var(--ink);background:transparent;border-color:var(--gold)}.desktop-nav button:hover:not(.active){background:#ffffff06;color:var(--ink)}.desktop-nav .count-badge{color:var(--gold);background:#f7e7ce0c}.edition{color:#bea0ac;font-size:8px;letter-spacing:1.3px}.edition b{color:var(--gold);font-size:9px}
main{padding:0 40px 45px}.intro{height:490px;min-height:490px;background:none;border:0;border-radius:0;overflow:visible;margin-top:13px;isolation:isolate}.night-scene{position:absolute;inset:0 0 0 auto;width:58%;height:100%;background:#251b2a url('assets/dia/giberville-nocturne.webp') center/cover no-repeat;border-radius:180px 180px 8px 8px;z-index:0;border:1px solid #614150;box-shadow:0 0 0 8px #211722,0 0 0 9px #5b3d49}.scene-vignette{display:none}.hero-copy{width:46%;padding:50px 15px 64px 0;position:relative;z-index:2}.hero-kicker{font-size:9px;color:var(--gold);letter-spacing:2px;margin-bottom:24px;gap:12px}.hero-kicker::before{font-size:22px;color:var(--pink)}.intro h1{font-size:clamp(43px,4.2vw,61px);font-weight:600;line-height:1.02;letter-spacing:-2px;margin-bottom:25px;max-width:500px}.intro h1 em{color:var(--gold);font-style:italic;font-weight:500;display:block;letter-spacing:-2px}.intro-text{font-size:13px;line-height:1.8;color:#c7b3bd;max-width:310px}.hero-actions{margin-top:25px}.primary,.hero-actions .primary,.scan-cta,.carnet-action .primary{color:#231921;background:var(--gold);border:1px solid var(--gold);border-radius:8px;box-shadow:0 3px 0 #a46138;font-size:12px;letter-spacing:.1px;min-height:48px}.primary:hover,.hero-actions .primary:hover,.scan-cta:hover,.carnet-action .primary:hover{background:#f6ca86;border-color:#f6ca86;transform:translateY(-2px)}.secondary{background:transparent;border:1px solid #705564;color:var(--ink);border-radius:8px}.secondary:hover{background:#433040;border-color:var(--pink)}.hero-actions .primary{padding:14px 24px}.hero-edition{display:flex;align-items:center;gap:13px;position:absolute;bottom:21px;left:0;color:#ae919e;font-size:7px;letter-spacing:1.3px}.hero-edition span{color:var(--pink);font-size:13px}.scene-caption{display:flex;align-items:center;gap:7px;right:15px;bottom:13px;background:#211722e8;color:#d3baa4;font-size:8px;letter-spacing:.6px;border:1px solid #89613a66;padding:7px 12px;border-radius:3px}.caption-star{display:inline;color:var(--gold);font-size:15px}.landmark-credit{font-size:8px;margin:13px 0 0;color:#ac929f}.landmark-credit summary{min-height:26px}.landmark-credit p{font-size:10px}
.adventure-strip{margin:12px 0 37px;background:#302332;border:1px solid #604455;border-left:3px solid var(--gold);border-radius:3px;padding:20px 24px;gap:24px}.mini-book{background:#57344c;color:#efa9be;border-radius:4px;box-shadow:inset 3px 0 0 #784862}.name-button{font-size:19px}.progress-top{margin-bottom:10px}#progress-caption{color:#c9b3bf;font-size:10px}.progress-ring b{color:var(--gold)}.progress-ring b span{color:#c0a8b6}.progress-track{height:5px;background:repeating-linear-gradient(90deg,#503b50 0,#503b50 calc(12.5% - 4px),transparent calc(12.5% - 4px),transparent 12.5%)}.progress-track i{background:var(--pink)}.scan-cta{background:var(--gold);color:#231921;min-width:202px}.eyebrow{color:#bfa8b3}
.workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px}.section-bar,.list-heading{margin-bottom:17px;min-height:56px;align-items:center}.section-index{font:600 8px var(--sans);letter-spacing:1.8px;color:var(--pink);margin-bottom:7px}.section-bar h2,.list-heading h2{font-size:24px;font-weight:500;letter-spacing:-.6px}.repaires-count{font-size:42px;line-height:1;color:#7d5468;font-style:italic}.text-button{color:var(--gold);font-size:10px}.map-frame{border:1px solid #655746;border-radius:4px;height:518px;background:#1e302f;box-shadow:inset 0 0 0 4px #211722}#map{background:#233834}.map-tag{background:#253a35eb;color:#eddbc0;border:1px solid #647060;border-radius:3px;letter-spacing:1px;font-size:7px}.map-key{background:#24322ef2;color:#e1d2b5;border:1px solid #65705b;border-radius:3px;font-size:8px;padding:9px 12px}.locate-button{background:#263e37;color:#eddabb;border:1px solid #788575;border-radius:5px}.street-label{color:#c9c9ae;text-shadow:0 1px 2px #14231e,0 -1px 2px #14231e}.map-building{filter:drop-shadow(0 2px 0 #152923)}.north{color:#e6d6b7}.leaflet-control-zoom{border-color:#6b7b68!important;border-radius:5px!important}.leaflet-control-zoom a{background:#263e37!important;color:#f2ddba!important;border-color:#536957!important}.leaflet-control-scale-line{background:#263e37ce!important;color:#e9ddc3!important;border-color:#cabd9f!important}.leaflet-control-attribution{background:#223931ee!important;color:#b6bdab!important}.leaflet-control-attribution a{color:#dfceac!important}.pin-dot{border-color:#eed6ad;background:#251b2a;box-shadow:0 0 0 2px #a95e61,0 4px 8px #10182199}.pin-dot b{border-color:#eed6ad;background:#813d5b;color:#fff2d4}.pin-dot.checked{box-shadow:0 0 0 2px #91bfab,0 4px 8px #10182199}.pin-dot.checked b,.pin-check{background:#476e5b;color:#fff2d4}.pin-check{border-color:#ead8bb}.pin-name{background:#29352feb;color:#f3e2c3;border-color:#6e7864;border-radius:3px}.map-caption{font-size:9px;color:#b7a6a6}.next-stop{background:#392737;border:1px solid #644552;border-radius:3px;padding:17px 18px;margin-top:20px}.next-stop p{color:var(--pink);letter-spacing:1.1px;font-size:7px}.next-stop h3{font-weight:500}.next-stop .address{color:#c5acb6}.next-icon{background:#251b2a;border:1px solid #6a4f57}.next-stop>button{background:var(--gold);color:#231921;border-radius:5px}
.shop-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shop-row{display:flex;position:relative;flex-direction:column;text-align:center;min-height:144px;padding:8px 9px 12px;gap:7px;isolation:isolate;background:#2b202e;border:1px solid #4a3544;border-radius:44px 44px 5px 5px;overflow:hidden}.shop-row::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--shop-paper);opacity:.4}.shop-row:hover{background:var(--shop-paper);border-color:var(--shop);transform:translateY(-3px)}.shop-symbol{width:73px;height:73px;background:#251b2a;border:0;flex-shrink:0;border-radius:50%}.portrait-sprite{background-image:url('assets/dia/troupe-nocturne.webp')}.shop-symbol small{left:-2px;bottom:2px;background:#29212c;color:var(--shop);border:1px solid var(--shop);width:18px;height:18px;font-size:8px}.shop-row-text{flex:none}.shop-row-text b{font:500 13px/1.17 var(--serif);letter-spacing:-.1px;color:#f3dfc8}.shop-row-text small{font-size:8px;margin-top:5px;color:#cbb0bc;line-height:1.25}.shop-row>.icon{position:absolute;right:10px;top:10px;width:12px;height:12px;opacity:.8}.shop-row.complete{border-color:#6c7364}.shop-row.complete>.icon{color:#a9d0b5}.gentle-note{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.gentle-note b{color:#ddc9bf}.gentle-note p{font-size:9px}.gentle-note .icon{color:var(--gold)}
.footer{border-color:var(--line);padding-top:24px;margin-left:40px;margin-right:40px}.footer-motto{color:#dab795}.footer b{color:var(--gold)}
.guide-step{background:#2f2331;border-color:#634456;border-radius:4px;padding:29px}.guide-step:nth-child(2){background:#382633;border-color:#744451}.guide-step:nth-child(3){background:#243a35;border-color:#4c6c59}.guide-step .eyebrow{color:#d2adbd}.guide-step p{color:#cbb4be}.guide-step h2{font-weight:500}.guide-step>.icon{color:var(--gold)}.guide-notes p,.guide-notes li{color:#c8b3bd}.guide-notes h2,.organizer-link h2{font-weight:500}.page-head h1{font-size:32px;font-weight:500}
dialog{background:#2a202c;color:#f2e1c9;border-color:#7b5369;box-shadow:0 30px 100px #09050ad9;border-radius:14px}dialog::backdrop{background:#120e18b8;backdrop-filter:blur(6px)}.dialog-close{background:#231c28eb;color:#f0d6c4;border-color:#9c7584}.dialog-title{font-weight:500}.dialog-lead,.dialog-note{color:#c9b2bf}.detail-hero{background:var(--shop-paper);border-bottom:1px solid #916a6466;min-height:220px;gap:23px}.detail-symbol{width:145px;height:145px;border:1px solid var(--shop);border-radius:50%;box-shadow:0 0 0 7px #251b2a80}.detail-hero h2{color:#f4dfc6;font-weight:500}.detail-hero .eyebrow{color:var(--shop);font-size:8px}.detail-story{color:#d2bdc6;font-size:13px;line-height:1.9}.real-address{color:#bea6b4}.pending{background:#4a3425;border-color:#966d3d;color:#f1c982}.mission{background:#332736;border-radius:0 4px 4px 0}.mission p{color:#f0dbc6}.mission .eyebrow{color:var(--shop)}.toast{background:#efe0c6;color:#2c1c2c;border-color:#e9c5a4}.child-list button{background:#36283a;border-color:#644758}.child-list small{color:#acccb6}select,input{background:#211b29;border-color:#795769;color:#f3dfc6;color-scheme:dark}.form-error{color:#f4a0a0}.scanner-box{background:#182624;border-color:#91bb9e;border-radius:9px}.scanner-status{color:#c3b3c0}.scan-frame{border-color:#e5b76d;border-radius:4px}.scan-alternatives summary{color:#dfb889}.kit-note{background:#3a2c28;border-color:#70563d;color:#d2b99d}.kit-note b{color:#f1d6b2}.qr-card{background:#302631;border-color:#705464;border-top-color:var(--shop);border-radius:6px}.qr-card .eyebrow{color:var(--shop)}.qr-card .qr svg{border:10px solid white;background:white;border-radius:4px}.source-table th{color:var(--gold)}.source-table td{color:#c4afba}.certificate-preview{color:var(--gold)}
body.carnet-view{background:var(--night)}.carnet-heading h1{font-weight:500}.carnet-options{background:#342634;border-color:#735168;color:var(--pink);border-radius:5px}.passport{background:#2b2130;border:1px solid #87604a;box-shadow:0 4px 0 #100e16;border-radius:12px}.passport::before{opacity:.13;filter:saturate(.65)}.passport::after{border-color:#725440;border-radius:7px}.passport-top{border-color:#62493f}.passport-name{color:var(--ink)}.passport-top strong{color:var(--gold)}.stamp-art{background:#251b2a;border-color:#806157;border-radius:38% 38% 50% 50%;transform:rotate(calc(var(--rotation)*.5))}.stamp-art::after{border-color:#654c48;border-radius:inherit}.stamp-art .portrait-sprite{border-radius:inherit}.stamp-item:not(.collected) .portrait-sprite{filter:grayscale(.7);opacity:.24}.stamp-item.collected .stamp-art{background:#251b2a;border:1px solid var(--shop);box-shadow:0 3px 0 #140d1b}.stamp-item.collected .stamp-art::before{background:#466554;border-color:#e8cba3;color:#fceaca}.stamp-item b{color:#ac95a3}.stamp-item.collected b{color:#ead7bf}.carnet-feedback{color:#dfbc8c}.carnet-action .primary{background:var(--gold);border-color:var(--gold);box-shadow:0 3px 0 #a46138;color:#231921}.mobile-nav{background:#211b28f7;border-top:1px solid #664a58;box-shadow:0 -6px 20px #120a1644;backdrop-filter:blur(15px)}.mobile-nav button{color:#c3aebb}.mobile-nav button.active{background:#513246;color:#f3bacb}.mobile-nav button.mobile-scan{background:var(--gold);color:#251923}.carnet-view .mobile-nav{background:#211b28;border-color:#664a58}.carnet-view .mobile-nav button.active{background:#513246;color:#f3bacb}.carnet-view .mobile-nav button.mobile-scan{background:var(--gold);color:#251923}
}
@media screen and (min-width:1440px){.intro{height:535px}.hero-copy{padding-top:65px}.night-scene{width:59%}.shop-row{min-height:149px}}
@media screen and (max-width:1100px){.header,main{padding-left:28px;padding-right:28px}.intro{height:440px;min-height:440px}.hero-copy{padding-top:44px;width:46%}.intro h1{font-size:47px}.hero-kicker{font-size:8px;letter-spacing:1.4px}.intro-text{max-width:285px;font-size:12px}.night-scene{width:56%;border-radius:160px 160px 5px 5px}.workspace{gap:25px;grid-template-columns:1.1fr 1fr}.section-bar h2,.list-heading h2{font-size:22px}.shop-row{min-height:145px}.shop-row-text b{font-size:12px}.shop-row-text small{font-size:8px}.footer{margin-left:28px;margin-right:28px}.adventure-strip{gap:18px}.scan-cta{min-width:180px}}
@media screen and (max-width:850px){.header{padding:19px 23px}.intro{height:390px;min-height:390px}.hero-copy{width:46%;padding:36px 0 55px}.intro h1{font-size:38px;letter-spacing:-1.3px}.intro h1 em{letter-spacing:-1.3px}.hero-kicker{font-size:7px;letter-spacing:1px;margin-bottom:18px}.intro-text{font-size:11px;max-width:230px}.hero-actions{margin-top:21px}.hero-actions .primary{padding:12px 17px;font-size:11px}.hero-edition{font-size:6px;gap:8px;bottom:15px;letter-spacing:.9px}.scene-caption{display:none}.night-scene{width:54%;border-radius:130px 130px 4px 4px}.workspace{grid-template-columns:1fr}.shop-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.shop-row{min-height:158px}.shop-symbol{width:83px;height:83px}.shop-row-text b{font-size:13px}.shop-row-text small{font-size:9px}.map-frame{height:470px}.adventure-strip{gap:17px;padding:19px}.scan-cta{width:auto;margin-left:auto;min-width:164px}.strip-progress{flex:1;min-width:160px}.passport-summary{min-width:175px}.name-button{font-size:17px}.scan-cta>span:last-child{display:none}.gentle-note{margin-top:17px}.guide-step{padding:22px}}
@media screen and (max-width:650px){
.demo-banner{font-size:7px;height:23px;letter-spacing:0}.header{padding:15px 19px;min-height:78px}.brand{font-size:24px}.brand-mark{width:34px;height:43px}.brand>span:last-child>span{font-size:10px;letter-spacing:1.1px}.edition{font-size:6px;letter-spacing:1px;line-height:1.8}.edition b{font-size:7px}main{padding:0 19px 30px}.intro{display:flex;flex-direction:column;overflow:visible;height:auto;min-height:0;margin-top:9px;gap:0}.hero-copy{order:0;width:100%;padding:15px 0 25px;text-align:center;max-width:none}.hero-kicker{margin-bottom:15px;font-size:7px;letter-spacing:1.5px;gap:8px}.hero-kicker::before{font-size:16px}.intro h1{font-size:39px;line-height:1.01;margin-bottom:16px;max-width:none;letter-spacing:-1.5px}.intro h1 br{display:block}.intro h1 em{display:block;font-size:43px;letter-spacing:-1.5px}.intro-text{font-size:11px;max-width:285px;margin:auto;line-height:1.7}.intro-text br{display:none}.hero-actions{justify-content:center;margin-top:19px}.hero-actions .primary{padding:12px 24px;min-height:46px;font-size:12px}.night-scene{order:1;position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.4;border-radius:110px 110px 4px 4px;background-size:cover;background-position:center;box-shadow:0 0 0 5px #211722,0 0 0 6px #674655;z-index:0}.hero-edition{order:2;position:relative;left:auto;bottom:auto;justify-content:center;font-size:6px;letter-spacing:1px;margin:17px 0 0;gap:10px}.hero-edition span{font-size:10px}.landmark-credit{font-size:7px;margin:9px 0 0}.landmark-credit summary{min-height:23px}.adventure-strip{margin:10px 0 30px;padding:17px;gap:13px;border-left-width:2px}.passport-summary{min-width:0;width:calc(100% - 53px)}.name-button{font-size:17px}.scan-cta{right:15px;top:17px;min-width:43px;width:43px;height:43px;min-height:43px;font-size:0;border-radius:6px;padding:9px}.strip-progress{width:100%;min-width:0;flex:auto}.progress-ring b{font-size:23px}#progress-caption{font-size:9px}.progress-track{height:4px}.section-bar,.list-heading{min-height:49px;margin-bottom:16px}.section-index{font-size:7px;letter-spacing:1.5px;margin-bottom:6px}.section-bar h2,.list-heading h2{font-size:23px}.repaires-count{font-size:35px}.workspace{gap:31px}.map-frame{height:440px;border-radius:3px}.map-tag{font-size:6px;padding:7px}.map-key{font-size:7px;gap:5px;padding:7px 9px}.text-button{font-size:9px}.map-caption{font-size:8px}.shop-list{display:grid;grid-template-columns:1fr 1fr;gap:13px 11px}.shop-row{min-height:166px;padding:10px 9px 14px;gap:7px;border-radius:50px 50px 5px 5px}.shop-symbol{width:90px;height:90px}.shop-symbol small{width:19px;height:19px;font-size:8px}.shop-row-text b{font-size:15px;line-height:1.13}.shop-row-text small{font-size:9px;line-height:1.3;margin-top:6px}.shop-row>.icon{width:13px;height:13px;top:12px;right:10px}.next-stop{padding:15px 14px;gap:11px;margin-top:17px}.next-stop h3{font-size:17px}.next-stop p{font-size:6px}.next-stop .address{font-size:9px}.next-icon{width:50px;height:50px}.footer{margin:0 19px;padding:22px 0}.footer-motto{font-size:13px}.mobile-nav{padding:8px 13px max(9px,env(safe-area-inset-bottom));gap:9px}.mobile-nav button{border-radius:6px;min-height:48px;font-size:9px}.mobile-nav .icon{width:20px;height:20px}.guide-step{padding:26px;border-radius:4px}.detail-hero{min-height:190px;padding:32px 20px 23px;gap:16px}.detail-symbol{width:112px;height:112px;border-width:1px}.detail-hero h2{font-size:26px;line-height:1.08}.detail-hero .eyebrow{font-size:6px;letter-spacing:.7px}.detail-story{font-size:12px}.dialog-actions .primary,.dialog-actions .secondary{font-size:10px}#view-carnet .passport{border-radius:9px}.passport::after{border-radius:4px}.carnet-heading h1{font-size:25px}.carnet-feedback{font-size:9px}.stamp-art{border-radius:38% 38% 50% 50%}.stamp-item b{font-size:10px}
}
@media screen and (max-width:360px){.header{padding:14px}.brand{font-size:21px}.brand-mark{width:30px;height:37px}.brand>span:last-child>span{font-size:9px}.edition{font-size:5px}.edition b{font-size:6px}main{padding-left:15px;padding-right:15px}.intro h1{font-size:35px}.intro h1 em{font-size:38px}.intro-text{font-size:10px;max-width:250px}.hero-copy{padding-top:10px}.hero-kicker{font-size:6px}.shop-symbol{width:78px;height:78px}.shop-row{min-height:157px}.shop-row-text b{font-size:13px}.shop-row-text small{font-size:8px}.map-key{font-size:6px}.section-bar h2,.list-heading h2{font-size:21px}.detail-symbol{width:87px;height:87px}.detail-hero h2{font-size:23px}.detail-hero{gap:14px}.stamp-item b{font-size:9px}.hero-edition{font-size:5px;gap:9px}}
@media screen and (min-width:851px){.shop-row{min-height:175px;padding-top:8px}.shop-symbol{width:103px;height:103px}.shop-row-text b{font-size:14px}.shop-row-text small{font-size:9px}.map-frame{height:620px}}
@media screen{.passport::before{background-image:url('assets/dia/papel-picado.svg');background-size:330px;background-position:center top -10px;background-repeat:no-repeat;opacity:.055}}
@media screen and (max-width:650px){.stamp-art{width:clamp(40px,calc((100dvh - 410px)/4),78px);height:clamp(40px,calc((100dvh - 410px)/4),78px)}.stamp-item{gap:4px}}
@media screen and (max-height:500px) and (orientation:landscape){.stamp-art{width:42px;height:42px}.carnet-action .primary{min-height:36px}.carnet-view .mobile-nav button{min-height:34px}.carnet-heading h1{font-size:22px}}
@media print{.qr-card .eyebrow{color:#594050!important}.qr-card{border-top-color:#291e35}.section-index{display:none}}

/* Less narration: the illustration, route and actions carry the page. */
@media screen{
.intro{height:410px;min-height:410px;margin-bottom:29px}
.hero-copy{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:20px 15px 20px 0}
.intro h1{margin-bottom:0}.hero-actions{margin-top:29px}
.footer{display:flex;justify-content:flex-end;align-items:center;padding:24px 0 30px}
.footer-logo{display:block;width:170px;height:auto;max-width:100%}
.guide-credits{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);font-size:11px}
.guide-credits summary{font-size:11px;min-height:44px;display:flex;align-items:center}
.guide-credits p{font-size:11px;line-height:1.8}
}
@media screen and (min-width:1440px){.intro{height:450px;min-height:450px}}
@media screen and (min-width:651px) and (max-width:850px){.intro{height:350px;min-height:350px}.hero-actions{margin-top:24px}}
@media screen and (max-width:650px){.intro{height:auto;min-height:0;margin-bottom:26px}.hero-copy{height:auto;align-items:center;padding:18px 0 27px}.hero-actions{margin-top:21px}.footer{justify-content:center;padding:22px 0}.footer-logo{width:155px}}
