/* Shared visual contract, loaded after page styles on every route. */
:root{--surface:linear-gradient(145deg,#30364075,#1c212b35);--surface-border:#65718a45;--surface-radius:24px;--section-space:clamp(60px,7vw,100px);--title-size:clamp(42px,7vw,96px);--muted-copy:#a8b5c9;--motion-ease:cubic-bezier(.22,1,.36,1);--layer-light:1000;--layer-map:1002;--layer-nav:1100;--layer-cursor:2147483646}
body{background-color:#16191e;background-image:radial-gradient(circle,#798bb56d .8px,transparent .9px),radial-gradient(ellipse at 48% 7%,#34394488,transparent 38%),linear-gradient(125deg,#191d23,#111419 65%,#23272e);background-size:28px 28px,100% 100%,100% 100%;background-position:0 0;background-repeat:repeat,no-repeat,no-repeat}
.site-header{height:82px;z-index:var(--layer-nav);border-color:#444b57;gap:24px}
.site-header .nav{gap:32px}.site-header .nav a{font-size:14px}.site-header .nav-contact{min-height:44px}
.portfolio-page{padding:0 0 35px;min-height:0}
.portfolio-intro,.contact-intro,.story-head{padding:var(--section-space) 0 58px;margin:0}
.portfolio-intro h1,.contact-intro h1,.story-head h1,.editor-heading h1{font:500 var(--title-size)/1.05 var(--font-ui);letter-spacing:-.065em;margin:0 0 28px;max-width:1120px}
.portfolio-intro em,.story-head h1 em{font-style:normal;background:var(--intro-spectrum);background-clip:text;-webkit-background-clip:text;color:transparent}
.portfolio-intro p,.contact-intro p{font:400 17px/1.8 var(--font-ui);color:var(--muted-copy);max-width:720px;margin:12px 0 0}
.section-nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:13px;color:#a9bbd2;padding:28px 0 0}
.section-nav a{display:inline-flex;gap:10px;align-items:center;min-height:32px}.section-nav a:hover{color:#a7e8fa}
.section-nav+.portfolio-intro{padding-top:42px}
:is(.detail-card,.step,.shelf-item,.roadmap-card,.world-card,.project-brief,.editor-form){background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--surface-radius);padding:32px;box-shadow:0 1px 0 #ffffff06 inset}
:is(.detail-card,.project-card,.step,.shelf-item,.roadmap-card) h2,:is(.step,.roadmap-card) h3,.shelf-item h4{font:var(--type-card);letter-spacing:var(--tracking-card)}
:is(.detail-card,.project-card) h2{margin:26px 0 16px}
:is(.detail-card,.project-card,.step,.shelf-item,.roadmap-card) p{font-size:16px;line-height:1.8;color:var(--copy-color)}
.detail-meta{color:#a7b9d2!important;font-size:13px!important;letter-spacing:.015em}
.detail-grid,.project-grid,.library-steps,.shelf-items,.roadmap{gap:24px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:40px}
.project-card{display:block;min-height:265px;overflow:hidden}
.project-card-top{display:flex;align-items:center;justify-content:space-between}
.card-arrow{font-size:27px;color:#a9c8ec;transition:transform .4s var(--motion-ease)}
.project-card:hover .card-arrow,.project-card:focus-visible .card-arrow{transform:translate(3px,-3px)}
.project-card>p:last-child{margin-bottom:0}.project-brief{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;margin:0 0 70px}
.project-emblem{display:grid;place-items:center;min-height:250px;color:#a8bded;background:radial-gradient(ellipse,#96b7ff12,transparent 68%)}
.project-emblem svg{width:min(100%,400px);stroke:currentColor;stroke-width:1.2}
.project-facts{margin:0}.project-facts>div{padding:20px 0;border-bottom:1px solid var(--surface-border)}.project-facts dt{font:11px ui-monospace,monospace;color:#93a5bf;letter-spacing:.08em;text-transform:uppercase}.project-facts dd{margin:10px 0 0;color:var(--copy-color)}
.project-chapter{display:grid;grid-template-columns:80px 1fr;padding:45px 0;border-top:1px solid var(--surface-border)}.project-chapter .detail-number{padding-top:14px}.project-chapter h2{font:var(--type-section);letter-spacing:-.045em;margin:0 0 24px}.project-chapter p{max-width:720px;line-height:1.9;color:var(--copy-color)}
.contact-page{max-width:var(--max)}.contact-intro{align-items:center;margin:0}.contact-methods{margin:0 0 50px}.contact-method{border-color:var(--surface-border)}
.education-page .page-hero{min-height:0;padding-right:440px}.education-page .page-hero h1{font-size:var(--title-size);max-width:780px}.education-page .page-visual{right:0;top:var(--section-space);width:370px;height:370px;border-radius:var(--surface-radius);border-color:var(--surface-border);background:var(--surface);box-shadow:none}
.education-page .section{padding:65px 0}.education-page .section h2{font:var(--type-section);letter-spacing:-.045em;margin:14px 0 0}.education-page .library-intro p{color:var(--copy-color);line-height:1.8}.education-page .resource-shelf,.education-page .wide-note{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--surface-radius);padding:32px}.education-page .planned{background:#899bb412;color:#a6b6cd;border:1px solid #899bb433;font-size:10px;letter-spacing:.08em}.education-page .shelf-empty,.education-page small{color:#94a6bd}.education-page .wide-note p,.education-page .roadmap-card p{color:var(--copy-color)}.education-page .step h3{margin-top:50px}.education-page .roadmap-card h3{margin-top:48px}.education-page .subnav{gap:10px;max-width:680px}.education-page .subnav a{border-color:var(--surface-border);color:#aebed2}.education-page .subnav a:hover{border-color:#a0bedf99}
.story-head,.story-bottom{width:min(calc(100% - 64px),var(--max));max-width:var(--max);margin:auto}.story-head h1{max-width:1000px}.story-article{max-width:760px}.travel-management{margin-top:25px;padding-bottom:25px}
/* The Gallery keeps original files, colour and resolution. */
.gallery-shell{position:relative;z-index:1002}.gallery-photo img{filter:none}
.editor-wrap{width:min(calc(100% - 64px),var(--max));max-width:var(--max);padding:var(--section-space) 0 50px}.editor-heading h1{font-size:clamp(38px,5vw,68px)}
.footer{padding:36px 0 50px}.portfolio-footer .footer-inner{justify-content:center}.back-map-footer{margin-top:55px;padding-top:24px;border-top:1px solid #414954}.footer-credit{font:700 clamp(17px,2vw,24px)/1.5 var(--font-ui)}
/* Decorative light must never intercept clicks or disappear behind map / popover layers. */
.saturation-veil{z-index:var(--layer-light);pointer-events:none!important}.cursor-light{z-index:var(--layer-cursor)!important;pointer-events:none!important}.cursor-light *,.light-motes,.scroll-beam-colour{pointer-events:none!important}
:where(a,button,input,textarea,select):focus-visible{outline:2px solid #9bd8f2;outline-offset:5px}
.signal-image{display:block;position:relative;max-width:100%;overflow:hidden;border-radius:inherit}.signal-image>img{display:block}.signal-image.is-ready>img{opacity:0}.signal-image>canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:blur(.25px)}
.signal-illustration:hover{animation:illustration-signal 3.8s infinite;filter:blur(.35px)}
@keyframes illustration-signal{0%,95%,100%{translate:0 0}96%{translate:-1px 0}97%{translate:1.5px 0}98%{translate:0 0}}
@media(max-width:1050px){.education-page .page-hero{padding-right:0}.education-page .page-visual{position:relative;top:auto;right:auto;margin-top:40px;width:min(100%,520px);height:350px}.site-header .nav{gap:20px}}
@media(max-width:800px){.site-header{height:70px;gap:10px}.site-header .nav{top:69px;background:#171d27f7;border-color:var(--surface-border);gap:18px}.site-header .brand{flex-basis:230px;width:230px}.site-header .brand canvas{width:230px}.portfolio-intro,.contact-intro,.story-head{padding-top:60px;padding-bottom:40px}.portfolio-intro h1,.story-head h1{font-size:clamp(40px,7vw,70px)}.project-brief{gap:20px}.story-head,.story-bottom,.editor-wrap{width:calc(100% - 36px)}.editor-wrap{padding-top:60px}.contact-intro{gap:20px}}
@media(max-width:600px){.project-grid,.project-brief{grid-template-columns:1fr}.project-card{min-height:240px}.project-chapter{grid-template-columns:42px 1fr;padding:32px 0}.project-emblem{min-height:190px}.project-emblem svg{height:210px}.portfolio-intro h1,.contact-intro h1{font-size:clamp(39px,9vw,54px)}.portfolio-intro p{font-size:16px}.education-page .page-visual{height:300px}.education-page .section{padding:45px 0}:is(.detail-card,.step,.shelf-item,.roadmap-card,.world-card,.project-brief,.editor-form){padding:24px;border-radius:20px}.education-page .resource-shelf,.education-page .wide-note{padding:24px}.education-page .shelf-head{align-items:flex-start;flex-direction:column}.section-nav{font-size:12px}.contact-intro .contact-illustration{width:80px}.back-map-footer{margin-top:40px}}
@media(prefers-reduced-motion:reduce){.signal-illustration:hover{animation:none;filter:none}}

.world-card:hover .signal-illustration,.world-card:focus-visible .signal-illustration{animation:illustration-signal 3.8s infinite;filter:blur(.35px)}
@media(prefers-reduced-motion:reduce){.world-card:hover .signal-illustration,.world-card:focus-visible .signal-illustration{animation:none}}
/* Owner editing tools sit alongside the exact public-page layout. */
.studio-tabs{display:flex;gap:10px;flex-wrap:wrap}.studio-tabs a,.cms-toolbar button,.cms-tools button,.cms-add button,.cms-tools a{border:1px solid #7c9aba66;background:#26364a;color:#d7e9ff;border-radius:8px;padding:9px 14px;font:13px var(--font-ui);cursor:pointer}.studio-tabs a.active{border-color:#89e5ed;background:#304d60}.studio-preview{display:block;width:100%;height:82vh;min-height:650px;border:1px solid var(--surface-border);border-radius:20px;background:#16191e;margin-top:24px}.content-edit-mode{padding-top:65px}.cms-toolbar{position:fixed;left:0;right:0;top:0;z-index:1300;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:#152230f7;border-bottom:1px solid #8ccbd977;color:#d7e9ff;font:13px var(--font-ui);box-shadow:0 4px 20px #0004}.cms-save-status{margin-right:auto;color:#a5cfcc}.cms-save-status.error,.cms-error{color:#ffc0bb}.cms-error{padding:20px;border:1px solid #b77b6d;background:#241a1c}.cms-toolbar [data-save]{background:#b2dce7;color:#132630}.cms-toolbar a{color:#b9d9f1}.content-edit-mode [data-content-field]{outline:1px dashed #8cbbd04d;outline-offset:4px;cursor:text;min-width:35px;min-height:1em;display:inline-block;border-radius:2px;white-space:pre-wrap}.content-edit-mode [data-content-field]:focus{outline:2px solid #8ee8ed;background:#729ac51a}.content-edit-mode [data-content-field]:empty:before{content:attr(data-placeholder);color:#94a4b8;opacity:.7}.content-placeholder{opacity:.65}.cms-module-shell{position:relative;min-width:0}.cms-module-shell>.world-card{height:100%}.cms-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0}.cms-tools button,.cms-tools a{font-size:11px;padding:6px 10px}.cms-add{display:flex;align-items:center;gap:12px;padding:20px 0;grid-column:1/-1}.cms-add select{max-width:65%;padding:10px;background:#172332;border:1px solid #7c9aba66;color:#d3e3f2;border-radius:8px}.cms-pdfs{border:1px dashed #8cbbd077;border-radius:16px;padding:20px;margin-top:24px;text-align:left}.cms-pdfs p{font-size:13px}.cms-pdfs label{display:block;padding:12px 0;font:14px var(--font-ui);color:#c4d4e7}.cms-pdfs input{margin:8px;max-width:100%}.content-edit-mode .saturation-veil{display:none}.content-edit-mode .project-grid>.cms-module-shell{display:flex;flex-direction:column}.content-edit-mode .project-grid>.cms-module-shell>.project-card{flex:1}.content-edit-mode .project-chapters>.cms-module-shell{display:block}.content-edit-mode .cms-toolbar button:disabled{opacity:.5;cursor:wait}@media(max-width:700px){.cms-toolbar{position:sticky;margin-top:-65px;gap:8px;padding:10px;font-size:11px}.cms-toolbar strong{display:none}.cms-toolbar button{padding:8px;font-size:11px}.cms-save-status{width:100%}.studio-preview{min-height:700px}.cms-add{flex-wrap:wrap}.cms-pdfs input{margin:8px 0}}

.studio-page .saturation-veil{display:none}.cms-link-field{display:block;margin:16px 0;color:#adc4d9;font:13px var(--font-ui)}.cms-link-field input{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #7c9aba66;border-radius:8px;background:#172332;color:#d3e3f2}

.project-resource a[hidden],.contact-value a[hidden]{display:none!important}.project-resource a{font-size:14px;color:#b7cbea}
.portfolio-intro.wrap{margin-inline:auto}.education-page .cms-module-shell>.cms-tools,.education-page main>.cms-add{width:min(calc(100% - 64px),var(--max));margin-inline:auto}

/* Studio chrome frames the public templates, never a separately maintained copy. */
.studio-page{background:#11161d;color:#c7d4e3}.studio-page #content-studio{min-height:100vh}.studio-page .editor-gate{max-width:600px;margin:12vh auto;padding:40px}.studio-page>.footer,.studio-page>.back-map-footer{display:none}.studio-app{display:grid;grid-template-columns:236px minmax(0,1fr);height:100vh;overflow:hidden}.studio-sidebar{padding:25px 18px;overflow-y:auto;border-right:1px solid #8da4c52b;background:linear-gradient(170deg,#202a36,#131921)}.studio-brand{display:block;font-size:23px;font-weight:700;letter-spacing:-.05em;margin-bottom:30px}.studio-brand span{display:block;margin-top:4px;font-size:12px;font-weight:400;letter-spacing:.06em;color:#97b3c8}.studio-section-label{display:block;font-size:10px;letter-spacing:.1em;color:#8295ac;margin:22px 10px 8px}.studio-sidebar nav{display:flex;flex-direction:column;gap:3px}.studio-sidebar nav a{display:block;padding:10px 12px;border-radius:7px;font-size:13px;line-height:1.3;border:1px solid transparent}.studio-sidebar nav a:hover{background:#a2c6db12}.studio-sidebar nav a.active{background:#98d5e71d;border-color:#98d5e747;color:#b6eff5}.studio-owner{font-size:11px;line-height:1.8;color:#73879b;margin:28px 12px 0}.studio-workspace{min-width:0;display:flex;flex-direction:column}.studio-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;height:80px;padding:14px 24px;border-bottom:1px solid #8da4c52b;background:#171e27}.studio-topbar .studio-section-label{margin:0 0 4px}.studio-topbar strong{font-size:15px;font-weight:500}.studio-view-controls{display:flex;align-items:center;gap:8px}.studio-view-controls button,.studio-view-controls a{border:1px solid #8ba6c43d;background:transparent;color:#bbccdd;border-radius:7px;padding:7px 11px;font-size:12px;cursor:pointer}.studio-view-controls button[aria-pressed=true]{background:#334455;color:#e1f8ff}.studio-preview-stage{flex:1;min-height:0;display:flex;justify-content:center;background:#0a0e13}.studio-page .studio-preview{margin:0;border:0;border-radius:0;width:100%;height:100%;min-height:0;transition:max-width .2s}.studio-preview-stage.mobile .studio-preview{max-width:390px;border-inline:1px solid #7c9aba66}.content-edit-mode .cms-toolbar{z-index:2000}.content-edit-mode .cursor-light,.studio-page .cursor-light{display:none!important}.content-edit-mode .scroll-copy{opacity:1!important;filter:none!important;transform:none!important}.content-edit-mode .cms-toolbar{min-height:65px}.cms-assets{max-width:1120px;margin:60px auto;padding:28px;border:1px solid #8cbbd066;border-radius:16px;background:#18232e;scroll-margin-top:90px}.cms-assets>p{font-size:13px;color:#a9c0d4}.cms-assets h2{font-size:24px;margin:0 0 12px}.cms-asset-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.cms-upload{display:block;position:relative;padding:10px 14px;border:1px solid #8fbdd273;background:#2a4052;border-radius:8px;color:#dbf3ff;cursor:pointer;font-size:13px}.cms-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.cms-upload:focus-within{outline:2px solid #a5ecf5;outline-offset:3px}.cms-image-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.cms-image-slot{display:flex;align-items:center;gap:16px;padding:14px;background:#101b26;border-radius:10px;min-width:0}.cms-image-slot>img{width:85px;height:85px;object-fit:contain}.cms-image-slot p{font-size:12px;line-height:1.5;margin:0 0 10px;overflow-wrap:anywhere}.cms-image-slot button,.content-attachment button{border:0;background:transparent;color:#accce1;font-size:12px;padding:8px;cursor:pointer}.content-attachments{width:min(100%,1120px);margin:60px auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}.content-attachments[hidden]{display:none}.content-attachment{margin:0;min-width:0}.content-attachment img{width:100%;max-height:560px;object-fit:cover;border-radius:12px}.content-attachment a{display:block;padding:22px;border:1px solid #8cbbd066;border-radius:12px;color:#badbed}.content-attachment figcaption{color:#a9b9cc;font-size:14px;padding:12px 0}.content-attachment input{width:100%;padding:10px;margin-top:12px;border:1px solid #8cbbd066;border-radius:6px;background:#142331;color:#d6e4f4}.project-cover{overflow:hidden;border-radius:14px}.project-cover img{display:block;width:100%;height:300px;object-fit:cover}.profile-stop{position:relative;z-index:1003}.profile-copy{position:relative;z-index:2}.profile-copy h2{position:relative;z-index:3}.pixel-portrait{z-index:1}
@media(max-width:850px){.studio-app{grid-template-columns:170px minmax(0,1fr)}.studio-sidebar{padding:18px 10px}.studio-brand{font-size:20px}.studio-topbar{padding:12px;gap:10px}.studio-view-controls{gap:4px}.studio-view-controls button{display:none}.studio-view-controls a{font-size:10px}.cms-image-slots{grid-template-columns:1fr}.cms-assets{padding:20px}.studio-sidebar nav a{font-size:12px;padding:9px 10px}}
@media(max-width:540px){.studio-app{grid-template-columns:1fr;grid-template-rows:120px minmax(0,1fr)}.studio-sidebar{display:flex;align-items:center;gap:14px;overflow:auto;border-right:0;border-bottom:1px solid #8da4c52b;padding:12px}.studio-brand{min-width:115px;margin:0;font-size:18px}.studio-sidebar nav{flex-direction:row;gap:6px}.studio-sidebar nav a{white-space:nowrap;background:#223242}.studio-sidebar .studio-section-label,.studio-owner{display:none}.studio-topbar{height:65px}.cms-assets{margin:35px 16px}.content-attachments{width:calc(100% - 32px)}}

.content-edit-mode .particle-stage.ready h1{opacity:1;pointer-events:auto;z-index:2}.content-edit-mode #name-field{visibility:hidden}.content-edit-mode .particle-stage h1 [data-content-field]{min-width:80px}.content-edit-mode .gallery-photo figcaption{opacity:1!important}

.content-edit-mode .particle-stage.ready h1{position:relative;width:90%;height:auto;overflow:visible;clip-path:none;text-align:center}.signal-illustration:hover,.world-card:hover .signal-illustration{filter:blur(.35px) drop-shadow(-1px 0 #ff608033) drop-shadow(1px 0 #69e9ff33)}
@media(prefers-reduced-motion:reduce){.signal-illustration:hover,.world-card:hover .signal-illustration{filter:none}}

/* A centred signature with independent left and right navigation. */
.site-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px) minmax(0,1fr);gap:18px}
.site-header>.brand,.site-header>.brand.pixel-cue-ready{grid-column:2;grid-row:1;justify-self:center;width:100%;max-width:440px;flex-basis:auto;text-align:center;white-space:normal;font-size:19px;letter-spacing:-.04em}
.site-header .brand .explore-pixels{width:100%;aspect-ratio:760/72}
.site-header>.nav{grid-column:1;grid-row:1;justify-self:start;gap:24px;white-space:nowrap}
.site-header>.nav-contact{grid-column:3;grid-row:1;justify-self:end;background:linear-gradient(100deg,#1e9bc5,#7053d7);box-shadow:0 6px 24px #4161e340;color:white;border-radius:100px;padding:11px 17px;font-size:14px;font-weight:700;white-space:nowrap}
.site-header>.nav-contact:hover{background:linear-gradient(100deg,#45bceb,#8f72ec)}
.footer-credit.pixel-cue-ready{display:block;width:min(100%,570px);margin:auto;line-height:1}
.footer-credit .explore-pixels{width:100%;aspect-ratio:760/72}
.footer-credit:focus-visible{outline:1px solid #8de5ff;outline-offset:6px}
@media(max-width:1100px){.site-header{height:116px;grid-template-columns:1fr 1fr;grid-template-rows:52px 54px;gap:0 16px}.site-header>.brand,.site-header>.brand.pixel-cue-ready{grid-column:1/-1;grid-row:1;max-width:420px}.site-header>.nav{grid-column:1;grid-row:2;gap:24px}.site-header>.nav-contact{grid-column:2;grid-row:2}}
@media(max-width:800px){.site-header .menu-button{display:block;grid-column:1;grid-row:2;justify-self:start;font-size:22px}.site-header>.nav{grid-row:auto;grid-column:auto;top:115px;justify-self:stretch;gap:18px}.site-header>.brand,.site-header>.brand.pixel-cue-ready{max-width:390px}.site-header>.nav-contact{font-size:12px;padding:8px 13px}.site-header .brand .explore-pixels{width:100%}.footer-credit.pixel-cue-ready{max-width:440px}}
/* Short arrival transmission; no persistent overlay or pointer interception. */
.cyber-enter{animation:cyber-arrive .72s steps(1,end) both;animation-delay:var(--entry-delay,0ms)}
@keyframes cyber-arrive{0%{opacity:.62;translate:-2px 0;text-shadow:2px 0 #6ce7ff99,-2px 0 #cb87f588}12%{opacity:1;translate:2px 0;text-shadow:-2px 0 #6ce7ff99,2px 0 #cb87f588}22%{translate:0 0;text-shadow:none}37%{translate:-1px 0;text-shadow:1px 0 #6ce7ff77,-1px 0 #cb87f566}48%,100%{opacity:1;translate:0 0;text-shadow:none}}
@media(prefers-reduced-motion:reduce){.cyber-enter{animation:none}}

.site-header{z-index:1005}.portfolio-footer .footer-credit{position:relative;z-index:1002}
