@font-face{font-family:'DM Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url('/fonts/dm-sans-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 900;font-display:swap;src:url('/fonts/manrope-latin-wght-normal.woff2') format('woff2')}
:root{color-scheme:dark;--bg:#080e10;--white:#edf5f3;--muted:#9dacac;--line:#ffffff26;--accent:#4bffa5;--accent-soft:#72dea9;--accent-line:#4bffa566}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--white);font-family:'DM Sans',sans-serif;font-size:16px;font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #c4eeed;outline-offset:7px}a,button{-webkit-tap-highlight-color:transparent}button{background:none;border:0}#universe{position:fixed;inset:0;width:100%;height:100%;z-index:-2}.vignette{position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#080e1066,transparent 55%),linear-gradient(0deg,#080e10b0,transparent 28%,transparent 75%,#080e10c0)}header{position:fixed;z-index:20;top:0;left:0;width:100%;padding:30px 5.2%;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#080e10ef,#080e1000)}.brand{font-family:Manrope,sans-serif;letter-spacing:-1px;font-weight:500;font-size:25px}.brand span{display:block;font:12px 'DM Sans',sans-serif;letter-spacing:.04em;color:var(--muted);margin-top:7px}header nav{display:flex;align-items:center;gap:38px;font-size:14px}header nav>a{transition:color .2s}header nav>a:hover{color:#92d9d5}.contact-link{border-bottom:1px solid #98b4b3;padding:10px 0}.contact-link span{margin-left:24px}#menu{display:none}.scene{position:relative;min-height:100svh;padding:145px 8% 80px 7%;display:flex;flex-direction:column;justify-content:center}.hero{min-height:100svh}.hero-top{position:absolute;top:154px;left:7%;right:8%;display:flex;justify-content:space-between}.eyebrow,.edition,.hero-bottom,.section-marker,.scene-caption>span,.detail-number{font-size:12px;letter-spacing:.16em;font-weight:400;line-height:1.7}.eyebrow{color:#acbdbc}.edition{color:#91a8a7;letter-spacing:.02em}.hero-copy{margin-top:80px;max-width:740px}h1,h2{font-family:Manrope,sans-serif;font-weight:300;font-size:clamp(54px,5.8vw,96px);letter-spacing:-.06em;line-height:1.08;margin:0 0 28px}h1 em,h2 em{font-style:normal;color:#9bafae}h1{font-size:clamp(60px,6.15vw,100px)}p{color:#aebfbe;line-height:1.8;font-size:16px}.hero-copy p{font-size:17px;margin:28px 0}.text-link{display:inline-flex;align-items:center;gap:32px;font-size:14px;padding:13px 0;border-bottom:1px solid #69807e;transition:gap .3s,color .3s}.text-link:hover{gap:43px;color:#a9e6e0}.text-link span{font-size:21px}.object-label{position:absolute;right:10%;top:69%;font-size:12px;letter-spacing:.04em;color:#aac0bc;display:flex;align-items:center;gap:14px}.object-label i{height:1px;width:46px;background:#587772}.hero-bottom{position:absolute;bottom:39px;left:7%;right:8%;display:flex;justify-content:space-between;color:#8b9a99;font-size:12px}.hero-bottom b{display:inline-block;font-weight:300;font-size:19px;margin-left:18px}.section-marker{position:absolute;top:145px;left:7%;right:8%;display:flex;justify-content:space-between;color:#95aaa8;border-top:1px solid var(--line);padding-top:20px;font-size:12px}.chapter{min-height:115svh}.chapter-copy{max-width:490px;width:42%;margin-top:80px}.chapter-copy>.eyebrow{margin-bottom:26px}.right .chapter-copy{margin-left:auto}.chapter h2{font-size:clamp(49px,5vw,78px);margin-bottom:28px}.chapter-copy>p{max-width:440px}.detail{border-top:1px solid var(--line);padding-top:23px;margin-top:34px;margin-bottom:15px}.detail-number{color:#839d9a;font-size:12px}h3{font-size:18px;letter-spacing:-.025em;font-weight:400;margin:12px 0 8px}.detail p{font-size:14px;line-height:1.8}.scene-caption{position:absolute;bottom:76px;left:7%}.left .scene-caption{left:auto;right:8%;text-align:right}.scene-caption>span{color:#7f9694;font-size:12px}.scene-caption p{font-size:13px;margin:6px 0}.expertise-list{margin:30px 0 12px;border-top:1px solid var(--line)}.expertise-list span{display:block;border-bottom:1px solid var(--line);padding:14px 0;font-size:15px;color:#bdcecb}.closing{text-align:center;padding-top:170px;min-height:115svh}.closing>.eyebrow{margin-bottom:30px}.closing h2{font-size:clamp(60px,7.3vw,110px)}.closing>p{margin:0 0 16px}.big-link{display:inline-flex;align-self:center;font-size:30px;border-bottom:1px solid #87a5a0;gap:70px;padding:14px 0;margin-bottom:100px}.closing-bottom{text-align:left;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:35px;gap:30px}.closing-bottom h3{font-size:23px}.footer-meta{display:flex;flex-direction:column;gap:12px;text-align:right;font-size:12px;color:#98adaa}.footer-meta a{font-size:15px;color:#d4e4df}.rail{position:fixed;right:30px;top:44%;display:flex;flex-direction:column;gap:16px;z-index:10}.rail a{display:flex;justify-content:flex-end;align-items:center;width:30px;height:15px}.rail a:after{content:'';height:1px;width:9px;background:#536963;transition:width .3s,background .3s}.rail a.active:after{width:25px;background:#d0ece3}.rail span{position:absolute;right:40px;font-size:12px;color:#b0c9c0;opacity:0}.rail a:hover span{opacity:1}#motion{position:fixed;bottom:24px;right:25px;z-index:25;font-size:12px;display:flex;align-items:center;gap:9px;padding:8px;background:#08100dc7;border-radius:3px;color:#a0b8b2}.motion-icon{font-size:15px}.progress{position:fixed;bottom:0;height:2px;width:100%;background:#142320;z-index:30}.progress i{display:block;height:100%;background:#94b8ad;width:0}.skip{position:fixed;left:12px;top:-100px;z-index:99;background:#fff;color:#000;padding:12px}.skip:focus{top:12px}[hidden]{display:none!important}@media(min-width:1500px){.scene{padding-left:10%;padding-right:11%}.hero-top,.hero-bottom,.section-marker{left:10%;right:11%}.scene-caption{left:10%}.chapter-copy{max-width:550px}}@media(max-width:800px){header{padding:23px 6%}.brand{font-size:23px}.brand span{display:none}header nav{display:none}#menu{display:flex;font-size:14px;gap:14px}#menu span{font-size:20px}#mobile-nav{position:fixed;z-index:19;inset:0;padding:120px 8% 70px;background:#080e10f5;display:flex;flex-direction:column;gap:26px;font-size:28px}.scene{padding:120px 7% 100px}.hero{justify-content:flex-end;min-height:100svh;padding-bottom:120px}.hero-top{top:115px;left:7%;right:7%}.hero-top .edition{display:none}.eyebrow{font-size:12px}.hero-copy{margin:0;max-width:100%}h1{font-size:clamp(48px,10vw,77px);line-height:1.09}.hero-copy p{font-size:15px;max-width:350px}.object-label{display:none}.hero-bottom{bottom:39px;font-size:12px;right:7%}.hero-bottom>span:first-child{display:none}.hero-bottom>span:last-child{font-size:12px}.rail{right:11px;gap:12px}.rail a{width:17px}.rail a.active:after{width:15px}.chapter{min-height:1150px;justify-content:flex-end;padding-bottom:120px}.section-marker{top:105px;right:7%;font-size:12px}.section-marker>span:last-child{display:none}.chapter-copy{width:100%;max-width:500px;margin:0!important}.chapter h2{font-size:clamp(46px,10.7vw,70px)}.chapter-copy>p{font-size:16px}.chapter-copy>.eyebrow{margin-bottom:18px}.detail{margin-top:26px}.scene-caption,.left .scene-caption{bottom:49px;left:7%;right:auto;text-align:left}.scene-caption p{display:none}.chapter .text-link{font-size:13px;gap:18px}.closing{min-height:1050px;padding-top:170px;justify-content:flex-start}.closing h2{font-size:clamp(50px,11.8vw,82px)}.closing>.eyebrow{font-size:12px}.closing>p{font-size:15px}.big-link{margin-bottom:110px;font-size:26px}.closing-bottom{flex-direction:column;gap:45px}.closing-bottom h3{font-size:21px}.footer-meta{text-align:left}.motion-label{display:none}#motion{right:9px;bottom:16px}.vignette{background:linear-gradient(0deg,#080e1060,transparent 65%)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.expertise-list b{font-weight:500;color:#dfede8} @media(max-width:800px){.hero-bottom>span:last-child{max-width:80%}.section-marker{max-width:82%;line-height:1.6}.chapter{min-height:1220px}.hero-top .eyebrow{font-size:12px}}

/* Make room for the portrait sculpture above the mobile introduction. */
@media(max-width:800px){.hero{min-height:max(100svh,980px)}}

/* Mint accent sampled from the original de-alwis.com theme: #4BFFA5.
   Selected headline lines and supporting phrases carry the brand; imagery remains neutral. */
.mint-word,h1 em.mint-word,h2 em.mint-word{color:var(--accent-soft)}
.mint-phrase{color:#9adbb9}
.text-link>span,.contact-link>span,.big-link>span{color:var(--accent)}
.text-link,.contact-link,.big-link{border-bottom-color:var(--accent-line)}
.text-link:hover,header nav>a:hover,.big-link:hover,.footer-meta a:hover,#mobile-nav a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible{outline-color:var(--accent)}
.rail a.active:after{background:var(--accent)}
.rail a:hover span{color:var(--accent-soft)}
.progress i{background:var(--accent);opacity:.72}
.object-label i{background:var(--accent);opacity:.5}
#motion:hover{color:var(--accent)}

/* Experience in practice: one scroll sequence, five connected roles. */
.practice{position:relative;background:linear-gradient(180deg,#080e1000,#080e10ed 12%,#080e10f7 88%,#080e1000);isolation:isolate}
.practice-sticky{padding:110px 7% 65px;display:flex;flex-direction:column;justify-content:center;gap:30px;min-height:100svh}
.practice.is-enhanced{height:380svh}
.practice.is-enhanced .practice-sticky{position:sticky;top:0}
.practice-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.practice-heading h2{font-size:clamp(28px,3.1vw,48px);letter-spacing:-.055em;margin:12px 0 0;line-height:1.15}
.practice-heading h2 em{color:var(--accent-soft)}
.practice-heading>p{font-size:14px;line-height:1.7;margin:0;flex-shrink:0;color:#839c96}
.practice-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;perspective:1400px;padding:12px 0;position:relative}
.practice-card{position:relative;padding:0;aspect-ratio:1;width:100%;border:1px solid #78998b35;background:#0b1314;text-align:left;overflow:hidden;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.22,.8,.2,1),border-color .5s,opacity .5s,box-shadow .6s;transform:translateY(8px) rotateY(var(--yaw,0deg)) scale(.965);opacity:.58;box-shadow:0 10px 35px #0002;border-radius:2px}
.practice-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#080e1022,transparent 30%,#080e1044 50%,#080e10f5 100%);pointer-events:none}
.practice-card img{width:100%;height:100%;object-fit:cover;display:block;opacity:.8;transition:opacity .55s,transform 1s cubic-bezier(.2,.7,.2,1);transform:scale(1.025)}
.practice-card.is-active{opacity:1;border-color:#4bffa5a3;transform:translateY(-6px) rotateY(0deg) scale(1);box-shadow:0 16px 40px #0005,0 0 24px #4bffa508}
.practice-card.is-active img{opacity:1;transform:scale(1.065)}
.practice-card:hover{opacity:.95;border-color:#4bffa580}
.role-number{position:absolute;left:16px;top:14px;z-index:2;font-size:12px;letter-spacing:.1em;color:#9eb4ad}
.is-active .role-number{color:var(--accent)}
.role-title{position:absolute;left:16px;right:13px;bottom:19px;z-index:2;font-family:Manrope,sans-serif;font-size:clamp(15px,1.4vw,22px);font-weight:400;line-height:1.26;letter-spacing:-.035em;color:#c4d2ce}
.is-active .role-title{color:#eff8f3}
.role-corner{position:absolute;right:14px;top:10px;z-index:2;color:var(--accent);font-size:20px;opacity:0;transform:translate(-4px,4px);transition:opacity .4s,transform .5s}
.is-active .role-corner{opacity:1;transform:translate(0,0)}
.practice-detail{border-top:1px solid #ffffff20;padding-top:23px;min-height:132px}
.practice-panel{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;animation:practice-copy-in .45s ease both}
.practice-panel h3{font-size:23px;margin:9px 0;color:#e1eee7;letter-spacing:-.03em}
.practice-panel p{font-size:16px;line-height:1.7;margin:0 0 10px;max-width:660px}
.practice-tags{font-size:12px;letter-spacing:.02em;color:#8fbea5}
.practice-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#839c95}
.practice-hint{letter-spacing:.13em;font-size:12px}.practice-hint>span{color:var(--accent);margin-left:14px}
.practice-controls{display:flex;align-items:center;gap:22px}
.practice-controls button{border:1px solid #6e95863d;border-radius:50%;width:38px;height:38px;font-size:19px;color:#b6d4c6;transition:border-color .2s,color .2s}
.practice-controls button:hover:enabled{border-color:var(--accent);color:var(--accent)}
.practice-controls button:disabled{opacity:.25;cursor:default}
.practice-count{font-size:12px;letter-spacing:.07em;min-width:50px;text-align:center}.practice-count b{font-weight:400;color:var(--accent-soft)}
.practice-continue{font-size:13px;border-bottom:1px solid #789c884d;padding-bottom:6px}.practice-continue>span{color:var(--accent);margin-left:14px}
.practice-meter{display:flex;gap:8px;height:2px;margin-top:-9px}.practice-meter i{display:block;flex:1;background:#4bffa520;transition:background .35s}.practice-meter i.is-current{background:#4bffa5b3}.practice-meter i.is-past{background:#4bffa555}
.practice.is-reduced{height:auto}.practice.is-reduced .practice-sticky{position:relative}.practice.is-reduced *{animation:none!important;transition:none!important}
@keyframes practice-copy-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.practice-sticky{padding-left:10%;padding-right:11%}}
@media(max-width:1050px) and (min-width:801px){.practice-sticky{padding-left:5%;padding-right:5%;gap:24px}.practice-track{gap:10px}.role-title{left:12px;font-size:16px}.practice-heading>p{display:none}}
@media(max-width:800px){
 .practice.is-enhanced{height:350svh}
 .practice-sticky{padding:100px 7% 60px;gap:22px;min-height:100svh}
 .practice-heading{display:block}.practice-heading h2{font-size:31px;max-width:370px;line-height:1.16;margin-top:10px}.practice-heading h2 em{display:block}.practice-heading>p{display:none}
 .practice-track{display:grid;grid-template-columns:1fr;gap:20px;padding:14px 0}
 .practice-card{width:min(78vw,38svh,330px);justify-self:center}
 .practice.is-enhanced .practice-track{display:block;position:relative;height:calc(min(78vw,38svh,330px) + 24px);overflow:hidden;perspective:1100px;margin:0 -8%;padding:0}
 .practice.is-enhanced .practice-card{position:absolute;top:10px;left:50%;margin-left:calc(min(78vw,38svh,330px) / -2);opacity:0;transform:translateX(calc(var(--offset,0) * 110%)) rotateY(calc(var(--offset,0) * -22deg)) scale(.91);pointer-events:none}
 .practice.is-enhanced .practice-card.is-active{opacity:1;transform:translateX(0) rotateY(0) scale(1);pointer-events:auto}
 .role-title{font-size:23px;bottom:22px;left:21px}.role-number{left:21px;top:18px}.role-corner{right:20px;top:15px}
 .practice-detail{padding-top:18px;min-height:186px}
 .practice-panel{grid-template-columns:1fr;gap:10px}.practice-panel .eyebrow{display:none}.practice-panel h3{font-size:21px;margin:0}.practice-panel p{font-size:15px;line-height:1.65;margin-bottom:10px}.practice-tags{font-size:12px;line-height:1.6}
 .practice-bottom{flex-wrap:wrap;gap:17px}.practice-hint{font-size:10px;letter-spacing:.08em}.practice-hint>span{margin-left:7px}.practice-controls{gap:12px}.practice-controls button{height:34px;width:34px}.practice-continue{width:100%;font-size:12px;text-align:right}.practice-meter{margin-top:-6px}
 .practice.is-reduced{height:auto}
}
@media(max-height:740px){.practice-sticky{padding-top:87px;padding-bottom:45px;gap:17px}.practice-heading h2{font-size:29px}.practice-detail{min-height:116px}}
@media(max-height:740px) and (max-width:800px){.practice-sticky{gap:14px}.practice-heading h2{font-size:26px}.practice-detail{min-height:171px;padding-top:12px}.practice-continue{display:none}.practice-panel p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.practice-panel{animation:none}.practice-card{transition:none}}
/* Keep the entire mobile stage visible while it is pinned. */
@media(max-width:800px){
 .practice-sticky{padding-top:94px;padding-bottom:42px;gap:18px}
 .practice-card{width:min(78vw,30svh,330px)}
 .practice.is-enhanced .practice-track{height:calc(min(78vw,30svh,330px) + 24px)}
 .practice.is-enhanced .practice-card{margin-left:calc(min(78vw,30svh,330px) / -2)}
 .practice-detail{min-height:164px}
 .practice-continue{display:none}
 .practice-hint{font-size:12px}
 .role-title{font-size:21px;bottom:17px;left:18px}
}
@media(max-height:740px) and (max-width:800px){
 .practice-sticky{padding-top:80px;padding-bottom:30px;gap:12px}
 .practice-card{width:min(78vw,28svh,300px)}
 .practice.is-enhanced .practice-track{height:calc(min(78vw,28svh,300px) + 24px)}
 .practice.is-enhanced .practice-card{margin-left:calc(min(78vw,28svh,300px) / -2)}
 .practice-detail{min-height:148px}
 .role-title{font-size:18px}
}

/* Professional experience: a quiet, three-row rolling index. */
.experience-carousel{margin:30px 0 8px;--experience-row:84px}
.experience-window{border-top:1px solid var(--line)}
.experience-carousel.is-enhanced .experience-window{height:calc(var(--experience-row) * 3);overflow:hidden}
.experience-track{list-style:none;padding:0;margin:0;will-change:transform}
.experience-row{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:var(--experience-row);padding:15px 0;border-bottom:1px solid var(--line)}
.experience-carousel.is-enhanced .experience-row{height:var(--experience-row)}
.experience-row b{font-size:15px;line-height:1.45;font-weight:500;color:#dfede8;letter-spacing:-.01em}
.experience-row>span{font-size:14px;line-height:1.5;color:#9eb3ab}
.experience-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:13px}
.experience-position{font-size:12px;letter-spacing:.05em;color:#7e9b90}
.experience-position b{color:var(--accent-soft);font-weight:400}
.experience-actions{display:flex;gap:10px;align-items:center}
.experience-actions button{height:34px;min-width:34px;padding:5px 8px;font-size:16px;color:#a7bfb3;border:1px solid #779c8933;border-radius:2px;transition:color .2s,border-color .2s}
.experience-actions button:hover:enabled{color:var(--accent);border-color:var(--accent-line)}
.experience-actions #experience-pause{font-size:12px;min-width:78px;border-color:transparent}
.experience-actions #experience-pause>span{color:var(--accent-soft);margin-left:7px}
.experience-actions button:disabled{opacity:.5;cursor:default}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;padding:0;border:0}
@media(max-width:800px){.experience-carousel{--experience-row:87px}.experience-position{font-size:12px;letter-spacing:0}.experience-actions{gap:5px}.experience-row b{font-size:15px}}
@media(prefers-reduced-motion:reduce){.experience-track{will-change:auto}}

/* Continuous roll: outgoing and incoming rows dissolve at the edges. */
.experience-carousel.is-enhanced .experience-window{
 height:calc(var(--experience-row) * 3.45);
 mask-image:linear-gradient(to bottom,transparent,black 10%,black 86%,transparent);
 -webkit-mask-image:linear-gradient(to bottom,transparent,black 10%,black 86%,transparent);
 border-top:0;
}
.experience-carousel.is-enhanced .experience-track{padding-top:0}

/* A conversation, assembled from the same pale node language. */
html { scrollbar-gutter: stable; }
#contact-dialog { position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; color:var(--white); overflow:hidden; }
#contact-dialog::backdrop { background:rgba(3,8,10,.24); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); animation:contact-dim .6s ease both; }
#contact-dialog.is-closing::backdrop { animation:contact-undim .52s ease both; }
#contact-nodes { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.contact-stage { position:relative; height:100%; padding:32px 20px; display:flex; align-items:safe center; justify-content:center; overflow:auto; box-sizing:border-box; overscroll-behavior:contain; }
.contact-card { position:relative; width:min(100%,580px); padding:44px; box-sizing:border-box; flex-shrink:0; background:linear-gradient(135deg,rgba(218,235,232,.15),rgba(23,36,39,.28) 42%,rgba(9,19,23,.44)); -webkit-backdrop-filter:blur(24px) saturate(125%); backdrop-filter:blur(24px) saturate(125%); border:1px solid #e3eeeb45; border-top-color:#f3fffa70; border-left-color:#e3eeeb55; border-radius:14px; box-shadow:0 32px 90px #0006,0 8px 24px #0003,inset 0 1px 0 #ffffff42,inset 1px 0 0 #ffffff14,inset 0 -1px 0 #0009; opacity:0; transform:translateY(18px) scale(.97); transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1); }
#contact-dialog.is-formed .contact-card { opacity:1; transform:none; }
#contact-dialog.is-closing .contact-card { opacity:0; transform:translateY(8px) scale(.98); transition-duration:.25s; }
.contact-card .eyebrow { color:var(--accent-soft); font-size:10px; letter-spacing:.19em; padding-right:30px; }
.contact-card h2 { font-family:Manrope,sans-serif; font-size:clamp(42px,5vw,62px); font-weight:300; letter-spacing:-.06em; line-height:1.15; margin:18px 0 14px; }
.contact-card h2 em { font-style:normal; color:var(--accent-soft); }
#contact-intro { color:#acb9b8; font-size:14px; line-height:1.7; margin:0 0 28px; }
.contact-close { position:absolute; top:19px; right:19px; width:38px; height:38px; border:1px solid #ffffff26; border-radius:50%; color:#dce8e4; font-size:25px; background:transparent; cursor:pointer; transition:background .2s,transform .3s; }
.contact-close:hover { background:#ffffff10; transform:rotate(90deg); }
#contact-form label { display:flex; flex-direction:column; gap:9px; margin-bottom:20px; color:#dce7e3; font-size:12px; line-height:1.4; }
#contact-form label span { color:#899b99; display:contents; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
#contact-form input,#contact-form textarea { width:100%; box-sizing:border-box; min-width:0; color:#edf5f3; border:1px solid #ffffff24; border-radius:3px; background:rgba(4,12,16,.23); box-shadow:inset 0 2px 5px #0005,0 1px 0 #ffffff16; padding:13px 14px; font:400 14px/1.5 'DM Sans',sans-serif; transition:border-color .2s,background .2s; }
#contact-form textarea { resize:vertical; min-height:100px; max-height:240px; }
#contact-form input::placeholder,#contact-form textarea::placeholder { color:#9aadab; }
#contact-form input:focus,#contact-form textarea:focus { outline:1px solid var(--accent-soft); outline-offset:2px; border-color:var(--accent-line); background:rgba(12,28,31,.38); }
.contact-send-row { display:flex; gap:22px; align-items:center; justify-content:space-between; }
#contact-status { color:#8eaaa4; font-size:11px; line-height:1.6; max-width:250px; margin:0; }
.contact-send { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:32px; padding:14px 20px; background:var(--accent-soft); color:#0c211a; border:0; border-radius:3px; font:500 14px 'DM Sans',sans-serif; cursor:pointer; transition:background .2s,transform .2s; }
.contact-send:hover { background:#a0e9c5; transform:translateY(-2px); }
.contact-card button:focus-visible { outline:2px solid var(--accent-soft); outline-offset:4px; }
@keyframes contact-dim { from { background:transparent; -webkit-backdrop-filter:blur(0); backdrop-filter:blur(0); } }
@keyframes contact-undim { to { background:transparent; -webkit-backdrop-filter:blur(0); backdrop-filter:blur(0); } }
@media(max-width:600px) { .contact-stage { padding:18px 12px; } .contact-card { padding:34px 24px 26px; } .contact-fields { grid-template-columns:1fr; gap:0; } #contact-form label { margin-bottom:15px; } #contact-form input,#contact-form textarea { font-size:16px; padding:10px 12px; } #contact-intro { margin-bottom:23px; } .contact-send-row { gap:15px; } }
@media(prefers-reduced-motion:reduce) { #contact-dialog::backdrop { animation:none; } }
#contact-dialog.motion-still::backdrop { animation:none; }
#contact-dialog.motion-still .contact-card { transition:none; }

/* Fine reflections and engraved lettering give the translucent pane its depth. */
.contact-card::before { content:""; position:absolute; inset:5px; border:1px solid #ffffff0d; border-top-color:#ffffff1c; border-radius:10px; pointer-events:none; }
.contact-card h2,.contact-card .eyebrow,#contact-form label { text-shadow:0 -1px 1px #000b,0 1px 0 #ffffff18; }
#contact-intro { color:#c3cecc; text-shadow:0 1px 2px #0008; }
.contact-close { background:linear-gradient(145deg,#ffffff12,#ffffff02); box-shadow:inset 0 1px #ffffff25,0 2px 7px #0003; }
.contact-send { background:linear-gradient(145deg,#a0e9c5e8,#72dea9d9); box-shadow:inset 0 1px #eafff299,inset 0 -1px #143a2555,0 4px 12px #0003; text-shadow:0 1px #ffffff30; }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .contact-card { background:rgba(16,29,32,.91); } }

/* Social signatures: quiet at the edge, revealed individually on interaction. */
.social-dock { position:fixed; z-index:24; right:23px; bottom:28px; display:flex; flex-direction:column; align-items:center; gap:1px; padding:0; }
.social-dock::before { content:""; width:1px; height:27px; margin-bottom:8px; background:linear-gradient(transparent,#a8c3b440); }
.social-button { position:relative; display:grid; place-items:center; width:34px; height:32px; padding:0; border:0; border-radius:50%; background:transparent; color:#81988f; cursor:pointer; isolation:isolate; transition:color .25s,transform .35s cubic-bezier(.2,.8,.2,1); }
.social-button svg { width:14px; height:14px; transition:transform .35s; }
.social-button::before { content:""; position:absolute; inset:0; z-index:-1; border:1px solid #d7ffe536; border-radius:50%; background:radial-gradient(circle at 30% 20%,#a2e5bd1c,#0b1915b8); box-shadow:inset 0 1px #ffffff16,0 0 17px #4bffa50d; opacity:0; transform:scale(.65); transition:opacity .3s,transform .4s; pointer-events:none; }
.social-button::after { content:""; position:absolute; left:-8px; width:3px; height:3px; border-radius:50%; background:var(--accent); opacity:0; box-shadow:0 0 7px #4bffa570; transition:opacity .3s; }
.social-tooltip { position:absolute; right:calc(100% + 17px); top:50%; transform:translate(6px,-50%); padding:5px 9px; border:1px solid #ffffff12; border-radius:5px; background:#091411eb; color:#d3e7dc; font:400 12px/1.4 'DM Sans',sans-serif; white-space:nowrap; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s,transform .3s,visibility .2s; }
.social-button:focus-visible { outline:1px solid var(--accent-soft); outline-offset:3px; color:var(--accent-soft); }
.social-button:focus-visible::before { opacity:1; transform:scale(1); }
.social-button:focus-visible .social-tooltip { opacity:1; visibility:visible; transform:translate(0,-50%); }
@media(hover:hover) and (pointer:fine) {
 .social-button:hover { color:var(--accent-soft); transform:translateX(-3px); }
 .social-button:hover svg { transform:scale(1.08); }
 .social-button:hover::before { opacity:1; transform:scale(1); }
 .social-button:hover::after { opacity:1; }
 .social-button:hover .social-tooltip { opacity:1; visibility:visible; transform:translate(0,-50%); }
}
.social-button:active { color:var(--accent); transform:scale(.94); }
#motion { right:auto; left:25px; bottom:max(26px,env(safe-area-inset-bottom)); }
.closing-bottom { padding-bottom:68px; }
/* Short screens get a fine baseline of icons, preserving room for the chapter rail. */
@media(max-width:800px),(max-height:700px) {
 .social-dock { flex-direction:row; right:12px; bottom:calc(8px + env(safe-area-inset-bottom)); gap:0; }
 .social-dock::before { width:20px; height:1px; margin:0 7px 0 0; background:linear-gradient(90deg,transparent,#a8c3b440); }
 .social-button { width:44px; height:44px; }
 .social-button svg { width:13px; height:13px; }
 .social-button::before { inset:7px; }
 .social-button::after { display:none; }
 .social-tooltip { right:0; top:auto; bottom:calc(100% + 5px); transform:translateY(5px); }
 .social-button:focus-visible .social-tooltip,.social-button:hover .social-tooltip { transform:translateY(0); }
 #motion { left:10px; right:auto; bottom:calc(18px + env(safe-area-inset-bottom)); }
 .closing-bottom { padding-bottom:75px; }
}
@media(prefers-reduced-motion:reduce) { .social-button:hover,.social-button:hover svg,.social-button:active { transform:none; } }

.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* A small piece of embossed glass above the connected world. */
.soon-trigger{font-family:inherit;background:transparent;border-top:0;border-left:0;border-right:0;cursor:pointer;text-align:left}
#coming-soon{padding:0;border:0;background:transparent;color:var(--ink,#eef4ef);width:min(510px,calc(100vw - 36px));max-height:calc(100svh - 40px);overflow:visible;outline:none}
#coming-soon::backdrop{background:#030b0b66;backdrop-filter:blur(5px);transition:opacity .35s;opacity:0}
#coming-soon.is-visible::backdrop{opacity:1}
.soon-glass{position:relative;overflow:hidden;text-align:center;padding:55px 32px 38px;border-radius:22px;border:1px solid #e4fff536;background:linear-gradient(135deg,#d9fff018,#d9fff004 42%,#07161277);backdrop-filter:blur(26px) saturate(120%);box-shadow:inset 0 1px 1px #ffffff55,inset 0 -1px 1px #0009,0 30px 100px #0007,0 0 0 1px #0004;opacity:0;transform:translateY(22px) scale(.95);transition:opacity .4s,transform .65s cubic-bezier(.16,1,.3,1)}
#coming-soon.is-visible .soon-glass{opacity:1;transform:translateY(0) scale(1)}
.soon-glass::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#ffffff0e 48%,transparent 65%);transform:translateX(-100%)}
#coming-soon.is-visible .soon-glass::before{animation:soon-sheen 1.4s .15s ease-out both}
.soon-close{position:absolute;right:16px;top:12px;width:40px;height:40px;border-radius:50%;background:#ffffff06;border:1px solid #ffffff16;color:#c4d7d0;font-size:25px;cursor:pointer}
.soon-close:hover{background:#ffffff13}.soon-close:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}
.soon-glass h2{font-size:clamp(40px,6vw,61px);letter-spacing:-.05em;margin:10px 0 20px;text-shadow:0 1px 0 #ffffff1c,0 -2px 2px #0008}
.soon-glass p{font-size:15px;line-height:1.8;color:#bed0c9;margin:0 0 30px;text-shadow:0 1px 1px #0008}
.soon-signature{font-size:8px;letter-spacing:.2em;color:#8ba69b}
.soon-orbit{position:relative;width:62px;height:62px;margin:28px auto 20px;border:1px solid #bcdfd336;border-radius:50%;transform:rotate(-25deg)}
.soon-orbit::before{content:"";position:absolute;inset:13px;border:1px solid #bcdfd326;border-radius:50%}
.soon-orbit i{position:absolute;width:5px;height:5px;border-radius:50%;background:#dce9e4;box-shadow:0 0 14px #dce9e444;left:27px;top:-3px}.soon-orbit i:nth-child(2){top:43px;left:2px}.soon-orbit i:nth-child(3){top:39px;left:45px}
@keyframes soon-sheen{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.soon-glass,#coming-soon::backdrop{transition:none}.soon-glass::before{animation:none!important}}
#coming-soon.is-still .soon-glass,#coming-soon.is-still::backdrop{transition:none}#coming-soon.is-still .soon-glass::before{animation:none}
