:root{--ink:#102125;--navy:#07171c;--night:#081b21;--midnight:#0c2228;--cream:#f5f1e9;--copper:#dca384;--line:rgba(242,228,212,.18);--off:#f6f4ef;--muted:#b6c1c0;--serif:Georgia,'Times New Roman',serif;--sans:'Inter','Helvetica Neue',Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.5 var(--sans);background:var(--night);color:#f6f3ee;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%}.skip-link{position:absolute;left:12px;top:-90px;background:#fff;color:#111;padding:12px;z-index:200}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--copper);outline-offset:4px}::selection{background:#dca384;color:#081b21}main section{scroll-margin-top:84px}
.site-header{height:78px;position:sticky;top:0;z-index:60;background:rgba(8,24,29,.96);border-bottom:1px solid rgba(224,230,223,.14);backdrop-filter:blur(20px)}.header-in{max-width:1600px;height:100%;margin:auto;padding:0 clamp(26px,5vw,92px);display:flex;align-items:center;justify-content:space-between;gap:24px}.identity{display:flex;align-items:center;gap:13px}.monogram{display:inline-flex;align-items:center;justify-content:center;position:relative;width:42px;height:44px;border:1px solid #d6d7d0a0;text-align:center;color:#f5f0e7;font-family:var(--serif);font-size:24px;flex-shrink:0}.monogram b{font-weight:400;transform:translateX(4px)}.monogram i{color:var(--copper);font-family:'Bodoni MT',Didot,Baskerville,Georgia,serif;font-size:30px;font-style:normal;font-weight:700;letter-spacing:-.075em;display:inline-block;transform:translate(-2px,3px) scaleX(.88)}.mini-dot{position:absolute;top:-3px;right:-3px;width:5px;height:5px;border-radius:50%;background:var(--copper)}.identity-name{font-size:16px;font-weight:800;letter-spacing:-.045em;line-height:1.02}.site-nav{display:flex;align-items:center;gap:32px}.site-nav a{font-size:12px;color:#c1c8c6;letter-spacing:.012em;font-weight:600;position:relative;white-space:nowrap;transition:color .25s}.site-nav a:hover,.site-nav a[aria-current]{color:#fff}.site-nav a[aria-current]:after{content:'';position:absolute;bottom:-13px;height:1px;background:var(--copper);left:0;right:0}.site-nav a:last-child{border:1px solid #bcac9368;padding:11px 15px;color:#fff}.site-nav a:last-child[aria-current]:after{display:none}.nav-arrow{margin-left:19px;color:var(--copper)}.menu-toggle{display:none;background:none;border:1px solid #8fa3a15c;color:#fff;width:42px;height:42px;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{display:block;width:17px;height:1px;background:#fff}
.hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 82% 38%,#23383a 0%,transparent 46%),linear-gradient(115deg,#07151b 0%,#0a1e24 78%,#091a1f 100%);overflow:hidden}.hero-lines{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(250,238,220,.025) 1px,transparent 1px),linear-gradient(0deg,rgba(250,238,220,.025) 1px,transparent 1px);background-size:160px 160px;mask-image:linear-gradient(90deg,transparent,#000 45%);pointer-events:none}.hero-grid{max-width:1600px;min-height:685px;margin:auto;display:grid;grid-template-columns:53% 47%;position:relative}.hero-content{padding:72px 20px 68px clamp(34px,7.4vw,132px);position:relative;z-index:7;align-self:center}.hero-overline{font-size:10px;letter-spacing:.19em;color:#c9b7a7;font-weight:700;white-space:nowrap}.hairline,.kicker span{display:inline-block;vertical-align:middle;background:var(--copper);width:27px;height:1px;margin-right:14px}.hero h1{font-size:clamp(61px,6.8vw,101px);font-weight:670;letter-spacing:-.075em;line-height:.97;margin:34px 0 26px;white-space:nowrap}.hero h1 em{font:italic 400 1em/.96 var(--serif);color:var(--copper);letter-spacing:-.065em}.hero-desc{font-size:clamp(15px,1.15vw,18px);line-height:1.74;color:#bfcaca;max-width:415px;margin:0}.hero-cta{display:flex;align-items:center;gap:22px;margin-top:32px}.button-main{display:flex;align-items:center;justify-content:space-between;min-width:220px;padding:16px 19px;background:#ead3bb;color:#152429;font-size:12px;font-weight:750;transition:background .25s,transform .25s}.button-main span{margin-left:25px;font-size:18px}.button-main:hover{transform:translateY(-3px);background:#ffead2}.button-text{display:flex;gap:25px;align-items:center;border-bottom:1px solid #d5ad9666;padding:12px 0;font-weight:650;font-size:12px}.button-text span{font-size:17px;color:var(--copper)}.hero-location{margin-top:36px;display:flex;gap:11px;align-items:center;color:#b7c0c0;font-size:10px;font-weight:700;letter-spacing:.16em}.location-icon{font-size:23px;color:var(--copper);line-height:1}.hero-persona{position:relative;overflow:hidden;align-self:stretch;min-height:685px;background:linear-gradient(124deg,#152b31 0%,#1f353a 55%,#11262d 100%);isolation:isolate;border-left:1px solid #b1ac9d24}.persona-ambient{position:absolute;width:95%;aspect-ratio:1;left:2%;top:12%;border-radius:50%;background:radial-gradient(circle,rgba(228,198,155,.12) 0%,rgba(197,207,186,.045) 28%,transparent 64%);filter:blur(9px)}.persona-initial{position:absolute;top:5%;left:11%;font-family:var(--serif);font-size:600px;line-height:1;color:#ece7da0a;z-index:0}.persona-grid{position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,#ead2bd25 15.15%,transparent 15.3%,transparent 77%,#ead2bd14 77.1%,transparent 77.2%)}.persona-frame{position:absolute;inset:52px 36px 53px 42px;border:1px solid #e2d2c333;transform:perspective(800px) rotateY(-6deg) rotateZ(-2deg);pointer-events:none}.hero-persona canvas{position:absolute;bottom:-106px;left:50%;transform:translateX(-47%);display:block;width:min(580px,110%);height:auto;aspect-ratio:1/2;z-index:2;filter:drop-shadow(0 25px 28px #0006)}.persona-watermark{position:absolute;top:47%;right:22px;writing-mode:vertical-rl;letter-spacing:.28em;font-size:9px;color:#b6c7c1a4;z-index:4}.persona-caption{position:absolute;z-index:5;left:28px;bottom:35px;display:flex;flex-direction:column;gap:6px;pointer-events:none;text-shadow:0 1px 8px #04151d}.persona-caption-tiny{letter-spacing:.28em;font-size:9px;color:#ded0bd}.persona-caption strong{font:400 34px/1.08 var(--serif)}.persona-caption strong i{color:#f0b898}.persona-caption-foot{font-size:8px;letter-spacing:.14em;color:#ddd8ca}.hero-bottom{max-width:1600px;margin:0 auto;padding:20px clamp(34px,7.4vw,132px);border-top:1px solid #decbb02e;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:#bfc5c1;font-weight:650}.hero-bottom span{display:flex;align-items:center;gap:12px}.hero-bottom i{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--copper)}.hero-bottom a{color:#e8c5a5}.hero-bottom a span{display:inline;margin-left:9px;font-size:15px}
.section-wrap{max-width:1480px;margin:auto;padding-left:clamp(25px,5.5vw,87px);padding-right:clamp(25px,5.5vw,87px)}.practice{background:var(--off);color:var(--ink);padding:83px 0 100px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:54px;margin-bottom:40px}.kicker{font-size:10px;font-weight:750;letter-spacing:.17em;color:#986753;margin:0 0 19px}.kicker span{background:#b88065}.section-head h2{font-size:clamp(43px,4.25vw,69px);letter-spacing:-.07em;line-height:1.03;font-weight:700;margin:0}.section-head h2 em{font:italic 400 1em/1 var(--serif);color:#ac715e;letter-spacing:-.045em}.head-explainer{max-width:425px;color:#617173;font-size:15px;line-height:1.7;margin:0 0 5px}.practice-grid{display:grid;grid-template-columns:1.23fr 1fr 1fr;gap:15px}.practice-grid article{min-height:349px;position:relative;overflow:hidden;padding:30px 29px;transition:transform .28s,box-shadow .28s}.practice-grid article:hover{transform:translateY(-5px);box-shadow:0 22px 40px #00000014}.practice-feature{background:linear-gradient(146deg,#0e2b31,#071b22);color:#edf0eb;border:1px solid #273f42}.practice-feature:before{content:'';position:absolute;right:-130px;top:40px;width:310px;height:310px;border-radius:50%;border:1px solid #d4b59626;box-shadow:0 0 0 43px #d3b89508,0 0 0 100px #d3b89506;pointer-events:none}.practice-sub{background:#e9e5dd;border:1px solid #d9d5ce}.practice-product{background:#e1e4dc}.card-symbol{position:absolute;right:27px;top:22px;font-size:29px;color:#b58063;font-weight:300}.mini-label{font-size:10px;font-weight:750;letter-spacing:.19em;color:#cba58e;margin:0 0 45px}.practice-sub .mini-label{color:#967e6b}.practice-grid h3{font-size:clamp(27px,2.3vw,39px);letter-spacing:-.065em;line-height:1.12;margin:0 0 12px}.sub-line{font-size:13px;color:#b8c7c2;margin:0;max-width:360px}.feature-separator{height:1px;background:#d2c4b047;margin:23px 0 18px}.practice-feature h4{color:#eab28d;font:italic 24px var(--serif);margin:0 0 12px}.feature-desc{font-size:13px;line-height:1.65;max-width:345px;color:#c3d0cc;margin:0}.feature-focus{position:relative;font-size:10px;color:#bcd1cc;letter-spacing:.02em;line-height:1.8;margin-top:26px}.feature-focus span{color:#eab28d;margin:0 4px}.practice-sub h3{margin-top:67px}.practice-sub>p:not(.mini-label){font-size:14px;color:#576666;line-height:1.64;max-width:305px;margin:0}.practice-sub-foot{position:absolute;bottom:28px;left:29px;right:29px;border-top:1px solid #a4aba4a0;padding-top:17px;display:flex;justify-content:space-between;font-size:9px;font-weight:750;letter-spacing:.12em;color:#61716f}.practice-sub-foot span{font-size:17px;color:#b26f59}
.projects{background:radial-gradient(ellipse at 15% 45%,#12353a 0%,transparent 49%),#081d23;padding:84px 0 95px;color:#f2f2ed}.section-head-dark .kicker{color:#dfa387}.section-head-dark h2 em{color:#e3b197}.section-head-dark .head-explainer{color:#a4b6b4}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.project-card{background:#11282e;border:1px solid #ffffff26;transition:transform .3s,border-color .3s}.project-card:hover{transform:translateY(-5px);border-color:#e2c0a15c}.project-art{height:330px;position:relative;overflow:hidden;border-bottom:1px solid #ffffff23}.teroliq-art{background:radial-gradient(circle at 51% 59%,#284c4b,#123b3d 46%,#0a292f)}.hana-art{background:linear-gradient(143deg,#e5eae1,#cfd8cf);color:#244944}.project-art-head{position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:850;letter-spacing:.18em}.hana-art .project-art-head{letter-spacing:.09em;text-transform:lowercase}.project-spark{font-size:25px;color:#addbd0}.hana-art .project-spark{color:#8bada6}.project-art-foot{position:absolute;bottom:19px;left:28px;font-size:10px;letter-spacing:.2em;font-weight:750;color:#b5d8d2}.hana-art .project-art-foot{color:#45716a}.orbit-composition{position:absolute;width:270px;height:270px;left:50%;top:54%;transform:translate(-50%,-50%)}.orbit{position:absolute;inset:0;border:1px solid #b6d8c67b;border-radius:50%;transform:rotate(-18deg) scaleY(.78)}.orbit-mid{inset:28px;border-color:#cde4d980;transform:rotate(18deg) scaleY(.9)}.orbit-inner{inset:60px;border-color:#fff8df6e;transform:rotate(-24deg) scaleY(.83)}.orbit-composition b{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;font-size:119px;font-weight:650;line-height:1;letter-spacing:-.12em;padding-right:15px;text-shadow:0 7px 16px #0006}.orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#c8f7de;box-shadow:0 0 16px #b4f6d9}.dot1{left:25px;top:37px}.dot2{right:22px;top:145px}.dot3{bottom:14px;left:85px}.hana-composition .orbit{border-color:#69958b50}.hana-composition .orbit-inner{background:#b8cbc136}.hana-core{width:82px;height:82px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;background:#22574f;display:flex;align-items:center;justify-content:center;gap:4px;box-shadow:0 0 0 14px #356e5d16,0 0 0 30px #356e5d15}.hana-core i{display:block;width:3px;border-radius:5px;height:17px;background:#f3faf3;animation:pulse 1.85s ease-in-out infinite alternate}.hana-core i:nth-child(2n){height:36px;animation-delay:.3s}.hana-core i:nth-child(3n){height:26px;animation-delay:.6s}.hana-core i:nth-child(5n){height:43px;animation-delay:.9s}@keyframes pulse{to{transform:scaleY(.55)}}.project-copy{padding:24px 28px 30px}.project-type{font-size:9px;letter-spacing:.14em;color:#adada7;font-weight:750}.project-copy h3{font-size:38px;letter-spacing:-.06em;line-height:1;margin:12px 0}.project-copy>p:last-child{font-size:14px;line-height:1.65;color:#b4c2c0;max-width:440px;margin:0}
.context{background:#f1eee7;color:#112529;padding:80px 0 92px}.context-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:13px}.context-grid article{border:1px solid #cdd0c9;min-height:205px;padding:25px 23px;display:flex;flex-direction:column}.context-grid article:first-child{background:#10292f;color:#f9f6ef;border-color:#10292f}.context-over{font-size:9px;letter-spacing:.14em;font-weight:800;color:#ad735d;margin:0 0 28px}.context-grid article:first-child .context-over{color:#e3b18d}.context-grid h3{font-size:23px;letter-spacing:-.055em;margin:0 0 10px;line-height:1.2}.context-grid article p:not(.context-over){font-size:13px;line-height:1.64;color:#617171;margin:0}.context-grid article:first-child p:not(.context-over){color:#b4c6c3}.context-grid article>span{font-size:9px;font-weight:700;letter-spacing:.16em;color:#d0a48a;margin-top:auto;padding-top:16px}
.contact{background:linear-gradient(126deg,#09212a 0%,#153037 57%,#071b23);position:relative;isolation:isolate;overflow:hidden;padding:80px 0}.contact-aura{position:absolute;right:5%;top:-140px;width:620px;height:620px;border:1px solid #bc958b1c;border-radius:50%;box-shadow:0 0 0 65px #ccb28b08,0 0 0 155px #ccb28b06}.contact-layout{display:flex;align-items:center;justify-content:space-between}.contact .kicker{color:#e2a68b}.contact h2{font-size:clamp(58px,6vw,91px);font-weight:650;letter-spacing:-.08em;line-height:1;margin:0}.contact h2 em{font:italic 400 1em var(--serif);color:#e3ab92;letter-spacing:-.06em}.contact-layout>div:first-child>p:not(.kicker){color:#b2c0bf;max-width:420px;font-size:16px;line-height:1.65;margin:20px 0 28px}.contact-button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:#e7cab0;color:#13272b;font-size:13px;font-weight:750;padding:17px 21px}.contact-button span{font-size:18px}.contact-signet{font:italic 320px/.8 var(--serif);color:#dabf9e20;letter-spacing:-.3em;padding-right:90px}footer{background:#07161b;color:#cbd1cc;border-top:1px solid #ffffff20;display:flex;justify-content:space-between;align-items:center;padding:25px clamp(25px,5.5vw,87px);gap:22px}footer span{font:23px var(--serif);color:#efbf9c}footer p{font-size:9px;letter-spacing:.19em}footer a{font-size:10px;font-weight:700;letter-spacing:.08em}.sprite{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
@media(max-width:1100px){.site-nav{gap:19px}.hero-content{padding-left:50px}.hero h1{font-size:clamp(52px,6.5vw,82px)}.hero-persona canvas{width:116%;left:51%;bottom:-80px}.persona-caption{left:20px}.practice-grid{grid-template-columns:1.15fr 1fr 1fr}.practice-grid article{padding:22px}.feature-focus{display:none}.context-grid{grid-template-columns:1.25fr 1fr;gap:13px}.section-head h2{font-size:clamp(40px,4.4vw,62px)}}
@media(max-width:760px){.site-header{height:66px}.header-in{padding:0 20px}.identity-name{font-size:15px}.monogram{height:39px;width:39px;font-size:22px;line-height:36px}.menu-toggle{display:flex}.site-nav{display:none;position:absolute;top:65px;left:0;right:0;background:#0c2127;border-bottom:1px solid #fff2;padding:19px 25px 25px;gap:0;flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.site-nav a{font-size:15px;padding:13px 0;border-bottom:1px solid #ffffff16}.site-nav a[aria-current]:after{display:none}.site-nav a:last-child{margin-top:15px;text-align:center}.hero-grid{display:flex;flex-direction:column;min-height:unset}.hero-content{padding:52px 26px 47px;max-width:100%}.hero-overline{font-size:8px;letter-spacing:.14em}.hairline{width:19px;margin-right:8px}.hero h1{font-size:clamp(50px,10.8vw,78px);margin:35px 0 21px}.hero-desc{font-size:15px;max-width:500px}.hero-cta{margin-top:28px;gap:16px}.button-main{min-width:0;padding:14px;font-size:11px}.button-text{font-size:11px;gap:13px}.hero-location{margin-top:28px}.hero-persona{min-height:570px}.hero-persona canvas{width:460px;max-width:120%;left:54%;bottom:-79px}.persona-frame{inset:35px 45px 45px}.persona-initial{font-size:400px}.persona-caption{left:22px;bottom:24px}.persona-caption strong{font-size:27px}.persona-watermark{right:20px;font-size:8px}.hero-bottom{padding:18px 26px;gap:12px;font-size:8px}.hero-bottom span{gap:6px}.hero-bottom a{white-space:nowrap}.section-wrap{padding-left:24px;padding-right:24px}.section-head{display:block;margin-bottom:28px}.section-head h2{font-size:clamp(39px,9vw,57px)}.head-explainer{margin:22px 0 0;max-width:560px;font-size:14px}.practice,.projects,.context{padding:59px 0 63px}.practice-grid{grid-template-columns:1fr 1fr}.practice-feature{grid-column:1/-1;min-height:315px!important}.practice-grid article{min-height:270px;padding:23px}.practice-sub h3{font-size:27px;margin-top:49px}.practice-sub>p:not(.mini-label){font-size:13px}.practice-sub-foot{left:23px;right:23px;bottom:18px;font-size:8px}.project-art{height:260px}.orbit-composition{transform:translate(-50%,-50%) scale(.84)}.project-copy{padding:23px}.context-grid{grid-template-columns:1fr 1fr}.context-grid article{min-height:205px;padding:22px}.context-grid h3{font-size:23px}.contact{padding:75px 0}.contact h2{font-size:clamp(50px,10vw,74px)}.contact-signet{display:none}footer{padding:24px;flex-wrap:wrap}footer p{order:3;flex-basis:100%;font-size:9px}}
@media(max-width:510px){.hero-content{padding:42px 24px 38px}.hero h1{font-size:clamp(48px,12vw,64px)}.hero-overline{font-size:7px}.hero-desc{max-width:330px}.hero-persona{min-height:470px}.hero-persona canvas{width:360px;left:54%;bottom:-75px}.persona-caption strong{font-size:25px}.persona-caption-foot{font-size:7px}.hero-bottom{display:none}.practice-grid{grid-template-columns:1fr}.practice-feature{grid-column:auto;min-height:335px!important}.practice-sub{min-height:235px!important}.practice-sub h3{margin-top:28px}.project-grid{grid-template-columns:1fr}.project-art{height:300px}.project-copy h3{font-size:32px}.context-grid{grid-template-columns:1fr 1fr;gap:10px}.context-grid article{padding:18px;min-height:195px}.context-grid article:first-child{grid-column:1/-1;min-height:175px}.context-grid h3{font-size:20px}.context-grid p:not(.context-over){font-size:12px}.context-over{font-size:8px;margin-bottom:19px}.contact-layout p{font-size:14px!important}.hero-persona .persona-frame{inset:29px 22px 28px}.persona-caption{bottom:17px;left:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hana-core i{animation:none}*{transition-duration:.001s!important}}

/* Keep original animation sequence; refine preview character framing only. */
@media(min-width:1101px){.hero-persona canvas{width:365px;max-width:84%;bottom:-65px;transform:translateX(-48%)}}
@media(min-width:761px) and (max-width:1100px){.hero-persona canvas{width:340px;max-width:84%;bottom:-25px;transform:translateX(-49%)}}
@media(max-width:760px){.hero-persona{min-height:575px}.hero-persona canvas{width:305px;max-width:83%;bottom:-36px;left:50%;transform:translateX(-50%)}}
@media(max-width:510px){.hero-persona{min-height:555px}.hero-persona canvas{width:290px;max-width:84%;bottom:-28px;left:53%}}

/* Direct contact options and predictable section navigation. */
html{scroll-padding-top:88px}.contact-direct{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}.contact-direct a{display:inline-flex;align-items:center;gap:9px;color:#f0ded0;font-size:14px;line-height:1.4;text-decoration:underline;text-decoration-color:rgba(240,222,208,.4);text-underline-offset:5px;overflow-wrap:anywhere}.contact-direct a:hover,.contact-direct a:focus-visible{color:#fff;text-decoration-color:#fff}.contact-direct a span{color:var(--copper)}@media(max-width:760px){html{scroll-padding-top:76px}.contact-direct{flex-direction:column;gap:13px}.monogram i{font-size:27px}}

/* Precision alignment / contact panel / portrait replay. */
.hero-overline{white-space:normal;max-width:100%;line-height:1.7}
.hero-content,.section-head>div,.section-head .head-explainer,.practice-grid article,.context-grid article{min-width:0}
.hero h1{max-width:100%}
.section-head h2{overflow-wrap:normal;text-wrap:balance}
.practice-grid h3,.context-grid h3{overflow-wrap:break-word}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(26px,5vw,100px)}
.contact-intro{min-width:0}
.contact-intro>p:not(.kicker){max-width:430px;color:#b2c0bf;font-size:16px;line-height:1.7;margin:20px 0 0}
.connect-card{position:relative;width:100%;max-width:520px;justify-self:end;min-width:0;padding:clamp(26px,3.4vw,44px);border:1px solid rgba(229,202,180,.34);background:linear-gradient(150deg,rgba(8,28,34,.88),rgba(21,48,54,.8));box-shadow:0 22px 60px rgba(0,0,0,.14)}
.connect-card-label{font-size:10px;letter-spacing:.21em;font-weight:750;color:var(--copper);margin:0 0 21px}
.connect-card h3{font:400 clamp(29px,3vw,42px)/1.1 var(--serif);letter-spacing:-.035em;margin:0;color:#f6f3ee}
.connect-card-description{font-size:13px;color:#b9c7c4;margin:9px 0 25px}
.connect-card .contact-button{display:flex;width:100%;font-size:14px;min-height:52px;gap:12px}
.connect-details{margin-top:24px;display:flex;flex-direction:column}
.connect-details a{display:grid;grid-template-columns:64px minmax(0,1fr) 14px;align-items:center;gap:12px;min-height:55px;padding:13px 0;border-top:1px solid rgba(230,230,220,.16);transition:color .2s}
.connect-details a:hover{color:#f0bb94}
.connect-method{font-size:11px;letter-spacing:.035em;color:#abbfbc}
.connect-value{font-size:14px;overflow-wrap:anywhere;min-width:0}
.connect-icon{color:var(--copper);font-size:17px;text-align:right}
.replay-gesture{position:absolute;right:31px;bottom:23px;z-index:8;display:grid;place-items:center;width:35px;height:35px;padding:0;color:#ede1d5;background:rgba(5,25,31,.64);border:1px solid rgba(236,215,188,.38);border-radius:50%;backdrop-filter:blur(6px);cursor:pointer;transition:background .2s}
.replay-gesture:hover,.replay-gesture:focus-visible{background:#274148}
.replay-gesture span{font:22px/1 var(--sans)}
@media(max-width:1100px){.contact-layout{gap:24px}.connect-card{padding:25px}}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;gap:32px}.connect-card{justify-self:stretch;max-width:none}.contact-intro>p:not(.kicker){font-size:15px}}
@media(max-width:510px){.hero-content{padding-left:clamp(18px,6vw,26px);padding-right:clamp(18px,6vw,26px)}.hero h1{font-size:clamp(45px,11.8vw,61px);white-space:normal}.hero-overline{font-size:8px;letter-spacing:.115em}.section-head h2{font-size:clamp(37px,9vw,49px)}.connect-card{padding:23px 19px}.connect-details a{grid-template-columns:50px minmax(0,1fr) 12px;gap:8px}.connect-value{font-size:13px}.replay-gesture{right:18px;bottom:18px}}
@media(max-width:350px){.context-grid{grid-template-columns:1fr}.context-grid article:first-child{grid-column:auto}.context-grid article{min-height:150px}.hero h1{font-size:44px}.identity-name{font-size:13px}}

/* Portfolio production: keep all card copy in natural document flow. */
.practice-grid .practice-sub {
  display:flex;
  flex-direction:column;
  height:auto;
  min-height:360px;
  padding-bottom:30px;
}
.practice-sub .mini-label {
  margin:0 42px 26px 0;
  line-height:1.6;
}
.practice-sub h3 {
  margin:0 0 17px;
  line-height:1.16;
  letter-spacing:-.052em;
  text-wrap:balance;
}
.practice-sub > p:not(.mini-label) {
  font-size:clamp(13px, 1.04vw, 15px);
  line-height:1.68;
  margin:0 0 26px;
  max-width:none;
}
.practice-sub .practice-sub-foot {
  position:static;
  margin-top:auto;
  padding:16px 0 0;
  width:auto;
  border-top:1px solid rgba(77,100,100,.33);
  line-height:1.55;
  overflow-wrap:normal;
  font-size:10px;
  letter-spacing:.12em;
}
.practice-sub .card-symbol {
  font-family:Georgia,'Times New Roman',serif;
  font-size:24px;
  line-height:1;
}
@media(max-width:1100px){
 .practice-grid .practice-sub{min-height:330px;padding:24px}
 .practice-sub .practice-sub-foot{font-size:9px}
}
@media(max-width:760px){
 .practice-grid .practice-sub{min-height:0!important;padding:27px 26px 24px}
 .practice-sub .mini-label{margin-bottom:30px}
 .practice-sub h3{font-size:clamp(25px,6.3vw,33px);margin-bottom:18px}
 .practice-sub > p:not(.mini-label){font-size:14px;line-height:1.65;margin-bottom:26px}
 .practice-sub .practice-sub-foot{margin-top:8px;font-size:9px;letter-spacing:.09em}
}
@media(max-width:420px){
 .practice-sub .mini-label{max-width:calc(100% - 35px);font-size:9px;letter-spacing:.13em}
}

/* Approved TEROLIQ + Hana identity motion — 14 October 2026.
   Orbit satellites belong to the SAME transformed ring: they never leave the visible track.
   Preserve original artwork, colour palette, typography and portrait animation. */
@keyframes portfolioOrbitOuter {
  from { transform: rotate(-18deg) scaleY(.78); }
  to   { transform: rotate(342deg) scaleY(.78); }
}
@keyframes portfolioOrbitMid {
  from { transform: rotate(18deg) scaleY(.9); }
  to   { transform: rotate(-342deg) scaleY(.9); }
}
@keyframes portfolioOrbitInner {
  from { transform: rotate(-24deg) scaleY(.83); }
  to   { transform: rotate(336deg) scaleY(.83); }
}
@keyframes portfolioHalo {
  0%,100% { transform: scale(1); opacity: .58; }
  50%     { transform: scale(1.09); opacity: .33; }
}
@keyframes portfolioHanaPulse {
  0%,100% { transform: scaleY(.88); opacity: .88; }
  50%     { transform: scaleY(1.08); opacity: 1; }
}
/* The existing free-floating dots are replaced by satellites attached to each ring. */
.teroliq-art .orbit-dot { display: none; }
.teroliq-art .orbit-outer,
.hana-art .orbit-outer { animation: portfolioOrbitOuter 27s linear infinite; }
.teroliq-art .orbit-mid,
.hana-art .orbit-mid { animation: portfolioOrbitMid 23s linear infinite; }
.teroliq-art .orbit-inner,
.hana-art .orbit-inner { animation: portfolioOrbitInner 19s linear infinite; }
.teroliq-art .orbit::after,
.hana-art .orbit::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -4.5px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c8f7de;
  border: 1px solid #f0fff4;
  box-sizing: border-box;
  box-shadow: 0 0 6px 1px #c8f7de88, 0 0 16px 2px #adedd061;
  transform: translateX(-50%);
  pointer-events: none;
}
/* A restrained tangent light trail also follows its parent ring, never a separate orbit. */
.teroliq-art .orbit::before,
.hana-art .orbit::before {
  content: "";
  position: absolute;
  left: calc(50% - 25px);
  top: -1px;
  width: 23px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #b4f7d36e);
  border-radius: 3px;
  pointer-events: none;
}
.hana-art .orbit::after {
  background: #6aa797;
  border-color: #b4dbca;
  box-shadow: 0 0 6px #6aa79788, 0 0 13px #6aa79766;
}
.hana-art .orbit::before {
  background: linear-gradient(90deg, transparent, #78ac9c67);
}
.hana-art .hana-composition::before {
  content: "";
  position: absolute;
  inset: 26%;
  border-radius: 50%;
  background: #65938114;
  pointer-events: none;
  animation: portfolioHalo 5.8s ease-in-out infinite;
}
.hana-art .hana-core i {
  animation-name: portfolioHanaPulse;
  animation-duration: 3.2s;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}
@media (prefers-reduced-motion: reduce) {
  .teroliq-art .orbit,
  .hana-art .orbit,
  .hana-art .hana-composition::before,
  .hana-art .hana-core i { animation: none !important; }
}


/* Credibility-led founder portfolio additions — retain the original design and motion. */
.hero-cta{flex-wrap:wrap}
.hero-cta .button-text{color:#eddac9;min-height:46px}
.project-card{display:flex;flex-direction:column}
.project-copy{display:flex;flex:1;flex-direction:column}
.project-copy>p:not(.project-type){font-size:14px;line-height:1.7;color:#b4c2c0;max-width:470px;margin:0 0 22px}
.project-link{align-self:flex-start;margin-top:auto;display:inline-flex;gap:27px;align-items:center;color:#f2d0b4;font-size:12px;font-weight:750;border-bottom:1px solid rgba(242,208,180,.5);padding:10px 0;letter-spacing:.025em}
.project-link:hover,.project-link:focus-visible{color:#fff;border-bottom-color:#fff}
.project-link span{font-size:17px}
.portfolio-note{display:flex;align-items:center;gap:19px;border-top:1px solid #d4e2d02c;margin-top:37px;padding:25px 3px 0;color:#a7beba}
.portfolio-note-mark{font:italic 37px var(--serif);color:#d8ad93}
.portfolio-note p{font-size:13px;line-height:1.65;margin:0;max-width:820px}
.portfolio-note strong{color:#f2d4c1}
.commercial-perspective{border-top:1px solid #b4bdb5;margin-top:44px;padding-top:29px}
.perspective-heading{display:flex;align-items:start;justify-content:space-between;gap:35px;margin-bottom:20px}
.perspective-heading span{font-size:10px;letter-spacing:.16em;font-weight:800;color:#966c59}
.perspective-heading p{max-width:520px;font-size:13px;line-height:1.7;color:#526769;margin:0}
.perspective-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.perspective-grid article{background:#f6f3ec;border:1px solid #d3d8d1;padding:26px;min-height:192px}
.perspective-index{font-size:10px;letter-spacing:.12em;color:#a0705c;font-weight:750}
.perspective-grid h3{font-size:22px;letter-spacing:-.045em;line-height:1.2;margin:23px 0 10px}
.perspective-grid p{font-size:13px;line-height:1.7;color:#5b6c69;margin:0}
@media(max-width:760px){.hero-cta .button-text{font-size:11px}.perspective-heading{display:block}.perspective-heading p{margin-top:13px}.perspective-grid{grid-template-columns:1fr;gap:10px}.perspective-grid article{min-height:unset;padding:23px}.perspective-grid h3{margin-top:15px}.portfolio-note{align-items:start}}
/* Public project overview pages: deliberately no private dashboards or implementation details. */
.case-page{background:#081d23;color:#f6f3ee;min-height:100vh}
.case-page .site-header{position:relative}
.case-nav{display:flex;align-items:center;gap:25px;font-size:12px;color:#ccd8d2}
.case-nav a{transition:color .2s}
.case-nav a:hover,.case-nav a:focus-visible{color:#f0c4a6}
.case-nav a:last-child{border:1px solid #ddbca068;padding:10px 14px}
.case-hero{position:relative;overflow:hidden;min-height:420px;padding:105px 0 90px;background:radial-gradient(ellipse at 82% 30%,#23544a48,transparent 55%),linear-gradient(125deg,#081920,#17383e)}
.case-hero.hana-theme{background:radial-gradient(ellipse at 80% 32%,#4b857141,transparent 50%),linear-gradient(130deg,#102c34,#07181e)}
.case-overline{font-size:11px;letter-spacing:.18em;color:#dba78b;font-weight:750}
.case-hero h1{font-size:clamp(61px,8vw,108px);line-height:1;letter-spacing:-.075em;margin:25px 0 22px}
.case-hero h1 em{font:italic 400 1em var(--serif);color:#e5b294}
.case-lead{font-size:clamp(17px,1.7vw,21px);max-width:740px;line-height:1.68;color:#c3d7d2;margin:0}
.case-status{display:inline-flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.11em;color:#c6d5d0;margin-top:36px;border:1px solid #6c898366;padding:10px 15px}
.case-status i{height:6px;width:6px;background:#e1ad8b;border-radius:50%}
.case-main{background:#f3f0e9;color:#14292c;padding:80px 0}
.case-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:55px;padding-bottom:55px;border-bottom:1px solid #c4d0ca}
.case-kicker{font-size:11px;font-weight:800;letter-spacing:.17em;color:#9e725c;text-transform:uppercase;margin:0 0 14px}
.case-main h2{font-size:clamp(35px,4vw,57px);line-height:1.1;letter-spacing:-.065em;margin:0}
.case-intro p:last-child{font-size:18px;line-height:1.85;color:#4d6362;margin:0}
.case-section{padding:50px 0;border-bottom:1px solid #c4d0ca}
.case-section h2{font-size:clamp(28px,3vw,38px);margin-bottom:23px}
.case-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.case-item{padding:28px 24px;border:1px solid #cfd7d0;background:#fcfaf5}
.case-item span{display:block;color:#a27762;font-size:11px;letter-spacing:.12em;margin-bottom:22px;font-weight:750}
.case-item h3{font-size:22px;line-height:1.2;letter-spacing:-.045em;margin:0 0 13px}
.case-item p{font-size:14px;line-height:1.72;color:#526769;margin:0}
.case-prose{max-width:820px;font-size:17px;line-height:1.85;color:#4d6362;margin:0}
.case-disclosure{padding:26px 30px;border-left:3px solid #b77d65;background:#e9e8e0}
.case-disclosure h3{font-size:16px;margin:0 0 11px}
.case-disclosure p{margin:0;font-size:14px;line-height:1.75;color:#586b68}
.case-next{padding:75px 0;background:#0d2930}
.case-next h2{font-size:clamp(35px,4vw,58px);letter-spacing:-.065em;line-height:1.1;margin:0 0 19px}
.case-next p{color:#bed0ce;max-width:650px;line-height:1.75;margin-bottom:30px}
.case-actions{display:flex;gap:14px;flex-wrap:wrap}
.case-actions a{display:inline-flex;justify-content:space-between;gap:28px;align-items:center;padding:15px 19px;border:1px solid #b5a8928a;font-size:13px}
.case-actions a:first-child{background:#edcfb1;color:#15292b}
.case-actions a:hover{transform:translateY(-2px)}
.case-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px clamp(25px,5.5vw,87px);border-top:1px solid #ffffff26;color:#c5d5cf;font-size:11px}
.case-footer a{text-decoration:underline;text-underline-offset:5px}
@media(max-width:760px){.case-nav{gap:12px}.case-nav a:nth-child(2){display:none}.case-hero{min-height:unset;padding:73px 0 72px}.case-intro{grid-template-columns:1fr;gap:25px}.case-intro p:last-child{font-size:16px}.case-columns{grid-template-columns:1fr}.case-main{padding:52px 0}.case-section{padding:36px 0}.case-item{padding:23px}.case-next{padding:55px 0}.case-footer{flex-wrap:wrap}}
@media(max-width:390px){.case-nav a:last-child{padding:9px 10px;font-size:10px}.case-page .identity-name{font-size:13px}}
@media(prefers-reduced-motion:reduce){.case-actions a{transition:none}}
