/* Soleil Rose · composition 0.3. Local, sans police ni service distant. */
:root{color-scheme:dark;--night:#0b0d14;--cream:#ece7ec;--muted:#aaa8b2;--accent:#cfa0ba;--pink:#ce87a3;--line:#c9a9c02b;--rail:84px;--serif:'Baskerville','Iowan Old Style','Palatino Linotype',Georgia,serif;--sans:'Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-padding-bottom:90px}body{margin:0;background:var(--night);color:var(--cream);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 85% 20%,#28213566,transparent 60%)}h1,h2,h3,blockquote{font-family:var(--serif);font-weight:400}h1{font-size:clamp(3.2rem,6vw,6rem);line-height:1.03;letter-spacing:-.045em;margin:16px 0 28px}h2{font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.15;letter-spacing:-.025em}p{margin:0 0 1.2em}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;color:inherit;background:none;border:1px solid var(--line);padding:12px 24px}button:disabled{cursor:default;color:var(--muted)}a,button,input,summary{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}a:hover,summary:hover,button:not(:disabled):hover{color:var(--pink)}:focus-visible{outline:2px solid var(--pink);outline-offset:6px}main:focus{outline:none}::selection{background:#78445c;color:#fff}img{display:block;width:100%;height:auto}figure{margin:0}.eyebrow{font:10px/1.7 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.quiet{color:var(--muted);font-size:13px}.text-link{font-size:12px;letter-spacing:.06em;display:inline-block;padding:8px 0;border-bottom:1px solid #ce87a355}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--night);padding:14px}.skip:focus{top:14px}
/* Cinq accès directs : le soleil est à la fois logo et entrée du livre. */
#sidebar{position:fixed;inset:0 auto 0 0;width:var(--rail);z-index:30;border-right:1px solid var(--line);background:#0b0d14;display:flex;align-items:center;flex-direction:column;padding:27px 12px}
#navigation{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%}
#navigation>a{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex-shrink:0;color:#cdb3c4;border-radius:50%;transition:background .25s,color .25s}
#navigation>.brand{position:absolute;top:27px;margin:0}
#navigation>a svg,#navigation .logo{width:38px;height:38px;flex-shrink:0;overflow:visible;transition:filter .3s}
#navigation .logo{width:44px;height:44px;filter:drop-shadow(0 0 8px #ce87a32b)}
#navigation .seal-rose{stroke:#d999b7}#navigation .seal-faint{opacity:.32}#navigation .seal-wash{fill:#b96d9320;stroke:none}#navigation .seal-ember{fill:#eeb4cd;stroke:none}
#navigation>a:hover,#navigation>a:focus-visible,#navigation>a[aria-current=page]{background:radial-gradient(ellipse,#ce87a30c,transparent 72%);color:#edbbd4}
#navigation>a[aria-current=page] svg,#navigation>a:hover svg,#navigation>a:focus-visible svg{filter:drop-shadow(0 0 4px #df8db62b)}
#navigation>a[aria-current=page]::after{content:'';position:absolute;left:-12px;top:22px;width:3px;height:8px;border-radius:3px;background:#ce87a3;box-shadow:0 0 10px #ce87a344}
#navigation .nav-label{position:absolute;left:calc(100% + 15px);top:50%;transform:translate(5px,-50%);padding:10px 17px;background:#17131eed;border:1px solid #ce87a329;border-radius:3px;box-shadow:0 5px 28px #0003;font:italic 18px/1.3 var(--serif);color:#efdeea;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s}
#navigation>a:hover .nav-label,#navigation>a:focus-visible .nav-label{opacity:1;visibility:visible;transform:translate(0,-50%)}
#sound{border:0;margin-top:auto;padding:6px;min-width:48px;min-height:48px;display:grid;justify-items:center;font-size:23px;color:var(--muted)}#sound[aria-pressed=true]{color:var(--pink)}.sound-label{font-size:8px;letter-spacing:.05em}
main,footer{margin-left:var(--rail)}main{min-height:calc(100svh - 72px)}footer{padding:24px 20px;text-align:center;font-size:10px;letter-spacing:.09em;color:var(--muted)}
/* Le seuil. */
.intro{min-height:calc(100svh - 72px);background:#05060a;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;isolation:isolate;overflow:hidden}
.entry-atmosphere{position:absolute;inset:0;z-index:-3;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 50% 37%,#64364922,transparent 32%)}
.entry-atmosphere::before,.entry-atmosphere::after{content:'';position:absolute;inset:-22% -18%;background:url('assets/cercle-brume.png') center/cover;filter:saturate(.28);pointer-events:none;will-change:transform,opacity}
.entry-atmosphere::before{opacity:.44;transform-origin:30% 55%;mask-image:radial-gradient(ellipse,#000 16%,transparent 70%),linear-gradient(110deg,#000 5%,#000c 32%,transparent 66%);mask-composite:intersect;animation:entry-fog-near 23s ease-in-out -8s infinite alternate}
.entry-atmosphere::after{opacity:.3;transform-origin:75% 45%;mask-image:radial-gradient(ellipse,#000 16%,transparent 70%),linear-gradient(280deg,#000 6%,#0008 34%,transparent 69%);mask-composite:intersect;animation:entry-fog-far 31s ease-in-out -17s infinite alternate}
.intro::before{content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 50% 44%,#05060abf 10%,#05060a70 34%,transparent 65%),linear-gradient(#05060a 0%,transparent 24%,transparent 64%,#05060a 100%)}
.intro::after{content:'';position:absolute;inset:-10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 25%,#020308a6 68%,#020308 90%)}
.intro button{border:0;padding:45px;font:italic clamp(2.6rem,4.8vw,4.4rem)/1.3 var(--serif);letter-spacing:-.025em;color:#9b879b;position:relative}
.entry-question{display:block;position:relative;white-space:nowrap}
.entry-question::before{content:'';position:absolute;z-index:-1;inset:-100% -45%;pointer-events:none;background:radial-gradient(ellipse,#76607812,transparent 65%);filter:blur(15px);animation:entry-thought 17s ease-in-out infinite alternate}
.entry-letter{display:inline-block;opacity:.42;filter:blur(.5px);animation:entry-whisper 19s ease-in-out var(--letter-delay) infinite both;transition:opacity 1.6s,filter 1.6s,color 1.6s}
.intro button:hover .entry-letter{color:#ab98ab}
.intro button:focus-visible .entry-letter{animation:none;opacity:1;filter:none;color:#bdacbd}
@keyframes entry-whisper{0%,9%,100%{opacity:0;filter:blur(6px);transform:translateY(3px)}28%{opacity:.22;filter:blur(2px)}42%,51%{opacity:.62;filter:blur(.45px);transform:translateY(0)}70%{opacity:.18;filter:blur(2.5px)}85%{opacity:.04;filter:blur(4px);transform:translateY(-2px)}}
@keyframes entry-thought{from{opacity:.2;transform:translateX(-9%) scaleX(.7)}to{opacity:.8;transform:translateX(12%) scaleX(1.2)}}
.dot{display:block;width:5px;height:5px;margin:0 auto 43px;border-radius:50%;background:#ce87a3;box-shadow:0 0 15px #ce87a355,0 0 65px 16px #82405918}
.intro .dot{animation:entry-pulse 7.6s ease-in-out infinite}
.entry-signature{position:absolute;bottom:35px;font-size:9px;text-transform:uppercase;letter-spacing:.5em;color:#857882}
.at-entry footer{background:#05060a;color:#79717d}.at-entry .footer-tools>a{color:#8d7b87}
@keyframes entry-fog-near{from{transform:translate3d(-3%,1%,0) scale(1.22) rotate(-13deg);opacity:.36}to{transform:translate3d(3%,-2%,0) scale(1.34) rotate(-7deg);opacity:.53}}
@keyframes entry-fog-far{from{transform:translate3d(3%,-2%,0) scale(1.28) rotate(158deg);opacity:.24}to{transform:translate3d(-3%,2%,0) scale(1.38) rotate(166deg);opacity:.4}}
@keyframes entry-pulse{0%,100%{opacity:.55;transform:scale(.8);box-shadow:0 0 12px #ce87a333,0 0 55px 12px #8240590d}43%{opacity:1;transform:scale(1.08);box-shadow:0 0 20px #ce87a366,0 0 85px 22px #82405924}68%{opacity:.7;transform:scale(.92)}}
/* Un cercle suspendu dans la brume, huit présences accessibles. */
.circle-scene{position:relative;isolation:isolate;min-height:500px;height:calc(100svh - 76px);background:#090c16;overflow:hidden}
.circle-scene::before{content:'';position:absolute;inset:-12% -3% -3% -28%;z-index:-2;background-image:var(--scene-image);background-size:cover;background-position:center;--mist-low:.40;--mist-high:.52;opacity:.46;transform-origin:60% 54%;animation:mist-drift 18s ease-in-out infinite alternate,mist-breathe 9s ease-in-out infinite alternate;mask-image:radial-gradient(ellipse at 60% 54%,#000 12%,transparent 66%);pointer-events:none}
@keyframes mist-drift{from{transform:translate3d(-2%,-1%,0) scale(1.02) rotate(-1.3deg)}to{transform:translate3d(2%,1.2%,0) scale(1.075) rotate(1.3deg)}}
.circle-mist{position:absolute;inset:-12% -3% -3% -28%;z-index:-2;pointer-events:none;background:var(--scene-image) center/cover;opacity:.19;transform-origin:60% 54%;mask-image:radial-gradient(ellipse at 60% 54%,transparent 20%,#000 40%,transparent 64%);animation:mist-counterflow 15s ease-in-out -7s infinite alternate;will-change:transform,opacity}
@keyframes mist-counterflow{from{transform:translate3d(1.5%,1%,0) scale(1.04) rotate(1.8deg);opacity:.13}to{transform:translate3d(-1.8%,-1%,0) scale(1.085) rotate(-1.5deg);opacity:.25}}
@keyframes mist-breathe{from{opacity:var(--mist-low)}to{opacity:var(--mist-high)}}
.circle-scene::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 48%,transparent 20%,#090c1680 65%,#090c16 95%);pointer-events:none}
.circle-head{position:absolute;top:48%;left:50%;width:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}
.circle-presence{width:min(100%,420px);height:130px;margin:auto;color:#d5a1be;opacity:0;transform:translateY(5px);transition:opacity .7s,transform 1.2s;mask-image:linear-gradient(100deg,transparent 3%,#0005 15%,#000c 28%,#0003 43%,#0009 57%,#0002 72%,#0008 84%,transparent 97%);pointer-events:none}
.circle-presence.is-present{opacity:.28;transform:translateY(0)}
.circle-presence svg{width:100%;height:100%;overflow:visible;filter:blur(.7px) drop-shadow(0 0 8px #ce87a330)}
.trace-fragment{transform-origin:center;animation:trace-drift 9s ease-in-out infinite alternate}
.trace-0{opacity:.8}.trace-1{opacity:.4;animation-delay:-3s}.trace-2{opacity:.6;animation-delay:-6s}
@keyframes trace-drift{from{transform:translate(-2px,2px) rotate(-2deg)}to{transform:translate(3px,-2px) rotate(2deg)}}
.orbit{position:absolute;left:50%;top:48%;width:68%;height:49%;max-width:1060px;border:.5px solid #dfa6c047;border-radius:50%;transform:translate(-50%,-50%);animation:appear 2s ease both;box-shadow:0 0 42px #d493b00a,inset 0 0 42px #d493b00a}
.orbit.complete{border-color:#efb2d080;box-shadow:0 0 40px #ce87a318,inset 0 0 35px #ce87a30c}
.node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:54px;height:54px;border:1px solid transparent;border-radius:50%;display:grid;place-items:center;color:#e5d9e2;font:16px var(--serif);background:radial-gradient(circle,#13121a88,transparent 72%);transition:color .3s,background .3s,border-color .3s;z-index:1}
.node::before{content:'';position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);border-radius:50%;background:#bda9ba;box-shadow:0 0 9px #e5aec77a,0 0 24px #ce87a33b;transition:box-shadow .3s,background .3s}
.node-number{transform:translateY(24px);text-shadow:0 1px 9px #090b15}
.node:hover,.node:focus-visible{color:#fff0f6;border-color:#eeb6d24d;background:#33203070;z-index:4}
.node:hover::before,.node:focus-visible::before,.node.visited::before{background:#f6c0da;box-shadow:0 0 10px #f3a0c9,0 0 30px #da79ac88}
.node.visited .node-number{color:#eeb6d2}.node.visited::after{content:'';position:absolute;inset:18px;border:1px solid #eeb6d244;border-radius:50%}
.node-name{position:absolute;left:50%;top:64px;transform:translateX(-50%);font:italic 16px/1.4 var(--serif);white-space:nowrap;color:#f1dce7;background:#10101bcc;padding:6px 12px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s}
.node:hover .node-name,.node:focus-visible .node-name{opacity:1}
.secret{position:absolute;left:50%;top:57%;transform:translate(-50%,-50%);width:min(45%,480px);text-align:center;color:#edbfd5;font:italic 19px/1.5 var(--serif);z-index:3;pointer-events:none;text-shadow:0 1px 15px #080a12}
/* Index éditoriaux. */
.page{padding:60px clamp(28px,5vw,90px) 65px;max-width:1600px;margin:0 auto}.page-heading{margin-bottom:42px}.page-heading h1{margin-bottom:0}.figures-composition{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(35px,6vw,90px);align-items:start}.figure-cover{display:block;position:relative;overflow:hidden;background:#171622}.figure-cover .art{height:660px}.figure-cover img{height:100%;object-fit:cover;object-position:50% 36%;transition:transform 1.5s}.figure-cover:hover img{transform:scale(1.025)}.figure-cover::after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#080a11ed)}.cover-caption{position:absolute;z-index:1;bottom:35px;left:35px;right:35px}.cover-caption h2{max-width:300px;margin:12px 0 18px;font-size:38px}.cover-caption .text-link{color:var(--cream)}.index-intro{font:italic 21px/1.5 var(--serif);color:var(--muted);max-width:340px;margin:0 0 26px}.index-list{border-top:1px solid var(--line)}.index-row{display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);padding:25px 0;min-height:74px;transition:background .3s}.index-number{width:64px;flex-shrink:0;font:21px var(--serif);color:var(--accent)}.index-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.index-title{font:clamp(1.5rem,2.8vw,2.7rem)/1.15 var(--serif);letter-spacing:-.02em}.index-line{color:var(--muted);font-size:13px;max-width:600px}.index-arrow{margin-left:auto;flex-shrink:0;font-size:17px;color:var(--accent);padding-right:5px}.compact .index-row{padding:18px 0;gap:20px}.compact .index-number{width:24px;font-size:15px}.compact .index-title{font-size:24px}.protected-label{font-size:10px;color:var(--muted);letter-spacing:.06em}.return-circle{margin-top:23px}.secondary{margin-top:90px;padding-top:45px;border-top:1px solid var(--line)}.secondary h2{margin:14px 0 35px}.secondary .index-list{columns:2;column-gap:65px;border:0}.secondary .index-row{break-inside:avoid}.secondary .index-title{font-size:22px}.collection-page{max-width:1100px}.collection-page .index-row:hover{background:#ce87a305}
/* Aperçu au survol et au focus, sans navigation ni changement de progression. */
.figure-index .index-row.is-previewed .index-title{color:var(--pink)}
.figure-index .index-row.is-previewed .index-arrow{color:var(--pink)}
.figure-cover .art{animation:appear .35s ease both}
.preview-missing{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#302b3c,transparent 68%)}
.preview-missing>span{font:clamp(8rem,20vw,17rem)/1 var(--serif);color:#ce87a324;transform:translateY(-12%)}
.preview-note{color:var(--muted);font-size:13px;margin:0 0 16px}
/* Fiches : l’image et une ligne, puis une lecture à la demande. */
.detail-page{max-width:1600px;margin:auto;padding:35px clamp(28px,5vw,90px) 40px}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.detail-top .text-link{border:0}.feature{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(35px,6vw,90px);align-items:center}.feature .art{position:relative;min-width:0}.feature .art img{height:min(77svh,880px);min-height:530px;object-fit:contain;mask-image:linear-gradient(#000 90%,transparent)}.feature-copy{padding:25px 0}.feature h1{font-size:clamp(3rem,5.1vw,5.6rem);overflow-wrap:break-word}.feature blockquote{font:italic clamp(1.6rem,2.6vw,2.6rem)/1.45 var(--serif);color:#c4bcc0;margin:25px 0 40px;max-width:560px}.depth{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:32px 0 18px}summary{cursor:pointer;list-style:none;color:var(--accent);padding:18px 0;font-size:12px;letter-spacing:.1em;min-height:56px}summary::-webkit-details-marker{display:none}summary::after{content:'+';float:right;font-size:17px}details[open]>summary::after{content:'−'}.depth-content{padding:8px 0 20px;color:var(--muted);font-size:14px}.depth-content .eyebrow{margin-top:25px}.related{display:flex;flex-direction:column;gap:6px;font-size:12px}.related>a{padding:5px 0}.key{border-top:1px solid var(--line);margin-top:25px}.review{border:0;padding:10px 0;font-size:11px;letter-spacing:.04em}.review{display:inline-flex;align-items:center;gap:9px;font:italic 18px/1.3 var(--serif);letter-spacing:0}.review svg{width:30px;height:30px;flex-shrink:0}.review .availability{margin-left:3px;font:10px var(--sans)}.neighbors{display:flex;justify-content:space-between;gap:35px;margin-top:35px;border-top:1px solid var(--line);padding-top:24px}.neighbors a{display:flex;flex-direction:column;gap:8px;max-width:45%;font:22px/1.3 var(--serif)}.neighbors a:last-child{text-align:right}.neighbors .eyebrow{font-size:9px}.detail-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:30px}.keyboard-note{font-size:10px}.without-art .feature{display:block;max-width:760px;margin:65px auto}.without-art .feature-copy{position:relative;padding-left:38px;border-left:1px solid var(--line)}.without-art .feature h1{max-width:700px}.without-art .neighbors,.without-art .detail-bottom{max-width:900px;margin-left:auto;margin-right:auto}.silence{min-height:calc(100svh - 72px);max-width:900px;display:flex;flex-direction:column;justify-content:center;text-align:center;padding-top:70px;padding-bottom:65px}.silence h1{font-size:25px;letter-spacing:0;margin:10px 0 45px}.silence blockquote{font:italic clamp(1.8rem,3.1vw,3rem)/1.65 var(--serif);margin:0;color:#c8c3bd}.silence .neighbors{margin-top:65px;text-align:left}.silence>.text-link{align-self:center;margin-top:30px}.gate{max-width:800px;min-height:80svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.gate h1{font-size:clamp(3rem,6vw,5rem)}.gate>p:not(.eyebrow){color:var(--muted)}.gate-mark{display:block;width:1px;height:70px;background:linear-gradient(transparent,var(--accent));margin-bottom:40px}.gate #continue{margin:12px 0 20px;min-width:175px}.gate #continue span{margin-left:30px}
/* Livre et galerie. */
.book-composition{display:grid;grid-template-columns:.8fr 1fr;gap:10%;align-items:center;margin-top:55px}.book-cover{aspect-ratio:2/3;max-width:440px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:50px 25px;position:relative;border:1px solid #ce87a350;background:linear-gradient(125deg,#242131,#10121c 70%);box-shadow:16px 20px 50px #0004,inset 6px 0 #0a0b12}.book-name{font:clamp(2.6rem,5vw,5rem)/1 var(--serif);letter-spacing:-.04em;text-align:center;max-width:240px}.book-ring{width:95px;height:95px;border:1px solid var(--pink);border-right-color:transparent;border-radius:50%;transform:rotate(-25deg)}.book-author{font-size:9px;letter-spacing:.13em;text-align:center}.book-composition blockquote{font:italic 30px/1.5 var(--serif);margin:0 0 28px}.book-composition p{color:var(--muted)}.book-composition .dedication{font:20px var(--serif);margin:30px 0}.gallery{display:grid;grid-template-columns:1.35fr .8fr;gap:50px;align-items:start}.gallery figure:last-child{margin-top:95px}.gallery img{max-height:800px;object-fit:contain}.gallery figcaption{display:flex;flex-direction:column;gap:6px;margin-top:18px;font:23px var(--serif)}.gallery figcaption .quiet{font:11px var(--sans)}.search-page,.review-page{max-width:1000px;min-height:75svh}.search-page label{font-size:12px;color:var(--muted)}input{display:block;width:100%;border:0;border-bottom:1px solid var(--accent);background:transparent;color:var(--cream);font:28px var(--serif);padding:22px 0;margin:8px 0 30px;border-radius:0}input::placeholder{color:var(--muted)}.review-page>.quiet{margin-top:25px}
@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes reveal-scene{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}.page,.detail-page{animation:appear .65s ease both}
@media(min-width:1500px){.figure-cover .art{height:740px}.compact .index-row{padding:23px 0}.compact .index-title{font-size:27px}}
@media(max-width:1100px){.figures-composition{gap:35px}.figure-cover .art{height:580px}.compact .index-title{font-size:21px}.cover-caption{left:24px;bottom:25px}.cover-caption h2{font-size:32px}.feature{gap:35px}.feature h1{font-size:52px}.feature .art img{min-height:450px}.secondary .index-list{column-gap:35px}.book-composition{gap:45px}.book-composition h1{font-size:55px}}
@media(max-width:760px){:root{--rail:0px}#sidebar{top:auto;bottom:0;width:100%;height:calc(76px + env(safe-area-inset-bottom));padding:6px 12px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);flex-direction:row;gap:8px}
#navigation{flex:1;flex-direction:row;justify-content:space-around;gap:2px}#navigation>.brand{position:relative;top:auto;margin:0}#navigation>a{width:48px;height:54px}#navigation>a svg{width:31px;height:31px}#navigation .logo{width:36px;height:36px}#navigation>a[aria-current=page]::after{left:22px;top:auto;bottom:0;width:4px;height:4px}#navigation .nav-label{top:auto;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,5px);font-size:15px;padding:8px 12px}#navigation>a:hover .nav-label,#navigation>a:focus-visible .nav-label{transform:translate(-50%,0)}#navigation>.brand .nav-label{left:-4px;transform:translateY(5px)}#navigation>.brand:hover .nav-label,#navigation>.brand:focus-visible .nav-label{transform:translateY(0)}#sound{margin:0;padding:3px;min-width:40px;font-size:21px}.sound-label{font-size:8px}main,footer{margin-left:0}main{min-height:calc(100svh - 140px)}footer{padding:24px 18px calc(95px + env(safe-area-inset-bottom));font-size:9px;letter-spacing:.04em}.page{padding:38px 25px 45px}.page-heading{margin-bottom:30px}h1{font-size:56px}.eyebrow{font-size:9px}.intro{min-height:calc(100svh - 140px)}.intro button{font-size:43px}.entry-signature{bottom:25px}.circle-scene{height:calc(100svh - 140px);min-height:430px}.circle-scene::before{inset:0 -60% 0 -100%;--mist-low:.36;--mist-high:.46;opacity:.41}.circle-presence{width:100%;height:100px}.orbit{width:73%;height:52%}.node{width:44px;height:44px}.node-name{white-space:normal;width:125px;text-align:center;font-size:14px;z-index:5}.node:nth-child(3) .node-name{left:auto;right:-8px;transform:none}.node:nth-child(7) .node-name{left:-8px;transform:none}.secret{top:60%;font-size:15px;width:56%;padding:8px}.figures-composition{grid-template-columns:1fr;gap:30px}.figure-cover .art{height:460px}.figure-cover img{object-position:50% 28%}.cover-caption{left:25px;bottom:25px}.cover-caption h2{max-width:280px;font-size:34px}.index-intro{font-size:20px;margin-bottom:25px}.compact .index-row{padding:18px 0}.compact .index-title{font-size:23px}.secondary{margin-top:55px;padding-top:30px}.secondary .index-list{columns:1}.index-row{gap:18px;padding:23px 0}.index-number{width:48px;font-size:18px}.index-title{font-size:28px}.index-line{font-size:12px}.detail-page{padding:20px 25px 35px}.detail-top{margin-bottom:20px}.detail-top>.eyebrow{display:none}.feature{display:flex;flex-direction:column;gap:0;align-items:stretch}.feature .art{margin:0 -25px}.feature .art img{height:60svh;min-height:390px;max-height:650px;object-fit:contain;mask-image:linear-gradient(#000 87%,transparent)}.feature-copy{padding:24px 0 0}.feature h1{font-size:48px;max-width:500px}.feature blockquote{font-size:27px;margin:20px 0 30px}.depth{margin-top:28px}.neighbors{gap:28px;margin-top:35px;padding-top:22px}.neighbors a{font-size:19px}.neighbors .eyebrow{font-size:8px;letter-spacing:.12em}.detail-bottom{flex-direction:column;align-items:flex-start;gap:14px}.keyboard-note{font-size:9px}.without-art .feature{margin:45px 0}.without-art .feature-copy{padding-left:22px}.silence{min-height:calc(100svh - 70px);padding:60px 30px}.silence blockquote{font-size:27px;line-height:1.6}.silence .neighbors{margin-top:50px}.silence h1{font-size:23px}.gate{min-height:calc(100svh - 150px)}.gate h1{font-size:48px}.book-composition{grid-template-columns:1fr;gap:50px;margin-top:30px}.book-cover{max-width:300px;width:85%;margin:auto;padding:35px 20px}.book-name{font-size:56px}.book-ring{width:65px;height:65px}.book-composition h1{font-size:55px}.book-composition blockquote{font-size:28px}.gallery{grid-template-columns:1fr;gap:40px}.gallery figure:last-child{margin:0 12%}.gallery figcaption{font-size:21px}.gallery figcaption .quiet{font-size:10px}.search-page label{font-size:11px}input{font-size:25px}}
@media(max-width:370px){h1{font-size:48px}.compact .index-title{font-size:21px}.feature h1{font-size:43px}.neighbors a{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Le livre : un paysage continu, puis quatre respirations. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.at-book footer{display:none}
.book-journey{--book-screen:100svh;--book-drift:0px;--book-shade:.08;position:relative;isolation:isolate;background:var(--night)}
.book-atmosphere{position:sticky;top:0;height:var(--book-screen);margin-bottom:calc(-1 * var(--book-screen));overflow:hidden;z-index:0}
.book-atmosphere img{position:absolute;inset:-4% 0;width:100%;height:108%;object-fit:cover;object-position:50% 66%;transform:translate3d(0,var(--book-drift),0);will-change:transform}
.book-atmosphere::after{content:'';position:absolute;inset:0;background:#090a15;opacity:var(--book-shade);pointer-events:none}
.book-sequence{position:relative;z-index:1;pointer-events:none}
.book-opening,.book-beat,.book-exit{min-height:var(--book-screen)}
.book-beat,.book-exit{display:flex;align-items:center;justify-content:center;padding:12vh clamp(30px,8vw,140px);text-align:center}
.book-beat p{margin:0;max-width:950px;font:400 clamp(2rem,4.5vw,4.7rem)/1.4 var(--serif);letter-spacing:-.025em;text-wrap:balance;color:var(--cream);text-shadow:0 2px 28px #090a1580}
.book-animated .book-beat p{opacity:0;transform:translateY(18px);transition:opacity 1.3s ease,transform 1.8s ease}
.book-animated .book-beat.is-visible p{opacity:1;transform:none}
.book-exit .text-link{pointer-events:auto;font-size:14px;letter-spacing:.08em;padding:12px 0;color:var(--cream)}
.book-exit .text-link:hover{color:var(--pink)}
@media(max-width:760px){.book-journey{--book-screen:calc(100svh - 70px - env(safe-area-inset-bottom));padding-bottom:calc(70px + env(safe-area-inset-bottom))}.book-beat,.book-exit{padding:12vh 30px}.book-beat p{font-size:clamp(2rem,7.7vw,3.2rem);line-height:1.5}.book-atmosphere img{object-position:50% 66%}}
@media(prefers-reduced-motion:reduce){.book-atmosphere img{transform:none;will-change:auto}.book-animated .book-beat p{opacity:1;transform:none;transition:none}}

/* Une recherche dessinée comme un trait de lumière, commune aux pages. */
.topbar{position:relative;z-index:10;height:76px;margin-left:var(--rail);padding:0 5%;display:flex;align-items:center;justify-content:flex-end;background:linear-gradient(105deg,#0b0d14,#15111c);transition:margin-left .35s}
.topbar::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ce87a321,transparent)}

.at-entry .topbar{display:none}
#site-search{position:relative;display:flex;align-items:center;gap:14px;width:min(100%,390px);height:52px;padding:0 4px;color:#c49aaf;isolation:isolate}
#site-search::before{content:'';position:absolute;inset:-9px -18px;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#b9689415,transparent 70%);opacity:.5;transition:opacity .4s}
#site-search::after{content:'';position:absolute;left:47px;right:4px;bottom:3px;height:.5px;background:linear-gradient(90deg,transparent,#cd8aa645 30%,#dba9be18 70%,transparent);transition:opacity .4s}
#site-search #q:focus-visible{outline:none;box-shadow:0 1px 0 #e9b5cf80}#site-search:focus-within::before{opacity:1}#site-search:focus-within::after{background:linear-gradient(90deg,transparent,#e9b5cf80 35%,#cd8aa633 70%,transparent)}
#site-search>.search-mark{width:32px;height:32px;flex-shrink:0}
#site-search input{min-width:0;flex:1;width:auto;padding:10px 0;margin:0;border:0;outline-offset:4px;font:italic 18px/1.5 var(--serif);letter-spacing:.01em;color:#f0dfe9}
#site-search input::placeholder{color:#b6a1b1;opacity:1}
#site-search button{border:0;padding:8px;min-width:44px;min-height:44px;color:#c49aaf;transition:color .2s,transform .2s}
#site-search button svg{width:29px;height:24px;display:block}
#site-search button:hover{color:#f0bfd6;transform:translateX(3px)}
.search-page{position:relative;isolation:isolate;max-width:1180px;min-height:calc(100svh - 148px);padding-top:70px}
.search-page::before{content:'';position:absolute;inset:0 -10vw;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0b0d14ee,#0b0d14aa),url('assets/cercle-brume.png') 65% 45%/cover;opacity:.5;mask-image:linear-gradient(#000,transparent)}
.search-page .page-heading{margin-bottom:55px}.search-page h1{font-style:italic}.search-page .eyebrow{color:#bda0b4}
.search-invitation{font:italic clamp(1.6rem,3vw,2.5rem)/1.5 var(--serif);color:#d3bacb;margin:35px 0 15px}
#results>.quiet{font-size:11px;letter-spacing:.1em;margin-bottom:28px}
#results .index-list{border-color:#ce87a325}#results .index-row{padding:28px 10px;border-color:#ce87a325;transition:background .3s,padding .3s}
#results .index-row:hover{padding-left:18px;background:linear-gradient(90deg,#ce87a309,transparent)}
#results .index-title{font-size:clamp(1.5rem,2.5vw,2.2rem)}#results .index-number,#results .index-arrow{color:#c38da9}
#results .index-line{max-width:680px;color:#b9abb8}
@media(max-width:760px){.topbar{height:68px;margin-left:0;padding:0 7%}#site-search{width:100%;gap:10px}#site-search input{font-size:17px}.search-page{padding-top:45px}.search-page .page-heading{margin-bottom:35px}}

/* La révision reste à la fin de la lecture. */

footer{display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap}
.footer-tools>a{display:flex;align-items:center;gap:8px;color:#bba5b4}
.footer-tools svg{width:30px;height:30px}.footer-tools .nav-label{font:italic 18px var(--serif);letter-spacing:0}
.footer-tools .seal-wash{fill:#b96d9318;stroke:none}.footer-tools .seal-faint{opacity:.3}.footer-tools .seal-rose{stroke:#d999b7}.footer-tools .seal-ember{fill:#d999b7;stroke:none}
.footer-tools>a:hover{color:var(--pink)}
@media(max-width:760px){footer{gap:10px 24px}}

/* Le cercle occupe seul la scène ; les outils restent en retrait. */
.at-circle .topbar{background:#090c16}
.at-circle .topbar::after{opacity:0}
.at-circle #site-search{opacity:.65;transition:opacity .3s}
.at-circle #site-search:hover,.at-circle #site-search:focus-within{opacity:1}
.at-circle main{min-height:0}
.at-circle .node-number{font-size:14px;opacity:.7}

/* Recherche : une ligne dans la nuit, puis des fragments. */
.search-measure{position:absolute;visibility:hidden;white-space:pre;font:italic 18px/1.5 var(--serif);letter-spacing:.01em;pointer-events:none}
.search-caret{display:none}
.at-search{background:#060810}
.at-search main{min-height:calc(100svh - 76px)}
.at-search .topbar{position:absolute;inset:0 0 auto var(--rail);margin:0;height:0;padding:0;background:none;z-index:20}
.at-search .topbar::after{display:none}
.at-search #site-search{position:absolute;top:29svh;left:50%;transform:translateX(-50%);width:min(650px,76%);height:70px;gap:0;padding:0;opacity:1}
.at-search #site-search>.search-mark,.at-search #site-search>button{display:none}
.at-search #site-search::before{inset:-80px -120px;background:radial-gradient(ellipse,#ce87a308,transparent 70%)}
.at-search #site-search::after{left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,#cfa0ba55 40%,#cfa0ba55 60%,transparent)}
.at-search #site-search input{font:italic clamp(24px,3vw,36px)/1.5 var(--serif);letter-spacing:.01em;padding:10px 0;color:#e9dae4;caret-color:transparent;background:transparent;outline:none}
.at-search #site-search input::placeholder{color:#c5a8ba;opacity:.25}
.at-search .search-measure{font:italic clamp(24px,3vw,36px)/1.5 var(--serif)}
.at-search #site-search:focus-within .search-caret{display:block;position:absolute;left:var(--caret-x,0px);top:50%;width:5px;height:5px;border-radius:50%;background:#e5a3c5;transform:translate(-50%,-50%);box-shadow:0 0 14px #d38baf66;pointer-events:none;animation:search-breath 3.5s ease-in-out infinite}
.at-search .search-page{position:relative;isolation:isolate;min-height:calc(100svh - 76px);max-width:none;padding:calc(29svh + 108px) max(8%,calc((100% - 650px)/2)) 80px;animation:appear .6s ease}
.at-search .search-page::before{position:fixed;inset:0 0 0 var(--rail);background:linear-gradient(#060810bb,#060810ee),url('assets/cercle-brume.png') center/cover;opacity:.38;mask-image:none}
#close-search{position:absolute;top:25px;right:5%;border:0;font:200 32px/1 var(--sans);padding:12px;color:#b6a1b1;opacity:.7}
#close-search:hover,#close-search:focus-visible{opacity:1}
.at-search #results{transition:opacity .24s,filter .24s,transform .24s}
.at-search #results.is-dissolving{opacity:0;filter:blur(8px);transform:translateY(-7px);pointer-events:none}
.search-fragment{display:flex;align-items:baseline;gap:28px;padding:20px 0;animation:fragment-rise 1.1s both;animation-delay:var(--fragment-delay);transition:color .3s}
.fragment-number{flex:0 0 42px;color:#b58aa3;font:14px/1.5 var(--serif);letter-spacing:.12em}
.fragment-copy{display:flex;flex-direction:column;gap:7px}
.fragment-name{font:clamp(23px,2.6vw,32px)/1.25 var(--serif);color:#dacbd7}
.fragment-line{font:italic 16px/1.6 var(--serif);color:#a896a8}
.search-fragment:hover .fragment-name,.search-fragment:focus-visible .fragment-name{color:#f0bfd6}
.search-silence{font:italic 23px/1.6 var(--serif);color:#b6a1b1;text-align:center;padding:30px 0;animation:fragment-rise 1.4s both}
.search-whisper{position:absolute;top:calc(29svh + 135px);left:50%;transform:translateX(-50%) translateY(10px);width:min(570px,72%);text-align:center;color:#bfa8bd;font:italic 21px/1.8 var(--serif);opacity:0;filter:blur(5px);transition:opacity 2s,filter 2s,transform 2s;pointer-events:none}
.search-whisper.is-visible{opacity:.45;filter:blur(0);transform:translateX(-50%) translateY(0)}
.at-search footer{display:none}
@keyframes search-breath{0%,100%{opacity:.4;box-shadow:0 0 8px #d38baf33}50%{opacity:1;box-shadow:0 0 18px #d38baf80}}
@keyframes fragment-rise{from{opacity:0;filter:blur(9px);transform:translateY(22px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}

/* Portrait et noms forment un seul ensemble centré dans l’espace disponible. */
.figures-page{max-width:none;padding:0 40px 40px}
.figures-primary{--portrait-height:clamp(240px,calc(100svh - 170px),780px);--portrait-width:calc(var(--portrait-height) * 2 / 3);--figure-gap:clamp(48px,7vw,112px);--names-width:clamp(280px,28vw,430px);width:calc(var(--portrait-width) + var(--figure-gap) + var(--names-width));max-width:100%;height:calc(100svh - 76px);margin:0 auto;display:flex;flex-direction:column;justify-content:center;padding:12px 0 20px}
.figures-primary .page-heading{margin:0 0 18px}
.figures-primary h1{font-size:clamp(34px,3.5vw,48px);line-height:1.05;margin:0}
.figures-primary .figures-composition{flex:0 0 auto;min-height:0;height:var(--portrait-height);gap:var(--figure-gap);grid-template-columns:var(--portrait-width) minmax(0,1fr);align-items:stretch}
.figures-primary .figure-cover{min-height:0;height:100%;width:100%;aspect-ratio:2/3;overflow:hidden}
.figures-primary .figure-cover .art{height:100%;width:100%}
.figures-primary .figure-cover img{height:100%;width:100%;object-fit:contain;object-position:center;transform:none}
.figures-primary .cover-caption{left:22px;right:22px;bottom:16px}
.figures-primary .cover-caption h2{font-size:clamp(22px,2.5vw,32px);margin:8px 0 0;max-width:none}
.figures-primary .figure-index{min-height:0;display:flex;flex-direction:column}
.figures-primary .index-list{border:0;flex:1;min-height:0;display:grid;grid-template-rows:repeat(8,minmax(0,1fr))}
.figures-primary .index-row{padding:0;gap:20px;min-height:0;border:0}
.figures-primary .index-title{font-size:clamp(24px,2.6vw,38px)}
.figures-primary .index-number{font-size:12px;width:20px;opacity:.65}
.figures-page .secondary{max-width:880px;margin:32px auto 0}
.silence{max-width:1500px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding:35px 5%}
.silence .art img{height:calc(100svh - 160px);min-height:420px;max-height:800px;object-fit:contain}
.silence .silence-copy{min-width:0}.silence blockquote{font-size:clamp(21px,2.4vw,32px)}
@media(max-width:760px){
 .at-search .topbar{left:0}.at-search .search-page::before{left:0}
 .at-search #site-search{top:25svh;width:80%}
 .at-search .search-page{padding:calc(25svh + 95px) 10% 110px;min-height:calc(100svh - 72px)}
 .search-whisper{top:calc(25svh + 115px);font-size:18px}
 .search-fragment{gap:16px;padding:16px 0}.fragment-number{flex-basis:34px}.fragment-line{font-size:14px}
 .figures-page{padding:0 24px 25px}.figures-primary{width:100%;height:calc(100svh - 140px);min-height:390px;padding:20px 0;--figure-gap:22px}
 .figures-primary .page-heading{margin-bottom:24px}.figures-primary h1{font-size:32px}
 .figures-primary .figures-composition{height:min(52svh,420px);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:center}
 .figures-primary .figure-cover{height:auto;align-self:center}.figures-primary .figure-cover .art{aspect-ratio:2/3}
 .figures-primary .figure-index{height:100%}.figures-primary .index-title{font-size:clamp(16px,4vw,23px)}.figures-primary .index-row{gap:8px}
 .figures-primary .index-number{width:12px;font-size:10px}
 .figures-primary .cover-caption{left:10px;right:10px;bottom:10px}.figures-primary .cover-caption h2{font-size:18px}
 .figures-primary .cover-caption .eyebrow{font-size:7px}
 .silence{display:block;padding:20px 25px}.silence .art img{height:52svh;min-height:300px}.silence .silence-copy{padding-top:25px}
}
@media(prefers-reduced-motion:reduce){.search-whisper{filter:none}.search-fragment{animation:none}.at-search #results.is-dissolving{filter:none}.search-whisper.is-visible{transform:translateX(-50%)}}

.figures-primary .figure-cover::after{inset:65% 0 0;background:linear-gradient(transparent,#080a1199)}

/* Les noms restent des signes, posés sous les huit présences. */
.circle-field{position:absolute;inset:9% 5% 11%}
.circle-field .orbit{top:50%;width:78%;height:64%;animation:none}
.circle-field .orbit.is-breathing{transform:translate(-50%,-50%) translate(var(--smoke-x,0px),var(--smoke-y,0px)) rotate(var(--smoke-angle,0deg)) scale(var(--smoke-scale,1));will-change:transform}
.circle-field .orbit::after{content:'';position:absolute;inset:-.5px;border:.5px solid #efb2d060;border-radius:50%;box-shadow:0 0 42px #d493b014,inset 0 0 42px #d493b014;opacity:var(--smoke-intensity,0);pointer-events:none}
@media(prefers-reduced-motion:reduce){.circle-field .orbit.is-breathing{transform:translate(-50%,-50%);will-change:auto}.circle-field .orbit::after{opacity:0}}
.circle-field .node{padding:0;cursor:default;outline-offset:4px}
.node-script{position:absolute;top:43px;left:50%;transform:translateX(-50%);color:#eee4d4;opacity:.48;pointer-events:none;transition:opacity .6s}
.node-script svg{display:block;height:36px;width:auto;max-width:none}
.circle-field .node:hover,.circle-field .node:focus-visible{border-color:transparent;background:transparent}
.circle-field .node:hover::before,.circle-field .node:focus-visible::before{background:#e6d5db;box-shadow:0 0 12px #e6d5db44}
.circle-field .node:hover .node-script,.circle-field .node:focus-visible .node-script{opacity:.72}
.circle-field .node.is-traced::before{background:#d5a0b9;box-shadow:0 0 14px #ce87a32b}
.circle-field .node.is-traced::after{content:'';position:absolute;inset:17px;border-radius:50%;background:#ce87a30b;filter:blur(4px)}
.circle-field .orbit.is-aligned{border-color:#e49bbb;box-shadow:0 0 45px #ce87a33b,inset 0 0 48px #ce87a326;transition:border-color 2s,box-shadow 2s}
.circle-field .orbit.is-aligned .node::before{background:#f0b4d0;box-shadow:0 0 17px #d992b588}
.circle-field .orbit.is-aligned .node-script{color:#e5adca;opacity:.8}
.circle-field .orbit.is-aligned .node[data-figure="0"]{cursor:pointer}
.at-hidden-sun{background:#000}
.at-hidden-sun::before,.at-hidden-sun #sidebar,.at-hidden-sun .topbar,.at-hidden-sun footer,.at-hidden-sun .skip{display:none}
.at-hidden-sun main{margin:0;background:#000;min-height:100svh}
.hidden-sun{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:44px;padding:50px 9%;text-align:center}
.sun-writing{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:22px;row-gap:23px;max-width:800px;color:#e8dfcd}
.sun-word{width:calc(var(--columns) * 16px)}
.sun-word svg{display:block;width:100%;height:auto}
.sun-writing path{stroke-dasharray:1;stroke-dashoffset:1;animation:sun-inscribe .85s ease forwards;animation-delay:var(--sign-delay)}
.hidden-sun h1{font:italic clamp(20px,2.5vw,31px)/1.6 var(--serif);letter-spacing:0;max-width:760px;margin:0;color:#ddcbd4;opacity:0;animation:sun-translate 4s ease forwards;animation-delay:var(--translation-delay)}
@keyframes sun-inscribe{to{stroke-dashoffset:0}}
@keyframes sun-translate{to{opacity:.88}}
@media(max-width:760px){.circle-field{inset:7% 3% 12%}.circle-field .orbit{width:70%;height:64%}.node-script svg{height:27px}.node-script{top:38px}.hidden-sun{gap:36px}.sun-word{width:calc(var(--columns) * 12px)}.sun-writing{column-gap:17px;row-gap:18px}}
@media(prefers-reduced-motion:reduce){.sun-writing path{stroke-dashoffset:0}.hidden-sun h1{opacity:.88}}

/* Un geste fait avancer d’un écran, avec un arrêt au centre de chaque phrase. */
.at-book{overflow:hidden}
.at-book .topbar{display:none}
.at-book main{height:100svh;min-height:0}
.book-journey{height:var(--book-screen);overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scroll-behavior:auto;scrollbar-width:thin}
.book-journey.is-moving{scroll-snap-type:none}
.book-opening,.book-beat,.book-exit{height:var(--book-screen);min-height:var(--book-screen);scroll-snap-align:start;scroll-snap-stop:always}
.book-beat{display:block;padding:0 clamp(30px,8vw,140px);position:relative}
.book-hold{height:100%;display:flex;align-items:center;justify-content:center}
.book-animated .book-beat p{opacity:var(--beat-opacity,1);transform:none;transition:none}
@media(max-width:760px){.at-book main{height:calc(100svh - 70px - env(safe-area-inset-bottom))}.book-journey{padding-bottom:0}.book-beat{padding:0 28px}}
@media(prefers-reduced-motion:reduce){.book-animated .book-beat p{opacity:1}}

/* Une même fenêtre verticale pour chaque présence, avec le texte hors de l’image. */
.presences-page{max-width:1280px;padding-top:52px}
.presences-page .page-heading{margin-bottom:46px}
.presences-page h1{font-size:clamp(38px,4.5vw,64px)}
.figures-page .presence-section{max-width:1120px;margin:40px auto 0;padding-top:56px}
.presence-section h2{font-size:clamp(32px,3.4vw,48px);margin:12px 0 42px}
.presence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,3vw,46px);row-gap:58px}
.presence-card{display:block;min-width:0;align-self:start}
.presence-portrait{aspect-ratio:2/3;overflow:hidden;background:#11111d}
.presence-portrait img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .5s}
.presence-copy{padding:20px 0 0}
.presence-copy .eyebrow{font-size:10px;letter-spacing:.18em;margin:0 0 10px;color:var(--accent)}
.presence-copy h3{font:clamp(23px,2.3vw,31px)/1.18 var(--serif);font-weight:400;margin:0 0 12px;color:var(--cream);transition:color .3s}
.presence-description{font:17px/1.55 var(--serif);color:var(--muted);margin:0;max-width:34ch}
.presence-card:hover h3,.presence-card:focus-visible h3{color:#e3b2c9}
.presence-card:hover img{filter:brightness(1.06)}
.presence-card:focus-visible{outline:1px solid #b88ca6;outline-offset:9px}
@media(max-width:1100px){.presence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.presences-page{padding:32px 28px 50px}.presences-page .page-heading{margin-bottom:32px}.presence-grid{grid-template-columns:minmax(0,1fr);gap:42px;max-width:360px;margin:auto}.presence-copy h3{font-size:28px}.presence-description{font-size:18px}.figures-page .presence-section{padding-top:36px}.presence-section h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){.presence-portrait img,.presence-copy h3{transition:none}}

/* Deux arrêts verticaux ; les autres présences se parcourent latéralement. */
.at-figures{overflow:hidden}
.at-figures main{min-height:0;height:calc(100svh - 76px)}
.at-figures footer{display:none}
.at-figures .figures-page{height:100%;padding:0;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scrollbar-width:none}
.at-figures .figures-page.is-moving{scroll-snap-type:none}
.at-figures .figures-primary,.at-figures .presence-section{height:100%;min-height:100%;scroll-snap-align:start;scroll-snap-stop:always}
.at-figures .figures-primary{max-width:calc(100% - 80px)}
.at-figures .presence-section{max-width:none;margin:0;border:0;padding:24px 5% 18px;display:flex;flex-direction:column;justify-content:center}
.at-figures .presence-section>.eyebrow{margin:0 0 4px}
.at-figures .presence-section h2{font-size:clamp(28px,3.2vw,44px);margin:0 0 22px}
.at-figures .presence-grid{flex-shrink:0;display:flex;gap:clamp(24px,3vw,44px);overflow-x:auto;overflow-y:hidden;max-width:none;margin:0;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b88ca650 transparent;padding:0 0 14px}
.at-figures .presence-card{flex:0 0 clamp(150px,calc((100svh - 390px) * 2 / 3),330px);scroll-snap-align:start;scroll-snap-stop:always}
.at-figures .presence-copy{padding-top:14px}
.at-figures .presence-copy .eyebrow{margin-bottom:6px;font-size:9px}
.at-figures .presence-copy h3{font-size:clamp(20px,1.7vw,26px);margin-bottom:8px}
.at-figures .presence-description{font-size:14px;line-height:1.4}
.book-exit .text-link{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.1vw,30px);font-weight:400;letter-spacing:0}
@media(max-width:760px){
 .at-figures main{height:calc(100svh - 138px - env(safe-area-inset-bottom))}
 .at-figures .figures-primary{max-width:calc(100% - 40px);min-height:100%;padding:12px 0}
 .at-figures .presence-section{padding:16px 24px 10px}
 .at-figures .presence-section h2{font-size:30px;margin-bottom:18px}
 .at-figures .presence-card{flex-basis:clamp(180px,calc((100svh - 390px) * 2 / 3),280px)}
 .at-figures .presence-grid{gap:24px}
}
@media(max-height:540px) and (min-width:761px){
 .at-figures .presence-section{padding-top:12px;padding-bottom:8px}
 .at-figures .presence-card{flex-basis:340px;display:grid;grid-template-columns:140px 1fr;gap:16px}
 .at-figures .presence-copy{padding:0}
}

/* Sceaux du souffle et du passage, dessinés comme les autres icônes. */
.sound-seal{width:33px;height:33px;opacity:.7;transition:opacity .4s}
#sound:hover .sound-seal,#sound:focus-visible .sound-seal,#sound[aria-pressed=true] .sound-seal{opacity:1}
.sound-wave{opacity:.55}
#sound[aria-pressed=true] .sound-wave{animation:sound-breath 4.8s ease-in-out var(--wave-delay) infinite}
@keyframes sound-breath{0%,100%{opacity:.4}50%{opacity:1}}
@media(max-width:760px){.circle-mist{inset:0 -60% 0 -100%}.sound-seal{width:27px;height:27px}}

@media(prefers-reduced-motion:reduce){.entry-letter{opacity:.5;filter:none;transform:none}.intro button:focus-visible .entry-letter{opacity:1}}

/* Au clic, le paysage du livre émerge derrière le seuil. */
.entry-departure{position:fixed;min-height:0;z-index:12;pointer-events:none;animation:entry-dissolve 3.8s cubic-bezier(.4,0,.3,1) both}
.entry-departure #enter,.entry-departure .entry-signature{animation:entry-question-dissolve 2.4s ease-in both}
.book-journey.is-emerging{animation:book-landscape-arrive 6.2s cubic-bezier(.25,.1,.3,1) both;pointer-events:none}
@keyframes entry-dissolve{0%,12%{opacity:1}100%{opacity:0}}
@keyframes entry-question-dissolve{from{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(13px);transform:translateY(-7px)}}
@keyframes book-landscape-arrive{from{opacity:0;filter:blur(12px)}30%{opacity:.15;filter:blur(7px)}70%{opacity:.7;filter:blur(2px)}to{opacity:1;filter:blur(0)}}

/* Les symboles ont leur propre sceau, à hauteur du texte. */
.symbols-page .index-row{gap:clamp(26px,4vw,54px);min-height:148px;padding:22px 0}
.symbol-seal{width:100px;height:100px;flex:0 0 100px;overflow:visible;opacity:.82;transition:opacity .7s,filter .7s}
.symbols-page .index-row:hover .symbol-seal,.symbols-page .index-row:focus-visible .symbol-seal{opacity:1;filter:drop-shadow(0 0 12px #ce87a325)}
.symbols-page .index-copy{gap:10px}
@media(max-width:760px){.symbols-page .index-row{gap:22px;min-height:122px;padding:20px 0}.symbol-seal{width:70px;height:70px;flex-basis:70px}.symbols-page .index-title{font-size:27px}.symbols-page .index-line{font-size:12px}}

/* La Sphère : un sanctuaire, séparé du reste de la navigation. */
#navigation{padding-top:105px;gap:18px}
#navigation>.sphere-nav{position:absolute;top:98px;width:58px;height:58px}
#navigation>.sphere-nav::before{content:'';position:absolute;bottom:-17px;width:32px;height:1px;background:linear-gradient(90deg,transparent,#ce87a344,transparent)}
.sphere-nav-icon{display:block;width:51px;height:51px;filter:drop-shadow(0 0 5px #e992b829)}
.at-sphere{background:#05060a;overflow:hidden}
.at-sphere::before,.at-sphere .topbar,.at-sphere footer{display:none}
.at-sphere main{height:100svh;min-height:0}
.sphere-sanctuary{position:relative;height:100%;overflow:hidden;isolation:isolate;background:#05060a}
.sphere-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab;filter:blur(var(--travel-blur,0px));outline-offset:-5px}
.sphere-canvas:active{cursor:grabbing}
.sphere-haze{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 8%,#d880a611,transparent 52%);mix-blend-mode:screen}
.sphere-caption{position:absolute;left:50%;bottom:75px;transform:translate(-50%,8px);width:min(780px,82%);font:italic clamp(18px,2vw,25px)/1.5 var(--serif);color:#e3b7ca;text-align:center;white-space:pre-line;text-wrap:balance;opacity:0;filter:blur(4px);transition:opacity 1.8s,filter 1.8s,transform 1.8s;pointer-events:none;text-shadow:0 2px 18px #000,0 0 30px #000}
.sphere-caption.is-visible{opacity:.88;filter:blur(0);transform:translate(-50%,0)}
.sphere-bottom{position:absolute;bottom:21px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:flex-end;gap:25px}
.sphere-prophecy,.sphere-depth summary{border:0;padding:8px 0;font:italic 15px/1.4 var(--serif);letter-spacing:.025em;color:#af869b;cursor:pointer}
.sphere-depth{text-align:right;max-width:270px}
.sphere-depth summary{list-style:none}.sphere-depth summary::-webkit-details-marker{display:none}
.sphere-depth p{position:absolute;bottom:40px;right:0;max-width:270px;padding:20px;background:#080910ed;font:italic 17px/1.6 var(--serif);color:#c4a7b7}
.sphere-fallback{position:absolute;width:min(55vh,60vw);aspect-ratio:1;left:50%;top:44%;transform:translate(-50%,-50%);border:1px solid #d78fab55;border-radius:50%;box-shadow:0 0 80px #d983a611,inset 0 0 90px #d983a614}
.sphere-fallback i{position:absolute;inset:0;border-radius:50%;border:.5px dotted #df9bb766;transform:rotate(calc(var(--i)*15deg)) scaleX(.4)}
@media(min-width:761px) and (max-height:720px){#navigation{padding-top:120px;gap:10px}#navigation>a{height:43px}#navigation>.brand{top:15px}#navigation>.sphere-nav{top:76px}#navigation>.sphere-nav::before{bottom:-10px}}
@media(max-width:760px){
 #navigation{padding:0;gap:0}#navigation>.sphere-nav{position:relative;top:auto;width:48px;height:54px}#navigation>.sphere-nav::before{bottom:auto;top:14px;right:-2px;height:26px;width:1px;background:linear-gradient(transparent,#ce87a344,transparent)}.sphere-nav-icon{width:42px;height:42px}
 .at-sphere main{height:calc(100svh - 70px - env(safe-area-inset-bottom))}
 .sphere-caption{bottom:79px;width:88%;font-size:18px}.sphere-bottom{bottom:17px;left:6%;right:6%}.sphere-prophecy,.sphere-depth summary{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.sphere-caption{transition:opacity .3s;filter:none}.sphere-canvas{filter:none}}
.sphere-depth summary::after{content:none}

/* Un Tableau à venir : la porte reste dans le soleil du livre. */
#navigation .logo-eclipse{--cover:0;position:relative;display:block;width:44px;height:44px;flex-shrink:0;overflow:hidden;user-select:none;-webkit-touch-callout:none}
#navigation .logo-eclipse .logo{width:100%;height:100%;transition:opacity 1.5s;opacity:calc(1 - max(0, (var(--cover) - .85) / .15))}
.logo-shadow,.logo-corona{position:absolute;left:20.8%;top:18.75%;width:58.4%;height:58.4%;border-radius:50%;pointer-events:none}
.logo-shadow{background:var(--night);transform:translate(calc((var(--cover) - 1) * 150%),calc((var(--cover) - 1) * 150%));transition:transform 1.5s ease,opacity 1.5s;opacity:var(--cover)}
.logo-corona{border:.65px solid #d494b1;box-shadow:0 0 3px #ce87a355;opacity:0;transition:opacity 1.5s}
.is-covering .logo-shadow{transition:none}.is-covering .logo{transition:none!important}
.is-crowned .logo-corona{opacity:.8;animation:eclipse-breath 3s ease-in-out 1}
#navigation>.brand.is-covering .nav-label{opacity:0;visibility:hidden}
@keyframes eclipse-breath{0%,100%{opacity:.5;box-shadow:0 0 2px #ce87a344}50%{opacity:.95;box-shadow:0 0 7px #ce87a388}}
.eclipse-nightfall{position:fixed;inset:0;z-index:200;background:#05060a;animation:eclipse-nightfall 2.5s linear both}
@keyframes eclipse-nightfall{from{opacity:0}to{opacity:1}}
.eclipse-index{opacity:.18;transition:opacity 1.5s}.eclipse-index:hover,.eclipse-index:focus-visible{opacity:.5}
.eclipse-index-name{width:77px;opacity:0;transition:opacity 1.5s}.eclipse-index-name svg{width:100%;display:block}
.eclipse-index:hover .eclipse-index-name,.eclipse-index:focus-visible .eclipse-index-name{opacity:1}
.at-eclipse{background:#05060a}.at-eclipse::before,.at-eclipse .topbar,.at-eclipse footer{display:none}
.at-eclipse #sidebar{background:#05060a;border-color:transparent;--night:#05060a}
.at-eclipse #navigation>a:not(.brand){visibility:hidden}.at-eclipse #sound{opacity:.45}
.at-eclipse main{min-height:100svh}
.eclipse-scene{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:#05060a;color:#d3c9ce}
.eclipse-scene .entry-atmosphere{opacity:.17;transition:opacity 2s}
.eclipse-scene.is-total .entry-atmosphere{opacity:0}
.eclipse-label{position:absolute;top:15%;left:0;width:100%;text-align:center;font:9px/1.5 var(--sans);letter-spacing:.32em;opacity:.28;transition:opacity 1s}
.eclipse-scene.is-total .eclipse-label{opacity:0}
.eclipse-sky{overflow:hidden;border-radius:50%;position:absolute;top:23%;left:calc(50% - 32px);width:64px;height:64px;isolation:isolate}
.eclipse-sun,.eclipse-shadow,.eclipse-corona{position:absolute;inset:0;border-radius:50%}
.eclipse-sun{background:linear-gradient(#e6a3bf24,#cc80a200);box-shadow:inset 0 0 0 .6px #d79ab57a,0 0 18px #cc80a20a}
.eclipse-shadow{background:#05060a;transform:translate(calc(var(--passage) * 35.355%),calc(var(--passage) * 35.355%))}
.eclipse-corona{border:.65px solid #d494b1;box-shadow:0 0 5px #ce87a366,inset 0 0 3px #ce87a344;opacity:var(--corona)}
.eclipse-verses{position:absolute;inset:0;pointer-events:none}
.eclipse-verse{margin-top:calc(var(--verse-step) * 2.2em);position:absolute;left:12%;top:48%;width:76%;margin-bottom:0;text-align:center;font:clamp(19px,2.2vw,29px)/1.7 var(--serif);letter-spacing:.005em}
.eclipse-verse.stanza-1{left:17%;top:54%;width:73%}.eclipse-verse.stanza-2{left:8%;top:46%;width:74%}.eclipse-verse.stanza-3{left:14%;top:57%;width:75%}
.eclipse-half{display:inline-block;opacity:0}.eclipse-vanishing>span{display:inline-block}
.eclipse-elusive{transition:opacity .7s}
.eclipse-dawn{position:absolute;top:51%;left:10%;width:80%;text-align:center}
.eclipse-dawn .sun-writing{max-width:700px;margin:auto;gap:12px;color:#d5b9c9}
.eclipse-dawn .sun-word{width:calc(var(--columns) * 12px)}
.eclipse-dawn p{position:absolute;top:0;width:100%;font:clamp(19px,2.2vw,29px)/1.7 var(--serif)}
.eclipse-restart{position:absolute;right:6%;bottom:7%;border:0;padding:12px;font:italic 12px/1.4 var(--serif);opacity:.38}
.eclipse-restart:hover,.eclipse-restart:focus-visible{opacity:.8}
@media(max-width:760px){
  #navigation .logo-eclipse{width:36px;height:36px}
  .at-eclipse main,.eclipse-scene{min-height:calc(100svh - 70px)}
  .eclipse-verse{left:6%;width:88%;top:47%;font-size:clamp(17px,4.8vw,23px)}
  .eclipse-verse.stanza-1{left:9%;width:86%;top:52%}.eclipse-verse.stanza-2{left:4%;width:88%;top:44%}.eclipse-verse.stanza-3{left:7%;width:87%;top:55%}
  .eclipse-half{display:block}.eclipse-dawn{left:6%;width:88%}.eclipse-dawn .sun-word{width:calc(var(--columns) * 9px)}
  .eclipse-dawn .sun-writing{gap:9px}.eclipse-dawn p{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .logo-shadow{transform:none;opacity:round(down,var(--cover),.25);transition:opacity 1.5s!important}
  .logo-corona,#navigation .logo-eclipse .logo{transition:opacity 1.5s!important}
  .eclipse-nightfall{animation:eclipse-nightfall 2.5s linear both!important}
  .eclipse-shadow{display:none}.eclipse-sun{opacity:var(--sun-opacity);transition:opacity 1.5s!important}
  .eclipse-corona,.eclipse-label,.eclipse-elusive{transition:opacity 1.5s!important}
  .eclipse-half,.eclipse-dawn p,.eclipse-dawn .sun-writing{filter:none!important}
}

#navigation>.brand{user-select:none;-webkit-touch-callout:none}
@media(max-width:760px){.eclipse-verse{margin-top:calc(var(--verse-step) * 3.8em)}}

/* Les portes : images impossibles et signes sans langue, sur l'horloge de la voix. */
.portes-nightfall{position:fixed;inset:0;z-index:200;background:#05060a;animation:portes-nightfall 2s ease both;pointer-events:none}
.portes-door-dot{position:fixed;z-index:201;width:4px;height:4px;border-radius:50%;background:var(--pink);pointer-events:none;animation:portes-door-breath 1.2s ease both}
@keyframes portes-nightfall{0%,30%{opacity:0}100%{opacity:1}}
@keyframes portes-door-breath{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.6)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.5);box-shadow:0 0 12px #ce87a366}}
.at-portes{background:#05060a}.at-portes::before,.at-portes .topbar,.at-portes footer{display:none}
.at-portes #sidebar{background:#05060a;border-color:transparent;--night:#05060a}
.at-portes #navigation>a:not(.brand){visibility:hidden}.at-portes #sound{opacity:.4}
.at-portes .sound-label,.at-portes .nav-label{display:none!important}
.at-portes main{min-height:100svh}.portes-scene{height:100svh;position:relative;isolation:isolate;overflow:hidden;background:#05060a;color:#c9c0b7;touch-action:pan-y}
.portes-stage,.portes-images,.portes-voices,.portes-vision{position:absolute;inset:0;pointer-events:none}
.portes-stage{overflow:hidden;isolation:isolate}
.portes-apparition{position:absolute;width:min(76vmin,800px);aspect-ratio:1;transform-origin:center;will-change:transform,opacity}
.portes-picture,.portes-negative>img{width:100%;height:100%;object-fit:contain;user-select:none}
.portes-picture{opacity:calc(1 - var(--negative,0))}
.portes-negative{position:absolute;inset:0;opacity:var(--negative,0);background:radial-gradient(ellipse,#c9c0b7 12%,#c9c0b7b3 39%,transparent 66%);mask-image:radial-gradient(ellipse,#000 32%,transparent 69%)}
.portes-negative>img{filter:invert(1) grayscale(1) sepia(.14);mix-blend-mode:multiply}
.portes-vision.is-rewinding{mix-blend-mode:screen}
.portes-choir{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0}
.portes-choir>img{width:min(95vmin,1000px);height:min(95vmin,1000px);object-fit:contain;filter:blur(.8px);user-select:none}
.portes-grain{position:absolute;inset:-4px;background:url('assets/portes/grain.svg?v=43') repeat;mix-blend-mode:screen;pointer-events:none;opacity:0}
.portes-mark{position:absolute;display:block;width:calc(var(--mark-size) * 1px);height:calc(var(--mark-size) * 1px);color:#c9c0b7;pointer-events:none}
.portes-mark:nth-child(3n){color:var(--pink)}
.portes-sign-half{position:absolute;inset:0;display:block}.portes-sign-half svg{display:block;width:100%;height:100%}
.portes-sign-half.half-a{clip-path:inset(0 0 48% 0);transform:translate(-3%,0)}
.portes-sign-half.half-b{clip-path:inset(48% 0 0 0);transform:translate(7%,2%) scaleX(-1)}
.portes-scratch{position:absolute;inset:-15%;width:130%;height:130%;opacity:.4}
.portes-return-dot{position:absolute;right:7%;bottom:8%;width:3px;height:3px;border-radius:50%;background:var(--pink);box-shadow:0 0 11px #ce87a34d}
.portes-return-dot[hidden]{display:none}
.portes-scene.is-black,.portes-black,.portes-black #sidebar{background:#000}
.portes-black #navigation,.portes-black #sound{opacity:0}
@media(max-width:760px){
  .at-portes main{margin:0;min-height:calc(100svh - 70px)}.portes-scene{height:calc(100svh - 70px)}
  .portes-apparition{width:92vw}.portes-choir>img{width:110vw;height:110vw;max-width:none}
  .portes-mark{width:calc(var(--mark-size) * .75px);height:calc(var(--mark-size) * .75px)}
}
@media(prefers-reduced-motion:reduce){
  .portes-nightfall{animation:portes-nightfall 2s ease both!important}
  .portes-door-dot{animation:portes-nightfall 1.2s ease both!important;transform:none!important}
  .portes-vision,.portes-mark,.portes-choir>img{filter:none!important}
  .portes-negative{display:none}.portes-picture{opacity:1}
  .portes-apparition{will-change:opacity}.portes-stage{mask-image:none!important}
}

/* SEPT : ocre rose sur la pierre, éclairé seulement au passage de la torche. */
.sept-door-zone main{touch-action:pan-y}
.sept-door-trail{position:fixed;left:0;width:100%;height:1px;z-index:101;pointer-events:none}
.sept-horizon{position:absolute;left:var(--sept-origin);width:var(--sept-distance);height:1px;background:linear-gradient(90deg,transparent,#ce87a338);opacity:.6}
.sept-distant{position:absolute;right:5%;bottom:4px;width:42px;height:16px;fill:none;stroke:#ba9963;stroke-width:1.4;opacity:calc(var(--sept-progress)*.45);transform:translateY(calc((1 - var(--sept-progress))*8px))}
.sept-arrived .sept-distant{animation:sept-beacon 1.1s steps(8) both}
@keyframes sept-beacon{0%,100%{opacity:.3}40%{opacity:1;filter:drop-shadow(0 0 5px #c8a56a)}}
.sept-nightfall{position:fixed;inset:0;z-index:100;background:#05060a;pointer-events:none;animation:sept-nightfall 1.6s steps(13) both}
@keyframes sept-nightfall{0%,25%{opacity:0}100%{opacity:1}}
.sept-index{opacity:.2;transition:opacity 1.5s}.sept-index:hover,.sept-index:focus-visible{opacity:.55}
.sept-index-name{width:26px;opacity:0;transition:opacity 1.5s}.sept-index-name svg{width:100%;display:block}
.sept-index:hover .sept-index-name,.sept-index:focus-visible .sept-index-name{opacity:1}
.sept-active{background:#05060a}.sept-active::before,.sept-active .topbar,.sept-active footer{display:none}
.sept-active #sidebar{background:#05060a;border-color:transparent;--night:#05060a}
.sept-active #navigation>a:not(.brand){visibility:hidden}.sept-active #sound{opacity:.4}
.sept-active .sound-label,.sept-active .nav-label{display:none!important}
.sept-active main{min-height:100svh}
.sept-scene{height:100svh;position:relative;isolation:isolate;overflow:hidden;background:#05060a;color:var(--pink);touch-action:pan-y}
.sept-scene::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 52%,transparent 10%,#05060a60 57%,#05060af5 94%)}
.sept-wall{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sept-stone{opacity:var(--sept-warmth,.14)}
.sept-margins{fill:none;stroke:var(--pink);stroke-linecap:round;pointer-events:none}
.sept-vein-shadow{stroke:#05060a;stroke-width:2.1;opacity:.8}
.sept-vein-light{opacity:0}.sept-vein-bed{stroke-width:.65;opacity:.2}
.sept-vein-touch{stroke-width:1.2;stroke-dasharray:.17 .83}
.sept-relic{stroke-width:.8}.sept-relic-ember{fill:var(--pink);stroke:none}
.sept-relic-drawing{filter:url(#sept-ochre)}
.sept-final-seven{fill:none;stroke:var(--pink);stroke-width:3;stroke-linecap:butt;stroke-dasharray:1}
.sept-reduced .sept-final-seven{transition:opacity 2s linear}
.sept-pigment{color:var(--pink);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:butt;stroke-linejoin:round}
.sept-mark{opacity:0}.sept-mark path[pathLength]{stroke-dasharray:1;stroke-dashoffset:var(--sept-unpainted,0)}
.sept-silt{fill:currentColor;fill-opacity:.25;stroke:none;opacity:calc(1 - var(--sept-unpainted,0))}
.sept-shadow{fill:#05060a;stroke:none}.sept-fold{fill-opacity:.4}
.sept-heavy{stroke-width:2.8}.sept-contour{stroke-width:1.7}
.sept-incision{stroke-width:.85;opacity:.65}.sept-embroidery{stroke-width:.65;opacity:.4}
.sept-scarf{fill-opacity:.6}.sept-scarf-edge{stroke-width:1.05;opacity:.8}
.sept-ember{fill:none;stroke:var(--pink);stroke-width:1;stroke-linecap:round}
.sept-rein{stroke-width:.65;opacity:.35}
.sept-branch{stroke-width:2}.sept-twig{stroke-width:1.1;opacity:.65}
.sept-leaf-scars .sept-silt{fill-opacity:.32}
.sept-mountain{color:#b79967;stroke-width:1.7}.sept-gold-dust{fill-opacity:.13}
.sept-strata{stroke-width:1.15;opacity:.65}.sept-snow{stroke-width:1.2;opacity:.85}
.sept-rain{stroke-width:.8}.sept-ground{stroke-width:.7}
.sept-vedan{stroke-width:1.2}.sept-legs[hidden]{display:none}
.sept-limb-fill{fill-opacity:.3}.sept-limb-edge{stroke-width:1.1}
.sept-black .sept-wall,.sept-black::after{visibility:hidden}
.sept-ended #navigation,.sept-ended #sound{opacity:0}
.sept-ended #navigation:focus-within,.sept-ended #sound:focus-visible{opacity:.4}
.sept-restart{position:absolute;z-index:2;right:5%;bottom:5%;border:0;color:var(--pink);font:17px/1 var(--serif);opacity:.5;padding:16px}
.sept-restart[hidden]{display:none}.sept-restart:hover,.sept-restart:focus-visible{opacity:.9}
.sept-reduced .sept-mark,.sept-reduced .sept-rider{transition:opacity 3s linear}
@media(max-width:760px){
  .sept-active main{margin:0;min-height:calc(100svh - 70px)}
  .sept-scene{height:calc(100svh - 70px)}
  .sept-distant{right:3%;width:28px}
  .sept-elm{transform:translateX(125px)}
}
@media(prefers-reduced-motion:reduce){
  .sept-nightfall{animation:sept-nightfall 1.6s linear both!important}
  .sept-arrived .sept-distant{animation:none!important;opacity:.7}
  .sept-reduced .sept-mark,.sept-reduced .sept-rider{transition:opacity 3s linear!important}
  .sept-mark path[pathLength]{stroke-dashoffset:0}
  .sept-reduced .sept-final-seven{transition:opacity 2s linear!important}
  .sept-vein-touch{stroke-dasharray:none;opacity:.3}
}

/* Tableau 0000 — Le Dôme. Un théâtre minéral, découvert par la recherche. */
.at-dome{overflow:hidden;background:#10171b}
.at-dome::before,.at-dome #sidebar,.at-dome .topbar,.at-dome footer{display:none}
.at-dome main{margin:0;width:100%;height:100svh;min-height:0;outline:none}
.dome-scene{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden;color:#e8d9be;background:#10171b;font-family:var(--serif)}
.dome-scene [hidden]{display:none!important}
.dome-canvas{position:absolute;inset:0;width:100%;height:100%;outline-offset:-5px}
.dome-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:29px 42px;z-index:5;color:#cabfa9}
.dome-exit{font:14px var(--serif);display:flex;align-items:center;gap:13px;min-height:44px}
.dome-exit span{font-style:italic}.dome-chapter{font:10px var(--sans);letter-spacing:.25em}.dome-chapter i{font-style:normal;opacity:.3;margin:0 14px}
.dome-pause{border:1px solid #c1a77c35;width:42px;height:42px;border-radius:50%;padding:0;font-size:16px;color:#d2bb92;visibility:hidden}.is-playing .dome-pause{visibility:visible}
.dome-heading{position:absolute;top:13%;left:0;right:0;text-align:center;pointer-events:none;transition:opacity 1.5s,transform 1.5s}
.dome-heading>p{font:9px var(--sans);letter-spacing:.37em;color:#b8a789;margin:0 0 15px}.dome-heading h1{font:400 clamp(54px,7vw,94px)/1.05 var(--serif);letter-spacing:-.035em;margin:0;color:#ecdfc7}.dome-heading>span{display:block;font:italic 17px var(--serif);margin-top:18px;color:#b8aa92}
.dome-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:25px;background:linear-gradient(transparent 12%,#0a13192b 35%,#0a131953 85%);z-index:4}
.dome-panel{width:min(560px,100%);text-align:center;margin-top:22vh;text-shadow:0 2px 22px #081014}
.dome-panel .dome-kicker{font:9px var(--sans);letter-spacing:.24em;color:#c8ab7d;margin:0 0 15px}.dome-panel h2{font:400 clamp(27px,3.1vw,42px)/1.3 var(--serif);color:#f1e1c7;margin:0 0 18px;letter-spacing:-.02em}.dome-panel>p:not(.dome-kicker){font:16px/1.85 var(--serif);color:#c6baa6;margin:0 0 23px}
.dome-panel>button{font:italic 17px var(--serif);border:1px solid #c9a57466;border-radius:2px;background:#1c2525cc;padding:17px 26px;color:#f3d7a8;min-width:244px;transition:background .2s,border-color .2s;box-shadow:0 5px 40px #08111533}.dome-panel>button span{margin-left:25px;font-style:normal}.dome-panel>button:hover{background:#39403a;border-color:#e9c287}
.dome-key-guide{display:flex;justify-content:center;align-items:center;gap:42px;margin-top:25px;color:#b5ad9e;font:11px var(--sans)}.dome-key-guide>span{display:flex;align-items:center;flex-direction:column;gap:5px}.dome-key-guide>span>span{display:flex;gap:5px;margin-bottom:5px}.dome-scene kbd{font:10px var(--sans);border:1px solid #b8ac903d;border-bottom-width:2px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;width:23px;height:22px;color:#d6c9b1;background:#10191b77}.dome-scene .space-key{width:84px;height:26px;margin:12px 0 14px;font-size:9px;letter-spacing:.1em}
.dome-footer{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;font:9px var(--sans);letter-spacing:.1em;color:#cebb9a;pointer-events:none}.dome-footer i{font:italic 13px var(--serif);margin-left:8px;color:#9e9b90;letter-spacing:0}.dome-footer em{font-style:normal;margin:0 16px;opacity:.4}.dome-footer .dome-footer-note{font:italic 14px var(--serif);color:#c0a17c;letter-spacing:.01em}
.dome-hud{position:absolute;left:42px;right:42px;top:105px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.dome-hearts{display:flex;gap:8px}.dome-hearts svg{width:28px;height:34px;fill:none;stroke:#f3b484;stroke-width:1.6;filter:drop-shadow(0 0 8px #e7904055);transition:opacity .5s}.dome-hearts .is-lost{opacity:.17;filter:none}.dome-progress{width:125px;font:9px var(--sans);letter-spacing:.17em;text-align:right;color:#b7a689}.dome-progress b{display:block;font:italic 18px var(--serif);color:#e0c6a0;margin:8px 0 12px;letter-spacing:.06em}.dome-progress>div{height:1px;background:#b99d7333}.dome-progress i{display:block;height:1px;background:#e7c693;transition:width 1s}
.dome-whisper{position:absolute;bottom:90px;left:15%;right:15%;text-align:center;font:italic clamp(17px,2vw,23px)/1.5 var(--serif);color:#f1d4a5;text-shadow:0 2px 12px #060d13,0 0 30px #090f13;margin:0;opacity:0;transition:opacity 1s;pointer-events:none}.dome-whisper.is-visible{opacity:1}
.is-playing .dome-heading{opacity:0;transform:translateY(-10px)}.is-playing .dome-panel{margin-top:0}.is-playing .dome-overlay{background:#091118c7;backdrop-filter:blur(6px)}.dome-panel-exit{display:block;margin-top:22px;font:italic 14px var(--serif);color:#a8a497}.is-ending .dome-hud{opacity:0;transition:opacity 1s}.is-ending .dome-overlay{background:#0d141878;backdrop-filter:blur(3px)}.has-light .dome-overlay{background:#ead9ba33}.has-light .dome-panel{text-shadow:none}.has-light .dome-panel h2{color:#4a3c30}.has-light .dome-panel p,.has-light .dome-panel .dome-kicker,.has-light .dome-panel-exit{color:#756044}
.dome-touch{display:none;position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:25px;right:25px;justify-content:space-between;align-items:flex-end;pointer-events:none}.dome-touch button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;width:46px;height:46px;display:flex;justify-content:center;align-items:center;border:1px solid #d8c09955;border-radius:5px;background:#132025ad;color:#e8ceaa;font:13px var(--sans);padding:0}.dome-touch button.is-down{background:#957954aa}.dome-dpad{display:grid;grid-template-columns:repeat(3,46px);gap:5px}.dome-dpad button:first-child{grid-column:2}.dome-dpad button:nth-child(2){grid-row:2;grid-column:1}.dome-dpad button:nth-child(3){grid-row:2;grid-column:2}.dome-dpad button:nth-child(4){grid-row:2;grid-column:3}.dome-touch .dome-jump{width:78px;height:78px;border-radius:50%;flex-direction:column;gap:6px;font:italic 15px var(--serif)}.dome-jump span{font:18px var(--sans)}
@media(pointer:coarse){.is-playing:not(.is-ending) .dome-touch{display:flex}.is-playing .dome-footer>span:first-child{display:none}.is-playing .dome-whisper{bottom:145px}.dome-footer-note{display:none}}
@media(max-width:600px){.dome-header{padding:14px 20px}.dome-chapter{font-size:8px;letter-spacing:.15em}.dome-chapter i{margin:0 5px}.dome-exit span{display:none}.dome-heading{top:15%}.dome-heading>p{font-size:8px;letter-spacing:.26em}.dome-heading>span{font-size:15px}.dome-panel{margin-top:19vh}.dome-panel>p:not(.dome-kicker){font-size:14px}.dome-panel>p br{display:none}.dome-panel h2{font-size:29px}.dome-key-guide{margin-top:20px}.dome-hud{top:83px;left:22px;right:22px}.dome-progress{width:90px}.dome-hearts svg{width:24px}.dome-footer{left:22px;right:22px;bottom:20px;justify-content:center}.dome-footer-note{display:none}.dome-footer i{font-size:12px}.dome-footer em{margin:0 10px}.dome-whisper{left:12%;right:12%;font-size:18px}.dome-touch{left:18px;right:18px}}
@media(max-height:570px){.dome-heading{top:13%}.dome-heading h1{font-size:42px}.dome-heading>p{margin-bottom:5px}.dome-heading>span{margin-top:8px;font-size:13px}.dome-panel{margin-top:28vh}.dome-panel h2{font-size:25px;margin-bottom:8px}.dome-panel>p:not(.dome-kicker){font-size:13px;margin-bottom:12px}.dome-panel>button{padding:12px 20px}.dome-key-guide{display:none}.dome-header{padding:8px 22px}.dome-hud{top:68px}.dome-whisper{bottom:60px}}
@media(prefers-reduced-motion:reduce){.dome-heading,.dome-whisper,.dome-progress i,.dome-hearts svg{transition:none}}
.dome-canvas:focus-visible{outline:1px solid #d5b88744;outline-offset:-5px}
.dome-actions{display:flex;align-items:center;gap:20px}.dome-sound{padding:10px 0;min-height:44px;border:0;font:italic 13px var(--serif);color:#b7ab94}
.dome-scene:not(.is-playing) .dome-heading{top:11%}.dome-scene:not(.is-playing) .dome-panel{margin-top:32vh}.dome-scene:not(.is-playing) .dome-kicker{display:none}
@media(max-width:600px){.dome-actions{gap:10px}.dome-sound{font-size:11px}.dome-header{gap:10px}.dome-chapter{position:absolute;top:76px;left:0;right:0;text-align:center;pointer-events:none}.is-playing .dome-chapter{display:none}.dome-scene:not(.is-playing) .dome-heading{top:17%}.dome-scene:not(.is-playing) .dome-panel{margin-top:30vh}}
@media(max-height:570px){.dome-scene:not(.is-playing) .dome-heading{top:14%}.dome-scene:not(.is-playing) .dome-panel{margin-top:35vh}}
.dome-panel>.dome-mobile-guide{display:none}
@media(pointer:coarse),(max-width:600px){.is-playing:not(.is-ending) .dome-touch{display:flex}.is-playing .dome-footer>span:first-child{display:none}.is-playing .dome-whisper{bottom:145px}.dome-panel>.dome-mobile-guide{display:block;font:italic 13px/1.6 var(--serif);margin:22px 0 0;color:#b9ab96}.dome-key-guide{display:none}}
/* Le même seuil, désormais ouvert sur un espace en trois dimensions. */
.dome-loading{height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;color:#baa890;background:#111820;font:italic 24px var(--serif)}
.dome-loading a,.dome-loading button{font-size:16px;border:0;color:#baa890}
.dome-canvas{touch-action:none}
.dome-overlay{background:linear-gradient(#08111a22,#08111a2b 40%,#08111a66)}
.dome-scene:not(.is-playing) .dome-panel{margin-top:30vh}
.dome-scene:not(.is-playing) .dome-panel>p:not(.dome-kicker){max-width:410px;margin-left:auto;margin-right:auto}
.dome-header{background:linear-gradient(#08111a5c,transparent)}
.dome-key-guide,.dome-mobile-guide{display:none!important}
.dome-scene::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:radial-gradient(ellipse,transparent 30%,#8a2827 100%);opacity:var(--dome-hurt,0)}

/* Une visite, un ciel. Les portes éteintes ne portent aucun nom. */
:root{--personal-mist:254;--personal-dot-x:0px;--personal-dot-y:0px}
#navigation>.nav-dormant{display:flex;align-items:center;justify-content:center;width:64px;height:62px;opacity:.055;pointer-events:none;user-select:none;flex-shrink:0}
.nav-dormant svg{width:40px;height:40px}
#navigation>a.just-found{animation:door-wakes 2.8s ease-out}
@keyframes door-wakes{from{opacity:.04;filter:blur(3px)}to{opacity:1;filter:blur(0)}}
.intro .dot{position:relative;left:var(--personal-dot-x);top:var(--personal-dot-y)}
.dot.returned-circle{width:22px;height:22px;border:1px solid #ce87a3;background:transparent;box-shadow:0 0 24px #ce87a322}
.entry-atmosphere,.circle-mist,.sphere-haze{filter:hue-rotate(calc((var(--personal-mist) - 254) * 1deg))}
.found-link{font:italic 12px var(--serif);letter-spacing:.015em;opacity:.45;transition:opacity .5s}.found-link:hover,.found-link:focus-visible{opacity:1}
.found-page{max-width:850px}.found-page h1{font-size:clamp(28px,5vw,46px)}
.found-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 34px;margin:64px 0}
.found-slot{min-height:86px;border-bottom:1px solid #c69aaf1a;display:flex;align-items:center;gap:15px;font:italic 19px var(--serif);color:#c7b5c5}
.found-slot.empty{border-color:#c69aaf0c}.found-slot.empty span{width:4px;height:4px;border:1px solid #c69aaf1a;border-radius:50%}
.found-ember{width:4px;height:4px;border-radius:50%;background:#c69aaf;box-shadow:0 0 15px #ce87a350}
.dedication-page{min-height:85svh;max-width:900px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:100px;padding-bottom:120px}
.dedication-page h1{font:italic clamp(23px,4vw,40px)/1.6 var(--serif);font-weight:400;color:#d7c6d2}.dedication-poem{white-space:pre-line;font:clamp(17px,2.2vw,22px)/1.95 var(--serif);margin:65px 0 0;color:#b5a9b8}
.tree-page{min-height:95svh;display:grid;place-items:center;position:relative}
.tree-trace{height:min(68svh,580px);width:min(70vw,414px);touch-action:none;stroke:#c995b0;stroke-width:1.2;fill:none;cursor:crosshair;filter:drop-shadow(0 0 8px #ce87a322)}
.tree-branches,.tree-trunk{transition:stroke 2.2s,filter 2.2s}.tree-roots{opacity:0;transition:opacity 3s}.is-tree .tree-roots{opacity:1}.is-tree .tree-trace{stroke:#c3b6a1;filter:drop-shadow(0 0 15px #d3bc8428)}
.tree-keyboard:focus-visible{clip:auto;width:auto;height:auto;position:absolute;bottom:20px;background:#17131e;color:#dfcfd8;padding:12px}
.silence-beat{position:fixed;inset:0;background:#fff;z-index:2147483647;pointer-events:none}
.mist-hint{position:fixed;top:60%;z-index:6;pointer-events:none;font:italic 22px var(--serif);color:#bda9c1;opacity:0;filter:blur(.4px);animation:passing-hint 1s ease-in-out}
@keyframes passing-hint{30%,65%{opacity:.13}}
.first-figure .feature-copy{align-self:center}.first-figure .feature{min-height:68svh}
.soul-reversed .art{transform:rotateY(180deg);filter:brightness(.28);transition:transform 1.8s,filter 1.8s}.soul-reversed.soul-front .art{transform:rotateY(0);filter:none}.soul-answer{font:italic 40px var(--serif);letter-spacing:.04em}.soul-front .soul-answer{opacity:0}.soul-turn{background:none;border:0;margin-top:28px;color:#bba6b5}
.earth-returned .art{filter:sepia(.12) brightness(1.15)}.earth-returned .feature-copy{position:relative}.earth-ring{width:100px;height:100px;border:1px solid #c892ae55;border-radius:50%;margin:60px auto;box-shadow:0 0 70px #c7819f18;animation:entry-pulse 8s infinite}
.small-event{position:fixed;z-index:4;pointer-events:none;color:#d5ced5;opacity:0;animation:event-appear 8s ease-in-out;left:60%;top:70%}
.small-event svg{width:100px;height:90px}.event-gazelle{top:auto;bottom:12vh;left:0;animation:gazelle-crosses 8s linear}.event-chevre{left:auto;right:11%;top:auto;bottom:16%}.event-chevre svg{width:60px}
.event-coquelicot{left:62%;top:18%;animation:petal-falls 8s ease-in-out}.event-coquelicot i{display:block;width:13px;height:18px;border-radius:75% 18% 62% 40%;background:#a33549}
.event-mephisto{top:auto;bottom:18%;left:25%;max-width:60%;font:italic 20px/1.6 var(--serif);color:#9d8d9f}
.event-craie i,.event-corde i{display:block;border:1px solid #d8cfc0;width:55px;height:55px;border-radius:50%}.event-corde i{width:70px;height:12px;border-color:#8f7360}
.event-rubis i,.event-lampe i,.event-luciole i,.event-etoile i{display:block;width:4px;height:4px;border-radius:50%;background:#d1adbd;box-shadow:0 0 28px 7px #d1adbd55}.event-rubis i{background:#d63e58;box-shadow:0 0 24px 8px #9c274366}.event-lampe i{background:#e9d5a6;box-shadow:0 0 70px 25px #e9d5a622}
.event-pluie i{display:block;width:1px;height:70px;background:linear-gradient(transparent,#b8bccc44);transform:rotate(12deg)}.event-cendre i{display:block;width:3px;height:3px;background:#baa38c;box-shadow:14px 18px #baa38c66,-20px 30px #baa38c44,35px -10px #baa38c55}.event-souffle{width:30vw;height:20vh;border-radius:50%;background:#b8a7c207;filter:blur(25px)}
@keyframes event-appear{25%,60%{opacity:.4}to{transform:translateY(-25px);opacity:0}}
@keyframes gazelle-crosses{10%,85%{opacity:.16}from{transform:translateX(-110px)}to{transform:translateX(105vw)}}
@keyframes petal-falls{15%,80%{opacity:.6}to{transform:translate(50px,55vh) rotate(280deg);opacity:0}}
.portrait-turn{animation:portrait-glance 1s ease-in-out}@keyframes portrait-glance{50%{transform:perspective(800px) rotateY(14deg)}}
@media(max-width:760px){#navigation>.nav-dormant{width:36px;height:54px}.nav-dormant svg{width:27px;height:27px}#navigation>a{width:39px}.found-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.found-slot{font-size:16px}.dedication-page{padding-left:25px;padding-right:25px}}
@media(prefers-reduced-motion:reduce){.just-found,.small-event,.portrait-turn,.earth-ring{animation:none!important}.small-event{display:none}.soul-reversed .art{transition:none}.mist-hint{animation:passing-hint 1s linear;filter:none}}
.at-entry .topbar,.at-book .topbar,.at-sphere .topbar{display:flex;position:absolute;top:0;right:0;left:var(--rail);margin-left:0;background:transparent}
.at-entry .topbar::after,.at-book .topbar::after,.at-sphere .topbar::after{display:none}
.at-sphere #site-search{opacity:.6}.at-sphere #site-search:focus-within{opacity:1}
@media(max-width:760px){.at-entry .topbar,.at-book .topbar,.at-sphere .topbar{left:0}}

.tree-keyboard:focus-visible{clip-path:none}
@media(prefers-reduced-motion:reduce){.mist-hint{opacity:.13}}
