/* Isolated editorial system for portfolio interiors. */
.dossier{--accent:#8dcfc5;--panel:#101b25;background:#080f16;color:#bac9d4}.dossier [hidden]{display:none!important}.dossier .container{max-width:1320px}.dossier .narrow{max-width:1060px}.dossier h1,.dossier h2,.dossier h3{font-family:var(--font-sans);color:#d3dee5}.dossier p{color:#a5b7c5}.dossier-hero{position:relative;isolation:isolate;overflow:hidden;max-width:1600px;margin:auto;padding:122px var(--gutter) 65px;border-bottom:1px solid #61859933}.dossier-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 80% 45%,#1d4d6644,transparent 65%),linear-gradient(#7fa6bd06 1px,transparent 1px),linear-gradient(90deg,#7fa6bd06 1px,transparent 1px);background-size:auto,65px 65px,65px 65px}.dossier-breadcrumb,.detail-breadcrumb{font:9px var(--font-mono);display:flex;gap:13px;color:#7293a6;letter-spacing:.08em;margin-bottom:45px}.dossier-breadcrumb a:hover{color:#b0ecde}.detail-breadcrumb{padding:120px var(--gutter) 0;margin-bottom:25px}.dossier-hero-grid{display:grid;grid-template-columns:57% 43%;align-items:center;gap:0}.dossier-intro{max-width:720px;position:relative;z-index:1}.dossier .dossier-intro h1{font-size:clamp(42px,4.8vw,72px);letter-spacing:-.055em;line-height:1.04;margin:24px 0}.dossier-intro>p{font-size:14px;line-height:1.8;max-width:560px}.dossier-intro>.action{margin-top:29px;font-size:11px}.dossier .primary{background:#b2e6d9;color:#0b1c20;border-color:#b2e6d9}.dossier-scene{height:340px;position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center}.scene-caption{position:absolute;bottom:12px;left:20px;right:10px;font:7px var(--font-mono);letter-spacing:.1em;color:#739bad;text-align:center}.dossier-scene svg{position:relative;width:90%;height:90%;fill:none;stroke:#86c8ca66;stroke-width:1}.dossier-scene svg path{stroke-dasharray:4 14;animation:dossier-flow 10s linear infinite}.dossier-scene svg circle{fill:#16303d;stroke:#95daca;animation:scene-node 4s ease-in-out infinite;animation-delay:calc(var(--i)*-.8s)}.scene-radar{position:absolute;width:245px;height:245px;border:1px solid #74c4c726;border-radius:50%;background:conic-gradient(transparent 0deg,transparent 290deg,#7dd8c520 359deg,transparent 360deg);animation:dossier-orbit 14s linear infinite}.scene-radar::after{content:'';position:absolute;inset:18%;border:1px dashed #79b7c42b;border-radius:50%}.scene-books{display:flex;align-items:center;justify-content:center;perspective:900px;padding:20px}.scene-books img{width:29%;max-width:128px;box-shadow:12px 20px 25px #0008;transform:rotateY(-15deg) rotate(-6deg);animation:dossier-book 7s ease-in-out infinite;animation-delay:calc(var(--i)*-1.8s)}.scene-books img+img{margin-left:-12px}.scene-document{width:230px;height:250px;border:1px solid #829ba566;background:#13232ecc;padding:25px;transform:rotate(-6deg);box-shadow:15px 20px 40px #0005;animation:dossier-book 9s ease-in-out infinite}.scene-document>div{font:16px var(--font-mono);color:#b4d6dc}.scene-document>span{font:6px var(--font-mono);color:#739caa;display:block;margin-top:14px}.scene-document i{display:block;height:1px;background:#7897a144;margin-top:22px}.scene-document i:nth-of-type(2){width:75%}.scene-document b{display:block;font-size:48px;color:#8fcab9;text-align:right;margin-top:18px}.scene-wave{height:190px;width:80%;display:flex;align-items:center;gap:5px}.scene-wave i{height:var(--h);flex:1;background:linear-gradient(#7eacd7,#78c7b4);opacity:.6;animation:dossier-wave 3s ease-in-out infinite;animation-delay:calc(var(--i)*-.13s)}.scene-terminal{width:85%;padding:25px;border:1px solid #729cb244;background:linear-gradient(140deg,#18324199,#0a141d);transform:perspective(850px) rotateY(-9deg);box-shadow:20px 20px 50px #0004;position:relative;overflow:hidden}.scene-terminal::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,#91d2ec12,transparent);translate:0 -100%;animation:dossier-scan 8s linear infinite;pointer-events:none}.scene-terminal header{font:8px var(--font-mono);color:#7aa4b7;border-bottom:1px solid #547a9133;padding-bottom:15px;display:flex;justify-content:space-between}.scene-terminal b{color:#8fd4b9}.scene-terminal p{font:10px var(--font-mono);margin-top:17px;color:#5e8293}.scene-terminal p span{margin-left:25px;color:#a2c6cf}.terminal-lines{margin:20px 0}.terminal-lines i{display:block;height:3px;background:#71b9bd44;margin:10px 0;transform-origin:left;animation:dossier-bars 5s ease-in-out infinite}.terminal-lines i:nth-child(2){width:75%;animation-delay:-1s}.terminal-lines i:nth-child(3){width:48%;animation-delay:-2s}.scene-terminal footer{font:7px var(--font-mono);color:#7e9db0}.scene-portrait{height:100%;max-width:90%;object-fit:contain;mask-image:linear-gradient(#000 75%,transparent);filter:saturate(.95)}.scene-cup{width:150px;height:130px;border:1px solid #a3b5b744;border-radius:10px 10px 60px 60px;position:relative;background:linear-gradient(120deg,#203946,#101c27);box-shadow:12px 22px 40px #0005;display:grid;place-items:center;font:22px var(--font-sans);color:#c4d7db}.scene-cup::after{content:'';position:absolute;right:-42px;top:15px;width:42px;height:65px;border:9px solid #28414c;border-left:0;border-radius:0 35px 35px 0}.scene-cup i{position:absolute;top:-75px;width:2px;height:55px;background:linear-gradient(transparent,#7bacaf33,transparent);filter:blur(3px);animation:dossier-steam 4s infinite}.scene-cup i:nth-child(1){left:40px}.scene-cup i:nth-child(2){left:70px;animation-delay:-1s}.scene-cup i:nth-child(3){left:100px;animation-delay:-2s}.scene-identity{width:85%;padding:30px;border:1px solid #81a6c444;background:linear-gradient(135deg,#1b3457,#0d1823);position:relative;overflow:hidden}.scene-identity>span,.scene-identity>div{font:7px var(--font-mono);color:#8fb3c8;letter-spacing:.1em}.scene-identity strong{display:block;font:500 60px/1 var(--font-sans);color:#c1dceb;margin:25px 0;letter-spacing:-.06em}.scene-identity strong span{animation:dossier-blink 1.3s steps(1) infinite}.content-anchor{scroll-margin-top:110px}.dossier .content-anchor+section{padding-top:45px!important}.dossier #list-view>section:first-child:has(.container:empty){display:none}.dossier #list-view>section:first-child{padding-top:35px!important;padding-bottom:0}.dossier.reading-mode .dossier-hero,.dossier.reading-mode .content-anchor{display:none}.dossier.reading-mode #article-view{padding-top:115px!important}.page-project>section:first-of-type{padding-top:10px!important}.dossier .new-footer{margin-top:0!important}
/* Catalogues */
.catalogue-controls{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:22px 0 30px;border-bottom:1px solid #5c859b33;margin-bottom:35px}.catalogue-controls input{min-width:220px;flex:1;max-width:380px;background:#0e1c28;border:1px solid #41647977;padding:13px 16px;color:#c9dce5;font:12px var(--font-sans);border-radius:0}.catalogue-controls input:focus{outline:1px solid #94d5c7;outline-offset:2px}.catalogue-filters{display:flex;gap:8px;flex-wrap:wrap}.catalogue-filters button{padding:10px 14px;font:10px var(--font-mono);border:1px solid #41647966;color:#92afc1;background:transparent;cursor:pointer}.catalogue-filters button[aria-pressed=true]{color:#c3f5e8;border-color:#75bbab;background:#19383166}.catalogue-count{margin-left:auto;font:10px var(--font-mono);color:#7eaaa9}.catalogue-empty{padding:50px 20px;text-align:center}.dossier #cases-list,.dossier #posts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.dossier .card{background:linear-gradient(140deg,#14212d,#0c151f);border:1px solid #42627a55;box-shadow:none;min-width:0;overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,box-shadow .3s}.dossier .card:hover{border-color:#78b6b9;box-shadow:0 15px 50px #14344633}.dossier .card--with-cover{display:flex;flex-direction:column}.dossier .card__cover{width:100%;height:250px;aspect-ratio:16/9;position:relative;overflow:hidden;border-bottom:1px solid #42627a44}.dossier .card__cover img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:scale .8s}.dossier .card:hover .card__cover img{scale:1.04}.dossier .card__body{padding:30px;display:flex;flex-direction:column;flex:1}.dossier .card h3{font-size:27px;line-height:1.15;letter-spacing:-.035em;margin:18px 0}.dossier .card p{font-size:13px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.dossier .card__tag{font:8px/1.6 var(--font-mono);color:#82bdc1;letter-spacing:.06em}.dossier .card__date{font:8px var(--font-mono);color:#69899e}.dossier .card__link{font:11px var(--font-sans);color:#afe4d7;margin-top:auto;padding-top:20px;align-self:flex-start;border-bottom:1px solid #6c998e66;padding-bottom:7px}.dossier .proj-list-h{display:grid;gap:36px}.dossier .proj-row{border:1px solid #51718655;background:linear-gradient(120deg,#152431,#0c141d);padding:0;display:grid;grid-template-columns:45% 55%;overflow:hidden}.dossier .proj-row__cover{align-self:stretch;aspect-ratio:auto;min-height:340px;display:flex;align-items:center;justify-content:center;background:#07101a;overflow:hidden;border:0}.dossier .proj-row__cover img{width:100%;height:100%;object-fit:contain;transition:scale .8s}.dossier .proj-row:hover .proj-row__cover img{scale:1.025}.dossier .proj-row__body{padding:36px}.dossier .proj-row__name{font-size:44px;font-weight:500;letter-spacing:-.05em}.dossier .proj-row__sub{color:#88bdc9;font-size:14px}.dossier .proj-row__problem{font-size:13px}.dossier .proj-chip{background:#102832;color:#9abeca;border:1px solid #47667877;box-shadow:none;border-radius:0;font:9px var(--font-mono)}.dossier .proj-row__whom,.dossier .proj-whom{font-size:12px;color:#a3b8c6}.dossier .btn{font-family:var(--font-sans);border-radius:0;box-shadow:none;font-size:11px;letter-spacing:0}.dossier .btn:not(.btn--ghost){background:#a9dfd2;color:#0c2020;border-color:#a9dfd2}.dossier .proj-section{display:flex;flex-direction:column;border:0}.dossier .proj-head{order:0;max-width:850px;margin:0 0 35px;padding:20px 0}.dossier .proj-name{font-size:clamp(48px,6vw,88px);line-height:1;letter-spacing:-.05em}.dossier .proj-sub{font-size:18px;line-height:1.6;margin-top:20px;color:#8daabd}.project-top-actions{margin-top:25px;display:flex;gap:15px}.dossier .proj-hero{max-height:560px;background:#0b1521;overflow:hidden;border:1px solid #47667855;margin-bottom:35px}.dossier .proj-hero img{width:100%;max-height:550px;object-fit:contain}.dossier .proj-problem,.dossier .proj-note{border:1px solid #52758b55;border-left:2px solid #81c4b8;background:#10232d77}.dossier .proj-grid{grid-template-columns:minmax(0,1fr) 270px;gap:45px;margin-top:35px}.dossier .proj-grid__side{position:sticky;top:110px;align-self:start}.dossier .proj-meta{background:#11222d;border:1px solid #47667855}.dossier .proj-block{border-bottom:1px solid #47667844;padding-bottom:28px;margin-bottom:30px}.dossier .proj-block h3{font-size:29px;margin-bottom:22px}.dossier .proj-steps{list-style:none;padding:0;counter-reset:steps}.dossier .proj-steps li{position:relative;padding:14px 0 14px 50px;border-left:1px solid #51827466;margin-left:14px;font-size:14px}.dossier .proj-steps li::before{content:attr(data-step);position:absolute;left:-16px;top:15px;background:#143130;color:#acd8c8;font:9px var(--font-mono);padding:8px}.dossier .proj-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.dossier .proj-shot{border:1px solid #47667855;background:#101f2a;min-width:0}.dossier .proj-shot img{width:100%;height:100%;max-height:400px;object-fit:contain}
/* Readers and documents */
.dossier .prose{max-width:980px;padding:0 30px;font-family:var(--font-sans);font-size:16px;line-height:1.9;color:#b8c8d3}.dossier .article-meta h1{font-size:clamp(36px,4.8vw,65px);line-height:1.1;letter-spacing:-.045em}.dossier .prose h2{font-size:30px;line-height:1.2;margin-top:55px;scroll-margin-top:110px}.dossier .prose h3{font-size:23px;scroll-margin-top:110px}.dossier .prose a{color:#91c8ce}.dossier .prose blockquote{border-color:#7bb6ab;background:#142830;padding:20px 28px;color:#bed2d7}.dossier .prose__hero{margin:35px 0;border:1px solid #52758b55;position:relative}.dossier .prose__hero img{max-height:450px;width:100%;object-fit:contain;background:#0c1924}.dossier .article-utils{font-size:11px;border-bottom:1px solid #47667844;padding:20px 0}.reader-outline{margin:28px 0 20px;border:1px solid #4e778b66;background:#0d1d27;padding:18px 22px}.reader-outline>summary{font:12px var(--font-mono);color:#a7dacf;cursor:pointer}.reader-outline nav{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow:auto;padding:20px 0 0}.reader-outline nav a{font-size:13px;line-height:1.5;color:#9db6c6}.reader-outline nav a.current{color:#c3f5e8}.reader-map{padding:25px 0;margin:0 0 30px!important}.reader-map-title{font:9px var(--font-mono);color:#75a7b6;text-transform:uppercase;letter-spacing:.15em;margin-bottom:20px}.reader-map-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.reader-map-nodes a{position:relative;display:flex;align-items:start;gap:15px;padding:17px;background:#14232e;border:1px solid #486c7d55;overflow:hidden}.reader-map-nodes a::after{content:'';position:absolute;left:0;bottom:0;width:45%;height:1px;background:linear-gradient(90deg,transparent,#a2dec9,transparent);animation:dossier-path 6s linear infinite}.reader-map-nodes span{font:10px var(--font-mono);color:#a2dec9;margin-top:3px}.reader-map-nodes strong{font-size:11px;font-weight:400;line-height:1.45;color:#b0c8d5}.zoom-document{position:absolute;right:12px;bottom:12px;z-index:3;width:34px;height:34px;background:#0c1c29dd;border:1px solid #7bafbb66;color:#b9e0e5;font-size:20px;cursor:pointer}.cert__img,.proj-shot,.proj-hero,.book__cover{position:relative}.document-viewer{position:fixed;inset:0;width:94vw;height:91vh;max-width:1500px;max-height:none;padding:50px 20px 20px;margin:auto;border:1px solid #648d9c77;background:#0b1722;color:#bfd6df;overflow:auto}.document-viewer::backdrop{background:#030b12e8;backdrop-filter:blur(10px)}.document-viewer figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;gap:15px}.document-viewer img{min-height:0;max-height:calc(100% - 30px);max-width:100%;object-fit:contain}.document-viewer figcaption{font:11px var(--font-sans);text-align:center}.document-close{position:absolute;top:10px;right:15px;font:32px var(--font-sans);padding:0 10px;color:#c6e0e4;background:transparent;border:0;cursor:pointer}
.dossier.page-guide table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
/* Reading becomes a visible route through the actual article headings. */
.dossier .reader-map-nodes{position:relative;gap:24px;padding:22px;background:radial-gradient(ellipse at top,#1a404755,transparent 70%),linear-gradient(#46677616 1px,transparent 1px),linear-gradient(90deg,#46677616 1px,transparent 1px);background-size:auto,24px 24px,24px 24px;border:1px solid #56798544}
.dossier .reader-map-nodes a{min-height:108px;align-items:center;overflow:visible;transition:background .6s,border-color .6s,box-shadow .6s,transform .6s}
.dossier .reader-map-nodes a:before{content:'';position:absolute;left:-25px;top:50%;width:24px;height:1px;background:#608692}
.dossier .reader-map-nodes a span{display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid #79afa788;border-radius:50%;background:#13272d;box-shadow:0 0 0 6px #77cbb40b}
.dossier .reader-map-nodes a.trace-current,.dossier .reader-map-nodes a:hover{background:#183e43;border-color:#8ccdc0;box-shadow:0 0 28px #79d9b91b;transform:translateY(-3px)}
.dossier .reader-map-nodes a.trace-current span{box-shadow:0 0 0 9px #77cbb414,0 0 26px #77cbb444}
.dossier .reader-map-nodes a.trace-complete{border-color:#6e9e8c;color:#a4d9c4}
.project-screen-deck{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1px;padding:1px;margin:30px 0 60px;background:#58758b55;box-shadow:0 30px 90px #0005}
.screen-stage{position:relative;min-width:0;background:radial-gradient(ellipse at center,#1b3441,#07111c);padding:26px;overflow:hidden}
.screen-stage img{display:block;width:100%;height:480px;object-fit:contain;filter:drop-shadow(0 15px 20px #0007)}
.screen-stage p{font:12px var(--font-mono);color:#afc8d0;margin:20px 0 0}
.screen-stage:after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#c1eae913 45%,transparent 60%);transform:translateX(-100%)}
.screen-changed img{animation:screen-reveal .65s cubic-bezier(.2,.7,.2,1) both}
.screen-changed:after{animation:screen-sweep 1s ease-out both}
.screen-selectors{display:flex;flex-direction:column;background:#0b1923;padding:16px;gap:12px}
.screen-selectors button{position:relative;text-align:left;padding:20px 15px;border:1px solid #59798d55;background:#142631;color:#a9bfcb;font:12px/1.6 var(--font-mono);cursor:pointer;transition:background .3s,border-color .3s}
.screen-selectors button[aria-pressed=true]{border-color:#87c7b6;background:#204039;color:#c7ebe0;box-shadow:inset 3px 0 #9ad8c4}
.screen-selectors button:focus-visible{outline:2px solid #b4eadd;outline-offset:3px}
@keyframes screen-reveal{from{opacity:.3;transform:translateY(14px) scale(.975)}to{opacity:1;transform:none}}
@keyframes screen-sweep{to{transform:translateX(100%)}}
.dossier .book,.dossier .cert,.dossier .proj-row{position:relative;isolation:isolate;background-image:radial-gradient(circle at var(--light-x,50%) var(--light-y,0%),#93d8d61c,transparent 48%),linear-gradient(135deg,#172638,#0d1822)}
.dossier .book__cover:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0005,transparent 7%,#ffffff18 10%,transparent 16%,transparent 85%,#0003);border-radius:inherit}
.dossier .book.scene-in-view .book__cover{transform:perspective(1000px) rotateY(-14deg) rotateZ(-1deg);box-shadow:22px 25px 28px #0007}
.dossier .book:hover .book__cover{transform:perspective(1000px) rotateY(0) translateY(-9px) rotateZ(0)}
.dossier .cert__img{overflow:hidden;background:#0b1620}
.dossier .cert__img img{transition:transform 1s cubic-bezier(.2,.7,.2,1),filter 1s}
.dossier .cert:hover .cert__img img{transform:scale(1.04)}
.dossier .cert.scene-in-view{border-color:#658b9a99;box-shadow:0 18px 45px #0004}
.dossier .tl-item{position:relative;border-left:1px solid #486573;padding-left:35px;transition:border-color .8s,background .8s}
.dossier .tl-item:before{content:'';position:absolute;left:-5px;top:12px;width:9px;height:9px;border-radius:50%;background:#4e7180;transition:background .8s,box-shadow .8s}
.dossier .tl-item.scene-reached{border-left-color:#90c8b7}
.dossier .tl-item.scene-in-view:before{background:#b1e6d2;box-shadow:0 0 0 7px #92d6bc18,0 0 25px #92d6bc66}
.dossier .tl-item.scene-in-view{background:linear-gradient(90deg,#77baa70b,transparent)}
.dossier .proj-steps li{transition:background .6s,border-color .6s}
.dossier .proj-steps li.scene-in-view{background:#17342f;border-color:#7ebba5}
.dossier-paused .screen-stage img,.dossier-paused .screen-stage:after{animation:none!important}
@media(max-width:760px){.project-screen-deck{grid-template-columns:1fr}.screen-stage{padding:14px}.screen-stage img{height:260px}.screen-selectors{flex-direction:row;overflow-x:auto}.screen-selectors button{flex:0 0 170px;padding:12px;font-size:10px}.dossier .reader-map-nodes{padding:14px}.dossier .reader-map-nodes a{min-height:90px}.dossier .reader-map-nodes a:before{display:none}}
@media(prefers-reduced-motion:reduce){.screen-stage img,.screen-stage:after{animation:none!important}.dossier .book__cover,.dossier .cert__img img{transform:none!important;transition:none!important}}
.dossier .dossier-scene{background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#4dabb51c,transparent 68%)}
.dossier .scene-graph svg{filter:drop-shadow(0 0 9px #69dcc52e);stroke-width:1.5}
.dossier .scene-graph:before,.dossier .scene-signal:before{content:'';position:absolute;width:290px;height:290px;border:1px solid #6aa7b744;border-radius:50%;box-shadow:0 0 0 35px #689cba0a,0 0 0 70px #689cba06;transform:rotateX(55deg) rotateZ(-25deg);animation:network-orbit 24s linear infinite}
.dossier .scene-graph:after,.dossier .scene-signal:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#bdebd9;box-shadow:0 0 12px 3px #7de1bf66;offset-path:path('M 40 170 Q 120 30 230 80 T 380 170 Q 290 300 230 220 Z');animation:network-packet 9s linear infinite;opacity:.8;left:0;top:0}
@keyframes network-orbit{to{transform:rotateX(55deg) rotateZ(335deg)}}
@keyframes network-packet{to{offset-distance:100%}}
.dossier .dossier-scene:not(.scene-in-view) *,.dossier .dossier-scene:not(.scene-in-view):before,.dossier .dossier-scene:not(.scene-in-view):after{animation-play-state:paused}
@media(max-width:760px){.dossier .scene-graph:after,.dossier .scene-signal:after{display:none}.dossier .tl-item:before{left:-5px}}
.dossier .cert{flex-direction:column}
.dossier .cert__img{width:100%}
.dossier .cert__body{min-width:0}
.dossier .cert__meta-row{flex-wrap:wrap;overflow-wrap:anywhere}
/* Library, credentials and professional record */
.dossier .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.dossier .book{background:linear-gradient(135deg,#172638,#0d1822);border:1px solid #58758b44;padding:28px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;min-width:0;align-items:start}.dossier .book__cover{height:230px;width:150px;box-shadow:15px 20px 25px #0005;transform:perspective(800px) rotateY(-9deg);transition:transform .7s}.dossier .book:hover .book__cover{transform:perspective(800px) rotateY(0) translateY(-5px)}.dossier .book h4{font-family:var(--font-sans);font-size:23px;line-height:1.15;letter-spacing:-.03em;color:#d4dee8;margin:15px 0}.dossier .book p{font-size:12px;line-height:1.7}.dossier .book__meta{font:8px var(--font-mono);color:#839fb6}.dossier .book-category h2{font-size:38px}.dossier .book-category{scroll-margin-top:110px}.dossier .book__dl{background:#142e37;border:1px solid #648c9966;color:#a9d7cf}.dossier .book__dls,.dossier .book__more{font-size:11px}.dossier .filters{position:sticky;top:84px;background:#0b151eec;backdrop-filter:blur(12px);padding:18px 0;z-index:15;margin-bottom:35px;display:flex;gap:10px;flex-wrap:wrap}.dossier .filter-pill{border-radius:0;font:11px var(--font-sans);border-color:#456b7e66;padding:11px 18px}.dossier .filter-pill.active{background:#213f41;color:#c7f0e7}.dossier .cert-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.dossier .cert{border:1px solid #4c708555;background:linear-gradient(135deg,#152431,#0b1721);overflow:hidden;transition:border-color .4s,box-shadow .4s;min-width:0}.dossier .cert:hover{border-color:#8ac4bd;box-shadow:0 12px 45px #205f5922}.dossier .cert__img{height:245px;padding:20px;background:radial-gradient(ellipse,#244c5b44,transparent)}.dossier .cert__img img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(8px 12px 14px #0005);transition:transform .7s}.dossier .cert:hover .cert__img img{transform:translateY(-5px)}.dossier .cert__body{padding:25px}.dossier .cert__body h3{font-size:22px;line-height:1.25;margin:18px 0}.dossier .cert__body p{font-size:12px;line-height:1.8}.dossier .cert__meta{border-color:#537b8e44;background:#0b1a2599;font-size:10px}.dossier .cert__meta-row code{overflow-wrap:anywhere;font-size:9px}.page-speaking .cert-grid{display:block;counter-reset:sessions}.page-speaking .cert{margin-bottom:25px;border-left:2px solid #7daec3;position:relative;padding-left:55px}.page-speaking .cert::before{counter-increment:sessions;content:'0' counter(sessions);position:absolute;left:25px;top:28px;color:#83b9c5;font:13px var(--font-mono)}.page-speaking .cert__body{padding:28px 35px}.page-speaking .cert h3{font-size:30px;max-width:850px}.page-speaking .cert p{max-width:850px;font-size:14px}.page-speaking .cert__meta{max-width:900px}.dossier .rec{background:#10202c;border:1px solid #4c708555;padding:35px;box-shadow:none}.dossier .rec__quote{color:#6a9b9d}.dossier .rec__body{font:15px/1.9 var(--font-sans);color:#b7cbd5}.dossier .rec__name{font-family:var(--font-sans);font-size:16px}.dossier .rec__role,.dossier .rec__badge{font-size:10px;color:#7799ad}.dossier .timeline{position:relative;border-left:1px solid #67988b66;margin-left:25px;padding-left:35px}.dossier .tl-item{border:1px solid #4d73854d;background:linear-gradient(120deg,#162b36,#0c1921);padding:28px 32px;margin:0 0 25px;position:relative}.dossier .tl-item::before{content:'';position:absolute;left:-41px;top:35px;width:10px;height:10px;border:1px solid #8bc3ae;background:#16342f;box-shadow:0 0 18px #8bc3ae33}.dossier .tl-item h3{font-size:25px}.dossier .tl-item__date{font:10px var(--font-mono);color:#89bbae}.dossier .tl-item ul{font-size:13px;color:#9fb7c5}.dossier .skills{gap:20px}.dossier .skill{padding:25px;border:1px solid #4d73854d;background:#122330}.dossier .skill h4{font:18px var(--font-sans);color:#bbd6df}.dossier .skill p{font-size:12px}.dossier .contact-item{padding:25px;border:1px solid #4d73854d;background:linear-gradient(100deg,#182e3c,#0e1c28);transition:translate .3s,border-color .3s;min-width:0}.dossier .contact-item:hover{translate:5px 0;border-color:#8bc3ae}.dossier .contact-item__icon{border:1px solid #7fabac77;background:#0f2731;color:#a6ddd4}.dossier .contact-item__value{font-family:var(--font-sans);overflow-wrap:anywhere}.dossier .sup-card{background:linear-gradient(130deg,#193039,#0d1b27);border:1px solid #567d8b66}.dossier .sup-card__title{font-family:var(--font-sans)!important}.dossier .sup-card__value{color:#a5d2c5}.dossier .edu-table-wrap{border:1px solid #456b7e55;overflow:auto}.dossier .edu-table{background:#0e1d28}.dossier .edu-group__head{border-bottom-color:#456b7e55}.dossier .edu-name{font-family:var(--font-sans);font-size:14px}.dossier .edu-filters input,.dossier .edu-filters select{background:#132733;border:1px solid #567b8e66;color:#b2cbd5;border-radius:0}.dossier .edu-row:hover{background:#1a3540}.dossier .stack-cat,.dossier .tool-card{background:#10222e;border:1px solid #476f8455}.dossier .guide-wrap{max-width:1000px}.dossier .guide-toc{border-color:#456b7e;background:#112631}.dossier .sim-tile{background:linear-gradient(135deg,#1b3540,#0c1a24);border:1px solid #578b8f66;box-shadow:none;position:relative;overflow:hidden}.dossier .sim-tile::after{content:'';position:absolute;left:0;top:0;width:35%;height:1px;background:linear-gradient(90deg,transparent,#a5e8ce,transparent);animation:dossier-path 7s linear infinite;pointer-events:none}.dossier .sim-tile__title{font-family:var(--font-sans);font-size:25px}.dossier .sim-tile__sub{font-size:13px}.dossier .ss-section{padding-top:40px}.game-intro{padding:60px 25px}.game-brief{max-width:760px}.game-brief h2{font-size:42px;margin-bottom:25px}.game-brief p{font-size:16px;margin-bottom:28px}.game-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:60px 0 30px}.game-tool-grid>div{padding:25px;background:#102330;border:1px solid #4e7a8b66}.game-tool-grid strong{font:15px var(--font-mono);color:#9bcacd}.game-tool-grid p{font-size:12px;margin-top:20px}.game-note{font-size:12px;color:#7899ae!important}.section-switchboard{max-width:1280px;margin:60px auto 0;padding:40px var(--gutter);border-top:1px solid #4b718744;display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;background:#0d1b25}.section-switchboard>div{font:9px var(--font-mono);color:#69909e;letter-spacing:.1em}.section-switchboard>a{font-size:12px;color:#a7c7ce;border-bottom:1px solid #6a9b9344;padding:8px 0}.interior-motion{position:fixed;right:17px;bottom:15px;z-index:90;background:#0d1d29ed;border:1px solid #567d8a66;color:#8fb2c0;font:8px var(--font-mono);padding:10px;cursor:pointer}.dossier-paused *,.dossier-paused *::before,.dossier-paused *::after{animation-play-state:paused!important}.dossier-entrance{animation:dossier-enter .7s ease-out both;animation-delay:var(--stagger,0ms)}.dossier-entrance:not(.dossier-visible){animation-play-state:paused}.dossier-visible{animation-play-state:running}
@keyframes dossier-flow{to{stroke-dashoffset:-180}}@keyframes dossier-orbit{to{rotate:360deg}}@keyframes scene-node{50%{stroke:#b3f0df;fill:#254b50}}@keyframes dossier-book{50%{translate:0 -9px;rotate:3deg}}@keyframes dossier-wave{50%{scale:1 .25;opacity:.25}}@keyframes dossier-bars{50%{scale:.55 1}}@keyframes dossier-scan{to{translate:0 100%}}@keyframes dossier-steam{to{translate:8px -40px;opacity:0}}@keyframes dossier-blink{50%{opacity:0}}@keyframes dossier-path{to{translate:300% 0}}@keyframes dossier-enter{from{opacity:.25;translate:0 16px}to{opacity:1;translate:0 0}}
@media(max-width:1100px){.dossier-hero{padding-top:108px}.dossier-hero-grid{grid-template-columns:60% 40%}.dossier .dossier-intro h1{font-size:48px}.dossier-scene{height:300px}.dossier .book-grid{grid-template-columns:1fr}.dossier .cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier .proj-row{grid-template-columns:40% 60%}.dossier .proj-row__body{padding:25px}.dossier .proj-row__name{font-size:34px}.dossier .filters{top:70px}.dossier .proj-grid{grid-template-columns:minmax(0,1fr) 220px}.dossier .card__cover{height:210px}.dossier .card h3{font-size:24px}}
@media(max-width:760px){.dossier-hero{padding:100px var(--gutter) 40px}.dossier-breadcrumb{font-size:8px;margin-bottom:28px}.dossier-hero-grid{grid-template-columns:1fr}.dossier .dossier-intro h1{font-size:42px}.dossier-intro>p{font-size:13px}.dossier-scene{height:235px;margin-top:25px}.scene-terminal{max-width:380px}.scene-books img{max-width:95px}.scene-document{scale:.8}.scene-portrait{max-height:235px}.dossier #cases-list,.dossier #posts-list{grid-template-columns:1fr}.catalogue-controls{gap:16px}.catalogue-controls input{max-width:none;flex-basis:100%}.catalogue-filters button{font-size:9px;padding:10px 12px}.dossier .card__cover{height:230px}.dossier .card__body{padding:25px}.dossier .proj-row{grid-template-columns:1fr}.dossier .proj-row__cover{min-height:0;height:260px}.dossier .proj-row__body{padding:28px}.dossier .proj-row__name{font-size:39px}.dossier .proj-grid{grid-template-columns:1fr;gap:25px}.dossier .proj-grid__side{position:static;order:-1}.dossier .proj-shots{grid-template-columns:1fr}.dossier .proj-sub{font-size:15px}.dossier .cert-grid{grid-template-columns:1fr}.dossier .cert__img{height:270px}.dossier .cert__body{padding:25px}.dossier .cert__body h3{font-size:24px}.dossier .book{grid-template-columns:120px minmax(0,1fr);gap:22px;padding:22px}.dossier .book__cover{width:120px;height:185px}.dossier .book h4{font-size:23px}.dossier .book-category h2{font-size:32px}.reader-map-nodes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reader-map-nodes a{gap:10px;padding:13px}.dossier .prose{font-size:15px;padding:0 24px}.dossier .article-meta h1{font-size:36px}.dossier .prose h2{font-size:27px}.dossier .tl-item{padding:25px}.dossier .timeline{padding-left:22px;margin-left:10px}.dossier .tl-item::before{left:-28px}.page-speaking .cert{padding-left:26px}.page-speaking .cert::before{left:15px;top:28px;font-size:9px}.page-speaking .cert__body{padding:24px}.page-speaking .cert h3{font-size:25px}.dossier .rec{padding:27px}.section-switchboard{gap:16px 25px}.section-switchboard>div{flex-basis:100%}.game-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-brief h2{font-size:34px}.game-brief p{font-size:14px}.detail-breadcrumb{padding-top:105px}}
@media(max-width:450px){.dossier .dossier-intro h1{font-size:37px}.dossier .eyebrow{font-size:8px}.dossier .book{grid-template-columns:1fr}.dossier .book__cover{width:155px;height:235px;margin:0 auto 15px}.dossier .book h4{font-size:26px}.dossier .book p{font-size:13px}.dossier .filters{gap:6px;padding:12px 0}.dossier .filter-pill{font-size:10px;padding:9px 11px}.dossier .card__cover{height:200px}.dossier .proj-row__cover{height:215px}.dossier .cert__img{height:230px}.reader-map-nodes{grid-template-columns:1fr}.reader-map-nodes a{font-size:11px}.dossier .contact-item{padding:20px}.dossier .contact-item__value{font-size:13px}.game-tool-grid{gap:12px}.game-tool-grid>div{padding:18px}.dossier .article-meta h1{font-size:32px}.dossier .proj-name{font-size:50px}.document-viewer{width:96vw;height:87vh;padding:45px 10px 15px}.scene-identity strong{font-size:48px}}
@media(prefers-reduced-motion:reduce){.dossier *,.dossier *::before,.dossier *::after{animation:none!important;transition:none!important}.dossier-entrance{opacity:1!important;translate:none!important}}
.redesign.interior.dossier .content-anchor+section{padding-top:45px!important}.dossier .dossier-catalogue{max-width:none!important}.dossier .dossier-catalogue .card__cover{min-width:0;max-width:none;padding:0}.dossier .dossier-catalogue .card{padding:0}
.redesign.interior.dossier.page-project>section:first-of-type{padding-top:15px!important}.dossier .proj-section{padding-top:10px}.dossier .proj-back{margin-bottom:20px}.dossier .proj-head{padding-top:20px}.dossier .reader-map-nodes a:hover{border-color:#93d1bd;background:#19323a}
/* Evidence-led case and readable project gallery. */
.dossier .investigation-map{border-top:1px solid #658a8c;margin-top:32px!important;padding-top:30px}
.dossier .investigation-map h2{margin:12px 0 18px;font-size:clamp(30px,4vw,46px);max-width:650px;letter-spacing:-.035em}
.investigation-map>p{max-width:680px;font-size:14px;line-height:1.7}
.trace-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:28px;border-bottom:1px solid #486a78}
.trace-controls button{min-height:80px;text-align:left;padding:15px 12px;background:transparent;border:0;border-bottom:2px solid transparent;color:#8ca6b3;font:12px/1.6 var(--font-sans);cursor:pointer}
.trace-controls button[aria-pressed=true]{background:#17312f;color:#c3f5e8;border-bottom-color:#a2dec9}
.trace-panel{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;padding:28px 0;align-items:center}
.trace-visual{display:block;width:100%;height:300px;padding:12px;background:#08131d;border:1px solid #42627a77;cursor:zoom-in}
.trace-visual img{width:100%;height:100%;object-fit:contain;margin:0!important}
.dossier .trace-panel h3{margin:0 0 16px;font-size:25px}
.trace-panel p{font-size:14px;line-height:1.8}.trace-panel a{display:inline-block;margin-top:18px;font-size:12px}
.trace-outcome{border-left:2px solid #a2dec9;padding:12px 20px;color:#b8dbce;background:#132923}
.screen-expand,.document-scale{padding:10px 14px;border:1px solid #81b3b2;color:#c3f5e8;background:#102831;font:12px var(--font-sans);cursor:pointer}
.screen-expand{margin-top:16px}.document-scale{position:absolute;top:12px;left:20px}
.document-viewer.actual-size figure{display:block;height:auto;min-width:100%;width:max-content}
.document-viewer.actual-size img{max-width:none;max-height:none;width:auto;height:auto;display:block}
.document-scale[aria-pressed=true]{background:#b6ded3;color:#102831}
.screen-selectors button:focus-visible,.trace-controls button:focus-visible,.trace-visual:focus-visible,.screen-expand:focus-visible{outline:2px solid #c3f5e8;outline-offset:3px}
@media(max-width:760px){.trace-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.trace-controls button{min-height:68px}.trace-panel{grid-template-columns:1fr;gap:20px}.trace-visual{height:250px}.dossier .screen-stage img{height:auto;max-height:420px;min-height:180px}.screen-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.screen-selectors button{min-width:0;min-height:65px;font-size:12px;white-space:normal}.screen-stage p{line-height:1.6}}

/* Soft portrait edges and restored credential grid; original motion retained. */




:is(.page-about,.page-certificates) .dossier-hero::before{background:radial-gradient(ellipse at 80% 50%,#19313d55,transparent 65%)}
.page-about .dossier-scene.scene-portrait{height:390px;max-width:none;mask-image:none;filter:none;overflow:visible}
.page-about img.scene-portrait{width:100%;height:100%;max-width:480px;object-fit:contain;mask-image:radial-gradient(ellipse 49% 55% at 50% 44%,#000 48%,transparent 99%);filter:none}
.page-about .scene-caption{display:none}
.page-about .narrow>.reveal:has([data-i18n="about.p1"]){display:block!important;max-width:780px;margin:auto}
.page-about .narrow>.reveal:has([data-i18n="about.p1"])>div:first-child{display:none}
.page-about .narrow p{font:16px/1.9 var(--font-sans)}
.page-about .timeline{max-width:880px;margin-inline:auto}




.page-certificates .cert__meta-row{flex-wrap:wrap;gap:5px 12px;overflow-wrap:anywhere}
.page-certificates .cert__meta-row code{min-width:0;word-break:break-word}

.page-certificates .content-anchor+section:has(.container:empty){display:none}
@media(max-width:760px){.page-about .dossier-scene.scene-portrait{height:285px}.page-about img.scene-portrait{max-width:340px}.page-about .timeline{margin-left:10px}.page-about .narrow p{font-size:15px}}
/* Compact credential cards: full descriptions remain available on demand. */
.page-certificates .cert-grid{align-items:start}
.page-certificates .cert__img{height:210px;padding:16px}
.page-certificates .cert__body{padding:18px 22px 22px}
.page-certificates .cert__body h3{font-size:20px;line-height:1.3;margin:14px 0 16px}
.page-certificates .cert-details{margin:12px 0;border-top:1px solid #537b8e44;padding-top:12px}
.page-certificates .cert-details summary{cursor:pointer;color:#acd8d1;font:12px/1.6 var(--font-sans);width:fit-content}
.page-certificates .cert-details summary:focus-visible{outline:2px solid #acd8d1;outline-offset:4px}
.page-certificates .cert-details[open] summary{margin-bottom:14px}
.page-certificates .cert-details p{overflow-wrap:anywhere}
.page-certificates .cert .card__link{display:inline-block;margin-top:8px;font-size:11px}
@media(max-width:760px){.page-certificates .cert__img{height:220px}.page-certificates .cert__body h3{font-size:21px}}
