/* 410HENNYCUTS — original art direction, responsive static site. */
:root{--bg:#08070b;--near:#0e0b12;--panel:#151019;--white:#f8f5fa;--purple:#a940ec;--purple-hi:#c057ff;--purple-soft:#e5b7ff;--muted:#a49ca9;--line:rgba(238,219,252,.16);--anton:'Anton',Impact,'Arial Narrow',sans-serif;--sans:'DM Sans',Arial,Helvetica,sans-serif;--geo:'Space Grotesk',Arial,sans-serif;--ease:cubic-bezier(.18,.78,.17,1);--header-h:88px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{margin:0;background:var(--bg);color:var(--white);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:110;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' opacity='.13' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:screen}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}::selection{background:var(--purple);color:#fff}:focus-visible{outline:2px solid var(--purple-soft);outline-offset:4px}.container{width:min(1440px,calc(100% - 112px));margin-inline:auto}.section-space{padding:145px 0}.display{font-family:var(--anton);font-size:clamp(68px,9.5vw,180px);font-weight:400;line-height:.96;letter-spacing:-.023em;margin:0;text-transform:uppercase}.display em,.page-heading em{font-style:normal;color:var(--purple-hi)}.display i{font-style:normal;color:var(--purple-soft)}p{line-height:1.7}.scroll-line{height:3px;position:fixed;top:0;left:0;z-index:160;background:linear-gradient(90deg,#e9b4ff,var(--purple),#8c22cf);width:0;box-shadow:0 0 16px #b04bfb}.mouse-glow{position:fixed;top:0;left:0;z-index:3;width:550px;height:550px;background:radial-gradient(circle,rgba(136,39,206,.115),transparent 65%);transform:translate(-50%,-50%);pointer-events:none;will-change:transform}.cursor-dot{position:fixed;z-index:200;width:13px;height:13px;left:0;top:0;border:2px solid var(--purple-soft);border-radius:50%;background:#bb42fc3d;transform:translate(-50%,-50%);pointer-events:none;opacity:0;mix-blend-mode:screen;transition:width .25s,height .25s,opacity .2s}.cursor-dot.cursor-hover{width:44px;height:44px;background:rgba(168,51,244,.10)}
/* Navigation */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:100;background:rgba(7,6,10,.84);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.10);transition:transform .4s var(--ease),background .3s}.site-header.nav-hidden{transform:translateY(-105%)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:35px;width:min(1600px,calc(100% - 90px));margin:auto}.brand{flex-shrink:0;display:flex;align-items:center;overflow:hidden}.brand img{width:197px;height:auto;object-fit:contain;mix-blend-mode:screen;transition:filter .3s,transform .3s}.brand:hover img{filter:drop-shadow(0 0 12px #bc48ff);transform:scale(1.03)}.desktop-nav{display:flex;align-items:center;gap:clamp(16px,2.25vw,43px)}.desktop-nav a{font-family:var(--geo);font-size:12px;font-weight:700;letter-spacing:.11em;color:#e3dbe8;position:relative;padding:18px 0;white-space:nowrap}.desktop-nav a:after{content:'';position:absolute;bottom:9px;left:0;width:0;height:2px;background:var(--purple-hi);transition:width .3s var(--ease)}.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{width:100%}.desktop-nav a[aria-current="page"]{color:var(--purple-soft)}.header-actions{display:flex;align-items:center;gap:18px}.header-book{display:inline-flex;align-items:center;justify-content:center;min-height:44px;white-space:nowrap;background:var(--purple);border:1px solid #cd8dff;padding:0 19px;font-family:var(--geo);font-size:11px;font-weight:700;letter-spacing:.1em;transform:skewX(-7deg);transition:background .25s,box-shadow .25s}.header-book span{transform:skewX(7deg)}.header-book:hover{background:#bf58ff;box-shadow:0 0 28px #a940ec75}.menu-toggle{display:none;width:45px;height:44px;position:relative;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:none;border:1px solid #ffffff30;cursor:pointer;z-index:102}.menu-toggle span{width:22px;height:2px;background:#fff;transition:transform .3s}.menu-toggle.open span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle.open span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.mobile-menu{display:none;position:fixed;z-index:95;inset:0;background:#100916;padding:120px 7vw 40px;flex-direction:column;justify-content:space-between;visibility:hidden;opacity:0;transform:translateY(-24px);transition:opacity .35s,transform .35s,visibility .35s}.mobile-menu.open{visibility:visible;opacity:1;transform:none}.mobile-menu nav{display:flex;flex-direction:column;position:relative;z-index:1}.mobile-menu nav a{font:clamp(45px,9vw,110px)/1.12 var(--anton);border-bottom:1px solid #ffffff25}.mobile-menu nav a[aria-current="page"]{color:var(--purple-hi)}.mobile-menu>p{color:var(--muted);font:12px/1.7 var(--geo);letter-spacing:.17em}.mobile-menu .btn{align-self:flex-start}.mobile-menu-bg{position:absolute;right:-10%;bottom:3%;font:38vw/.8 var(--anton);color:#ffffff08;pointer-events:none}
/* Buttons, microinteractions */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:60px;padding:18px 32px;font-family:var(--geo);font-size:12px;font-weight:800;letter-spacing:.11em;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s,background .3s,color .3s;border:1px solid transparent;cursor:pointer}.btn:hover{transform:translateY(-4px);box-shadow:0 14px 37px #b44afc3d}.btn span:not(.btn-sheen){position:relative;z-index:2}.btn-sheen{position:absolute;inset:0;background:linear-gradient(100deg,transparent 16%,#ffffff67 48%,transparent 75%);transform:translateX(-150%);transition:transform .85s var(--ease);z-index:1;pointer-events:none}.btn:hover .btn-sheen{transform:translateX(150%)}.btn-purple{background:var(--purple);border-color:var(--purple);color:white}.btn-white{background:#fff;color:#12071a;border-color:#fff}.btn-outline{background:transparent;color:#fff;border-color:#ffffff7a}.btn-outline:hover{border-color:var(--purple);background:#a940ec}.text-link,.underline-link{display:inline-flex;align-items:center;position:relative;width:max-content;max-width:100%;font:700 12px/1.5 var(--geo);letter-spacing:.1em;text-transform:uppercase;padding-bottom:8px}.text-link:after,.underline-link:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--purple-hi);transform-origin:left;transition:transform .35s}.text-link:hover:after,.underline-link:hover:after{transform:scaleX(.55)}
/* Loading + transitions */
.site-loader{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:#10091a;transition:transform .68s cubic-bezier(.82,0,.17,1);pointer-events:none}.site-loader.loaded{transform:translateY(-110%)}.loader-inner{width:200px}.loader-number{font:112px/.96 var(--anton);color:white;text-align:center;letter-spacing:-.05em}.loader-number span{color:var(--purple-hi)}.loader-bar{height:3px;margin-top:22px;background:#ffffff35;overflow:hidden}.loader-bar i{display:block;height:100%;width:100%;background:var(--purple-hi);transform-origin:left;animation:loaderfill .9s var(--ease) forwards}.page-transition{position:fixed;inset:0;z-index:900;background:var(--purple);transform:translateY(110%);pointer-events:none;transition:transform .43s cubic-bezier(.77,0,.18,1)}.page-transition.enter{transform:translateY(0)}@keyframes loaderfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}.reveal{opacity:0;transform:translateY(55px);transition:opacity .85s var(--ease),transform .95s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}
/* Home hero */
.hero-home{position:relative;min-height:790px;height:min(930px,100svh);max-height:1000px;padding-top:var(--header-h);overflow:hidden;background:radial-gradient(ellipse at 73% 35%,#311341 0%,transparent 46%),#09060d}.hero-grid-lines{position:absolute;inset:0;background-image:linear-gradient(90deg,transparent calc(100% - 1px),#ffffff0a 1px),linear-gradient(0deg,transparent calc(100% - 1px),#ffffff08 1px);background-size:115px 115px;mask-image:linear-gradient(90deg,transparent,#000 40%,#000);opacity:.5}.hero-orb{position:absolute;width:800px;height:800px;border:1px solid #c371f61d;border-radius:50%;top:-15%;right:-12%;box-shadow:0 0 0 100px #a43fea04,0 0 0 200px #a43fea03;animation:orbit 13s ease-in-out infinite alternate}@keyframes orbit{to{transform:translate(-35px,45px) scale(1.09)}}.hero-container{height:calc(100% - 60px);position:relative;display:grid;grid-template-columns:57% 43%;align-items:center}.hero-left{position:relative;z-index:4;padding-bottom:2%;transform:translateY(-1%)}.hero-location{display:flex;align-items:center;gap:14px;font:700 11px var(--geo);letter-spacing:.18em;color:#e7d8ed;margin-bottom:38px;animation:risein .8s .3s both}.live-pulse{width:8px;height:8px;background:#c052ff;border-radius:50%;box-shadow:0 0 0 6px #ab33e51a,0 0 13px var(--purple);animation:pulse 1.7s infinite}.location-slash{color:var(--purple-hi);font-size:17px}@keyframes pulse{50%{box-shadow:0 0 0 11px #ab33e500,0 0 14px #d99aff}}.hero-headline{font:clamp(88px,11.3vw,195px)/.91 var(--anton);letter-spacing:-.03em;font-weight:400;margin:0;white-space:nowrap;position:relative;z-index:5}.hero-line{display:block;animation:risein .9s var(--ease) both}.hero-line:nth-child(1){animation-delay:.4s}.hero-line:nth-child(2){animation-delay:.52s}.hero-line:nth-child(3){animation-delay:.64s}.hero-line.stroke{color:transparent;-webkit-text-stroke:2px #f1eafa;text-shadow:0 0 1px transparent}.hero-line.purple-word{color:var(--purple-hi);text-shadow:0 0 52px #9f32e74d;position:relative}.hero-line.purple-word:hover{animation:headlineGlitch .35s linear 2}@keyframes headlineGlitch{0%,100%{transform:none;text-shadow:0 0 50px #9f32e74d}20%{transform:translateX(7px);text-shadow:-5px 0 #fff}40%{transform:translateX(-5px);text-shadow:5px 0 #722af7}60%{transform:translateX(3px)}}.hero-lower{display:flex;align-items:flex-end;gap:4vw;margin-top:33px;animation:risein 1s .72s both}.hero-lower p{max-width:340px;font-size:17px;line-height:1.65;color:#d3c7d7;margin:0}.hero-buttons{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.hero-micro{margin-top:54px;font:700 11px var(--geo);color:#88818a;letter-spacing:.2em;animation:risein .9s .8s both}.hero-micro b{color:#d3b0e6}@keyframes risein{from{opacity:0;transform:translateY(44px)}to{opacity:1;transform:translateY(0)}}.hero-visual{position:absolute;right:-4%;top:4.8%;bottom:-5%;width:53.5%;z-index:2;transform:rotate(-2deg);transform-origin:center center;animation:heroArrival 1.3s .25s both}@keyframes heroArrival{from{opacity:0;transform:translate(90px,70px) rotate(7deg) scale(1.06)}to{opacity:1;transform:translate(0,0) rotate(-2deg) scale(1)}}.hero-photo-frame{position:absolute;inset:2.8% 9% 9% 7%;overflow:hidden;border:1px solid #bc72df66;background:linear-gradient(147deg,#60257c,#1c0c27 50%,#07050a);box-shadow:30px 35px 100px #0007;background-image:radial-gradient(circle at 55% 30%,#6f287d 0%,#23102e 49%,#09070c 100%);background-position:center,center 35%;background-size:cover}.hero-photo-frame:before{content:'';position:absolute;inset:0;border:1px solid #ffffff25;z-index:1;pointer-events:none}.hero-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 34%;filter:grayscale(.75) contrast(1.09) brightness(.85);mix-blend-mode:normal;transition:filter 1s,transform 1.2s}.hero-visual:hover .hero-photo-frame img{filter:grayscale(.35) contrast(1.1) brightness(.9);transform:scale(1.04)}.photo-wash{position:absolute;inset:0;background:linear-gradient(100deg,#7b27ab45,transparent 50%),linear-gradient(0deg,#090710c7,transparent 40%);pointer-events:none}.hero-visual-outline{position:absolute;bottom:5%;left:-3%;font:clamp(160px,25vw,470px)/.9 var(--anton);color:transparent;-webkit-text-stroke:2px #ffefff6b;transform:rotate(-90deg) translate(-42%,5%);transform-origin:left bottom;pointer-events:none;text-shadow:0 0 40px #a22eda19}.hero-stamp{position:absolute;z-index:3;right:0;top:12%;width:156px;height:156px;border-radius:50%;background:#be4fff;color:#12071a;border:8px solid #100815;display:grid;place-items:center;transform:rotate(13deg);box-shadow:0 0 36px #a039ef5a;animation:stampHover 3.8s ease-in-out infinite alternate}.hero-stamp span{font:20px/1.05 var(--anton);text-align:center;letter-spacing:.02em}.hero-stamp strong{font-size:27px}@keyframes stampHover{to{transform:translateY(-17px) rotate(22deg)}}.hero-edge-text{position:absolute;z-index:2;top:45%;right:-9%;writing-mode:vertical-rl;font:700 10px var(--geo);letter-spacing:.24em;color:#e8d8ee}.hero-photo-footer{position:absolute;bottom:4%;left:10%;right:10%;z-index:2;text-align:center;font:700 9px var(--geo);letter-spacing:.21em;white-space:nowrap;color:#f0d9fc}.hero-photo-footer span{color:var(--purple-hi);padding:0 7px}.hero-bottom-line{height:60px;position:absolute;bottom:0;left:0;right:0;z-index:4;display:flex;justify-content:space-between;align-items:center;padding:0 max(56px,calc((100vw - 1440px)/2));border-top:1px solid #ffffff28;font:700 10px var(--geo);letter-spacing:.13em;color:#af9fb7}.hero-bottom-line span:first-child{color:#fff}.scroll-dash{display:inline-block;width:60px;height:1px;background:var(--purple-hi);vertical-align:middle;margin-left:9px;animation:dashmove 1.4s infinite alternate}@keyframes dashmove{to{width:22px}}
/* Ticker */
.ticker{height:78px;display:flex;align-items:center;overflow:hidden;background:var(--purple);color:#0b0611;transform:skewY(-1deg);margin:-1px 0;position:relative;z-index:10}.ticker-track{display:flex;align-items:center;white-space:nowrap;width:max-content;animation:marquee 34s linear infinite}.ticker-track span{font:26px/.9 var(--anton);letter-spacing:.04em;margin-right:24px;word-spacing:.3em}.ticker-track b{font-size:25px;vertical-align:middle;margin:0 20px;color:#f6eaff}@keyframes marquee{to{transform:translateX(-50%)}}
/* Intro */
.intro-section{background:var(--bg);overflow:hidden}.intro-grid{display:grid;grid-template-columns:60px minmax(0,1.15fr) minmax(300px,.85fr);gap:4vw;align-items:center}.intro-vertical{writing-mode:vertical-rl;transform:rotate(180deg);align-self:stretch;text-align:center;font:700 12px var(--geo);letter-spacing:.35em;color:var(--purple-hi);border-left:1px solid var(--line)}.intro-title{font-size:clamp(72px,9vw,160px)}.intro-main p{max-width:490px;font-size:20px;color:#aea5b3;margin:37px 0 34px}.intro-art{min-height:440px;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 55% 48%,#5f2574 0%,#23122b 38%,#100b16 72%);border:1px solid #a34ae544;overflow:hidden;transform:rotate(3deg);box-shadow:20px 25px 0 -8px #731fab30}.intro-art:before{content:'';position:absolute;inset:20px;border:1px solid #c39ad44d}.intro-art:after{content:'';position:absolute;width:340px;height:340px;border-radius:50%;border:1px solid #d5a4f97e;box-shadow:0 0 0 55px #be59ef16,0 0 0 105px #be59ef0b;animation:orbit 9s ease-in-out infinite alternate}.intro-art-410{font:clamp(120px,16vw,260px)/1 var(--anton);color:transparent;-webkit-text-stroke:3px #e4c6f6;text-shadow:14px 14px 0 #b24afa4c;position:relative;z-index:2;letter-spacing:-.06em}.intro-art-text{position:absolute;bottom:36px;left:40px;z-index:3;font:24px/1.05 var(--anton);letter-spacing:.02em}.circle-type{position:absolute;top:20px;right:18px;font:700 10px var(--geo);letter-spacing:.15em;color:#e0b7f0}
/* Home work */
.featured-work{background:linear-gradient(180deg,#0a0710,#131017 55%,#09070b)}.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:60px}.section-title-row h2{font-size:clamp(72px,9vw,150px)}.section-title-row p{font-size:18px;color:var(--muted);max-width:280px}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:340px 340px;gap:20px}.feature-card{position:relative;overflow:hidden;min-height:300px;background:radial-gradient(circle at 50% 33%,#6f238e,#160e20 65%);border:1px solid #ffffff16;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;isolation:isolate;transition:border .3s,box-shadow .3s}.feature-card:hover{border-color:var(--purple-hi);box-shadow:0 0 0 1px #a840ee}.feature-card-tall{grid-row:span 2}.feature-image{position:absolute;inset:0;z-index:-1;background:linear-gradient(140deg,#442158,#0a0610),url('../img/portrait-art.svg') center/cover}.feature-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(.76);transition:transform .8s var(--ease),filter .8s}.feature-card:hover .feature-image img{transform:scale(1.08);filter:grayscale(0) brightness(.85)}.feature-card:after{content:'';position:absolute;inset:25% 0 0;background:linear-gradient(0deg,#09060ded,transparent);z-index:-1}.feature-card .feature-tag{font:700 11px var(--geo);letter-spacing:.2em;color:#deb8f2;margin-bottom:12px}.feature-card strong{font:clamp(27px,3.3vw,52px)/1.12 var(--anton);letter-spacing:.01em}.feature-card-tall strong{font-size:clamp(50px,5vw,88px);max-width:500px}.gallery-disclaimer{font:11px var(--geo);margin-top:20px;color:#938b98;text-align:right}
/* manifesto */
.manifesto{position:relative;background:#a53fe7;overflow:hidden;transform:skewY(-1.4deg);padding:105px 0 112px;color:#120818}.manifesto:before{content:'410';position:absolute;left:44%;top:-30%;font:60vw/.9 var(--anton);color:#ffffff14;letter-spacing:-.09em;pointer-events:none}.manifesto-grid{transform:skewY(1.4deg);display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;position:relative}.manifesto-left h2{font-size:clamp(85px,11vw,188px)}.manifesto-left h2 em{color:#fff}.manifesto-left h2>span:not(.word-window){color:transparent;-webkit-text-stroke:2px #160d1b}.manifesto-asterisk{font:120px/1 var(--sans);position:absolute;top:-80px;right:22%;animation:spin 24s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.manifesto-right{padding-bottom:17px}.manifesto-right p{font:clamp(23px,2.5vw,40px)/1.35 var(--geo);font-weight:700;max-width:340px}.manifesto-signature{border-top:1px solid #1e0d2980;padding-top:28px;margin-top:45px;font:55px/1 var(--anton)}.manifesto-signature i{font:italic 800 16px var(--sans)}
/* preview menu */
.services-preview{background:#09070b}.services-preview-list{border-top:1px solid var(--line)}.preview-service{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr) 150px;align-items:center;gap:25px;padding:34px 15px;border-bottom:1px solid var(--line);position:relative;isolation:isolate;transition:padding .3s,color .3s}.preview-service:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--purple);transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--ease)}.preview-service:hover:before{transform:scaleY(1)}.preview-service:hover{padding-left:30px;color:#0e0713}.preview-service>span{font:clamp(29px,3.8vw,62px)/1 var(--anton)}.preview-service>small{font:700 11px var(--geo);letter-spacing:.13em;color:#b4a5ba}.preview-service:hover small{color:#351a45}.preview-service>strong{font:clamp(38px,4.6vw,78px)/1 var(--anton);justify-self:end;color:var(--purple-hi);transition:color .3s}.preview-service:hover strong{color:#1b0a24}.services-all-btn{margin-top:42px}
/* Reviews */
.review-band{padding:130px 0;background:radial-gradient(circle at 50% 50%,#2e133d,#0e0a13 65%);border-block:1px solid #bd6cff36;text-align:center}.review-stars{font:24px var(--sans);letter-spacing:.20em;color:var(--purple-hi)}.review-content blockquote{font:clamp(39px,6vw,93px)/1.1 var(--anton);margin:24px auto 30px;max-width:1060px}.review-source{font:700 11px var(--geo);letter-spacing:.19em;color:#b7a7bd}.review-links{display:flex;justify-content:space-between;text-align:left;border-top:1px solid var(--line);padding-top:27px;margin-top:110px;font:700 11px var(--geo);letter-spacing:.1em}.review-links span{color:#8f8496}.review-links a{border-bottom:1px solid var(--purple-hi);padding-bottom:6px}
/* Closing */
.final-cta{background:#0c0611;position:relative;padding:140px 0 165px;overflow:hidden;border-top:1px solid #ffffff12}.final-glow{position:absolute;top:-400px;right:-160px;width:850px;height:850px;border-radius:50%;background:radial-gradient(circle,#7d21b74f,transparent 70%);pointer-events:none}.final-content{position:relative;z-index:2}.final-content h2{font-size:clamp(78px,11vw,198px)}.final-content h2 i{color:var(--purple-hi)}.final-content p{font-size:19px;margin:32px 0;color:#c9bed0}.final-410{position:absolute;right:-3%;bottom:-10%;font:clamp(250px,33vw,600px)/.75 var(--anton);letter-spacing:-.08em;color:transparent;-webkit-text-stroke:2px #c874e82a;pointer-events:none}
/* Footer */
.footer{background:#050407;border-top:1px solid #ffffff28;padding:80px max(56px,calc((100vw - 1440px)/2)) 0}.footer-top{display:grid;grid-template-columns:1.2fr .65fr .85fr;gap:60px;padding-bottom:100px}.footer-mark{display:flex;align-items:baseline;font:normal clamp(35px,3vw,56px) var(--anton);line-height:1}.footer-mark em{font-style:normal;color:var(--purple-hi)}.footer-mark strong{font:italic 900 clamp(24px,2.5vw,42px)/1 var(--sans);letter-spacing:-.07em}.footer-top p{color:#958b9d;line-height:1.8;font-size:15px;margin-top:24px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:17px;font:700 14px var(--geo)}.footer-links a:hover,.footer-bottom a:hover{color:var(--purple-soft)}.footer-cta{display:flex;flex-direction:column;align-items:flex-start;gap:24px;font:clamp(36px,4.4vw,72px)/1 var(--anton)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff22;padding:25px 0;color:#948b98;font:700 10px/1.6 var(--geo);letter-spacing:.08em}
/* Page heroes */
.page-hero{position:relative;min-height:620px;padding:calc(var(--header-h) + 105px) 0 90px;overflow:hidden;background:#130a1a;border-bottom:1px solid #71338955}.page-hero:before{content:'410';position:absolute;right:-3%;top:10%;font:34vw/.9 var(--anton);color:transparent;-webkit-text-stroke:2px #ad64da2d;letter-spacing:-.08em;transform:rotate(-6deg);pointer-events:none}.page-hero-glow{position:absolute;right:3%;top:-120px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,#6b248b60,transparent 70%)}.page-hero .container{position:relative}.page-heading{font-size:clamp(88px,11.5vw,190px);animation:risein .9s .25s both}.page-hero p{max-width:580px;color:#d4c6db;font-size:20px;line-height:1.6;animation:risein .85s .5s both}.page-hero-tag{display:inline-block;padding-top:30px;margin-top:25px;border-top:1px solid #ffffff3a;color:#ba9ece;font:700 12px var(--geo);letter-spacing:.2em;animation:risein .85s .55s both}.page-hero-work{background:radial-gradient(circle at 85% 80%,#411b56,#14091e 55%,#0b0810)}.page-hero-visit{background:radial-gradient(circle at 80% 55%,#44174f,#140c1b 65%,#0b0810)}
/* Services page */
.menu-top,.work-top{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:50px}.menu-top .display,.work-top .display{font-size:clamp(64px,8vw,130px)}.menu-filters{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:10px}.filter-btn{padding:13px 17px;background:#ffffff05;color:#bdb1c5;border:1px solid #ffffff2e;cursor:pointer;font:700 11px var(--geo);letter-spacing:.08em;transition:background .25s,color .25s,border-color .25s}.filter-btn:hover,.filter-btn.active{background:var(--purple);color:#fff;border-color:var(--purple)}.service-cards{border-top:1px solid var(--line)}.service-entry{display:grid;grid-template-columns:minmax(0,1fr) 140px 195px;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding:48px 12px;transition:background .3s,padding .3s}.service-entry:hover{background:#2a1731;padding-left:28px}.service-entry[hidden],.work-card[hidden]{display:none!important}.service-name h3{font:clamp(34px,4.3vw,66px)/1.04 var(--anton);margin:0 0 15px}.service-name h3 i{font-style:normal;color:#ba79e0;font-size:.55em;vertical-align:middle}.service-name p{font-size:17px;color:#aea5b5;max-width:680px;line-height:1.65;margin:0 0 17px}.service-duration{color:var(--purple-soft);font:700 11px var(--geo);letter-spacing:.15em}.service-price{font:clamp(45px,5.1vw,82px)/1 var(--anton);text-align:center;color:var(--purple-hi)}.btn-service{min-height:53px;padding:14px;background:#ffffff08;color:#fff;border-color:#ffffff50;font-size:10px}.service-entry:hover .btn-service{background:var(--purple);border-color:var(--purple)}.menu-footnote{display:flex;justify-content:space-between;gap:24px;margin-top:28px;color:#918b94;font:700 10px/1.6 var(--geo);letter-spacing:.09em}.service-poster{background:#a23bec;overflow:hidden;transform:skewY(-1.5deg);padding:90px 0}.service-poster-inner{display:grid;grid-template-columns:.83fr 1.17fr;gap:8%;align-items:center;transform:skewY(1.5deg)}.service-poster-img{min-height:630px;background:radial-gradient(circle at 65% 24%,#63246e,#16091c 77%);transform:rotate(-3deg);overflow:hidden;border:8px solid #1f0e28;box-shadow:25px 25px 0 #2e103556}.service-poster-img img{height:100%;width:100%;min-height:630px;object-fit:cover;filter:grayscale(1) contrast(1.15)}.service-poster-type h2{font-size:clamp(80px,8vw,145px);color:#1c0926}.service-poster-type em{color:#fff}.service-poster-type p{font:700 21px var(--geo);color:#2a1038;margin:30px 0}.experience-section h2{font-size:clamp(70px,8.5vw,145px)}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-top:60px}.experience-tile{background:#17101f;border:1px solid #ffffff15;padding:38px;min-height:330px}.experience-icon{font-size:43px;color:var(--purple-hi);margin-bottom:45px}.experience-tile h3{font:29px/1.15 var(--anton);letter-spacing:.01em}.experience-tile p{font-size:16px;color:#b3a8ba}
/* Work */
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:360px;gap:16px}.work-card{appearance:none;text-align:left;position:relative;display:block;overflow:hidden;border:1px solid #ffffff19;padding:0;background:linear-gradient(130deg,#4e1b62,#100815);cursor:zoom-in}.work-card.large{grid-column:span 2;grid-row:span 2}.work-card.wide{grid-column:span 2}.work-img{position:absolute;inset:0;background:linear-gradient(150deg,#30143a65,#07070c90),url('../img/portrait-art.svg') center 25%/cover;display:block}.work-img img{height:100%;width:100%;object-fit:cover;filter:grayscale(.65) brightness(.77);transition:transform .9s var(--ease),filter .6s}.work-card:hover img{transform:scale(1.09);filter:grayscale(0) brightness(.93)}.work-card:before{content:'';position:absolute;inset:0;border:15px solid transparent;z-index:2;pointer-events:none;transition:border .4s}.work-card:hover:before{border-color:#ad42e875}.work-overlay{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:85px 25px 25px;background:linear-gradient(0deg,#08050ce8,transparent);display:flex;justify-content:space-between;align-items:end;gap:20px}.work-overlay>span{font:clamp(25px,3vw,55px)/1 var(--anton)}.work-overlay>b{font:700 10px var(--geo);letter-spacing:.11em;color:#deb7f4}.work-gallery-note{font:12px var(--geo);color:var(--muted);margin:25px 0;text-align:right}.lightbox{position:fixed;inset:0;z-index:400;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:90px 5vw 55px;background:rgba(6,4,9,.97);opacity:0;visibility:hidden;transform:scale(.97);transition:opacity .3s,visibility .3s,transform .3s}.lightbox.open{opacity:1;visibility:visible;transform:scale(1)}.lightbox-center{min-width:0;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:20px}.lightbox-center img{max-height:72vh;max-width:80vw;width:auto;object-fit:contain;border:1px solid #a85cda55;box-shadow:0 0 110px #8420ad35}.lightbox-center span{font:20px var(--anton);text-transform:uppercase}.lightbox button{background:transparent;border:1px solid #ffffff40;color:#fff;padding:16px;cursor:pointer;font:700 11px var(--geo);letter-spacing:.12em}.lightbox button:hover{background:var(--purple)}.lightbox-close{position:absolute;top:35px;right:5vw}.lightbox-close span{font-size:22px;vertical-align:middle;margin-left:14px}.work-callout{padding:120px 0;background:radial-gradient(circle at 80% 20%,#4a1a62,#150e1b 70%);overflow:hidden}.work-callout h2{font-size:clamp(85px,12vw,210px)}.work-callout-bottom{display:flex;align-items:center;justify-content:space-between;gap:60px;margin-top:45px}.work-callout-bottom p{font-size:20px;max-width:530px;color:#cec1d1}
/* Story */
.story-hero{height:min(900px,100svh);min-height:730px;position:relative;overflow:hidden;display:flex;align-items:center;padding-top:var(--header-h);background:radial-gradient(circle at 70% 20%,#48215d,#090610 80%)}.story-hero-picture{position:absolute;right:0;top:0;bottom:0;width:63%}.story-hero-picture img{height:100%;width:100%;object-fit:cover;filter:grayscale(1) brightness(.6) contrast(1.1)}.story-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0a0710 20%,#100817c9 55%,#10071b39),linear-gradient(0deg,#08070cbe,transparent 42%)}.story-hero-inner{position:relative;z-index:2}.story-hero-inner .display{font-size:clamp(88px,10.7vw,185px)}.story-hero-inner p{color:#d1c5d4;max-width:420px;font-size:20px;margin:30px 0}.story-hero-mark{position:absolute;bottom:0;right:0;font:27vw/.8 var(--anton);color:transparent;-webkit-text-stroke:2px #fff5;opacity:.6}.story-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.story-intro h2{font-size:clamp(76px,9vw,160px)}.story-intro-copy .large-copy{font:700 clamp(24px,2.4vw,37px)/1.4 var(--geo);color:#e9deeb;margin-top:3px}.story-intro-copy .large-copy strong{color:var(--purple-hi)}.story-intro-copy>p:not(.large-copy){font-size:18px;color:#aaa0ae}.story-intro-copy .btn{margin-top:30px}.values-section{padding:120px 0;background:#1b101f}.value-block{display:flex;align-items:end;justify-content:space-between;gap:35px;padding:55px 0;border-bottom:1px solid #ffffff34}.value-block:first-child{border-top:1px solid #ffffff34}.value-block h2{font-size:clamp(75px,9vw,150px)}.value-block p{font:18px/1.5 var(--geo);max-width:255px;color:#bdaec4}.quote-section h2{font-size:clamp(72px,8vw,145px)}.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:65px 0 44px}.testimonial-card{padding:40px;background:#1a1120;border:1px solid #a759df36;display:flex;flex-direction:column;min-height:390px}.testimonial-card .review-stars{font-size:17px}.testimonial-card blockquote{font:700 clamp(21px,1.8vw,31px)/1.5 var(--geo);margin:34px 0 45px;flex:1}.testimonial-card strong{font:23px var(--anton);color:var(--purple-soft)}.testimonial-card>span:last-child{font:700 10px var(--geo);color:#96899e;letter-spacing:.1em;margin-top:8px}
/* Visit */
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw}.visit-address h2{font-size:clamp(70px,7vw,125px)}.address-large{font:700 clamp(22px,2.2vw,33px)/1.45 var(--geo);margin:43px 0 30px}.visit-details{margin-top:60px;border-top:1px solid var(--line)}.visit-details>div{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.visit-details span{font:700 12px var(--geo);color:var(--muted);letter-spacing:.1em}.visit-details strong{font:700 14px/1.5 var(--geo);max-width:270px;text-align:right}.visit-address>.btn-outline{margin-top:38px}.visit-map{height:690px;position:relative;border:1px solid #994bca70;background:radial-gradient(circle at 40% 30%,#481d62,#180b23 70%);overflow:hidden}.visit-map:before{content:'';inset:0;position:absolute;background:repeating-linear-gradient(12deg,transparent,transparent 38px,#ffffff16 40px,#ffffff12 41px),repeating-linear-gradient(105deg,transparent,transparent 60px,#ffffff0c 63px,#ffffff12 65px);pointer-events:none}.visit-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.89) hue-rotate(226deg) contrast(.95) brightness(.65);opacity:.8}.map-overlay{position:absolute;left:25px;bottom:25px;right:25px;padding:25px;background:#13091ee8;border-left:4px solid var(--purple-hi);display:flex;flex-direction:column;gap:10px;pointer-events:none}.map-overlay span{font:700 11px var(--geo);letter-spacing:.15em}.map-overlay strong{font:57px/1 var(--anton);color:var(--purple-hi)}.policies-section{background:#120c18}.policies-section h2{font-size:clamp(76px,9.5vw,160px);margin-bottom:62px}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;padding:29px 15px 29px 0;border:0;background:none;color:#fff;cursor:pointer;font:clamp(23px,3vw,45px)/1.12 var(--anton);transition:color .25s}.faq-question:hover,.faq-question[aria-expanded="true"]{color:var(--purple-hi)}.faq-question b{font:40px/.7 var(--sans);font-weight:300;transition:transform .3s}.faq-question[aria-expanded="true"] b{transform:rotate(45deg)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}.faq-answer p{overflow:hidden;margin:0;color:#b9adbd;font-size:17px;line-height:1.7;max-width:770px}.faq-item.open .faq-answer{grid-template-rows:1fr}.faq-item.open .faq-answer p{padding-bottom:30px}.policy-note{color:#a298a8;font-size:13px;margin-top:30px}
/* Laptop / tablet */
@media(max-width:1250px){.container{width:min(100% - 70px,1250px)}.header-inner{width:calc(100% - 55px);gap:20px}.desktop-nav{gap:18px}.desktop-nav a{font-size:11px}.brand img{width:166px}.header-book{padding:0 13px;font-size:10px}.hero-headline{font-size:11.8vw}.hero-lower{display:block}.hero-buttons{margin-top:20px}.hero-visual{width:55%;right:-5%}.hero-stamp{width:130px;height:130px}.hero-stamp span{font-size:17px}.hero-stamp strong{font-size:24px}.intro-grid{grid-template-columns:40px 1.1fr .9fr;gap:30px}.intro-art{min-height:360px}.service-entry{grid-template-columns:minmax(0,1fr) 110px 175px;gap:20px}.service-poster-img,.service-poster-img img{min-height:500px}}
@media(max-width:980px){:root{--header-h:74px}.desktop-nav{display:none}.menu-toggle{display:flex}.mobile-menu{display:flex}.header-inner{width:calc(100% - 48px)}.container{width:calc(100% - 60px)}.hero-home{height:auto;min-height:0;padding-top:var(--header-h)}.hero-container{height:auto;min-height:800px;grid-template-columns:1fr;display:block;padding-top:100px;padding-bottom:110px}.hero-left{position:relative;padding:0}.hero-headline{font-size:clamp(90px,13.7vw,150px)}.hero-visual{inset:auto -12% 0 auto;width:70%;height:77%;opacity:.58!important;z-index:1}.hero-left{z-index:4}.hero-lower p{max-width:360px}.hero-micro{margin-top:65px}.hero-bottom-line{padding:0 30px}.hero-bottom-line>span:nth-child(2){display:none}.hero-photo-frame{inset:8% 8% 8% 8%}.hero-stamp{right:8%}.hero-photo-footer{font-size:8px}.intro-grid{grid-template-columns:32px 1fr;gap:25px}.intro-art{grid-column:2;max-width:550px}.section-space{padding:110px 0}.feature-grid{grid-template-rows:250px 250px}.manifesto-grid{grid-template-columns:1fr 1fr;gap:35px}.manifesto-left h2{font-size:9vw}.manifesto-right p{font-size:24px}.service-entry{grid-template-columns:minmax(0,1fr) 100px;position:relative;padding-bottom:100px}.service-entry .btn{position:absolute;bottom:28px;left:12px}.service-entry:hover .btn{left:28px}.service-price{align-self:start}.menu-top,.work-top{align-items:start;flex-direction:column}.menu-top .display{font-size:100px}.service-poster-type h2{font-size:8vw}.work-grid{grid-auto-rows:280px}.work-overlay>b{display:none}.story-hero-inner .display{font-size:11vw}.story-intro-grid{gap:4vw}.story-intro h2{font-size:8vw}.testimonials{gap:12px}.testimonial-card{padding:25px}.visit-grid{grid-template-columns:1fr;gap:70px}.visit-map{height:550px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-cta{grid-column:1/-1}.footer-bottom{flex-wrap:wrap}.experience-tile{padding:25px}}
@media(max-width:640px){:root{--header-h:68px}.container{width:calc(100% - 38px)}.header-inner{width:calc(100% - 35px)}.brand img{width:150px}.header-book{display:none}.mobile-menu{padding:110px 7% 26px}.mobile-menu nav a{font-size:clamp(44px,11vw,75px)}.mobile-menu .btn{min-height:48px}.display{font-size:clamp(65px,14vw,99px)}.section-space{padding:84px 0}.hero-container{padding-top:70px;min-height:745px;padding-bottom:85px}.hero-location{font-size:9px;gap:8px;letter-spacing:.09em;margin-bottom:36px}.hero-headline{font-size:clamp(64px,15vw,111px);line-height:.96}.hero-headline .hero-line{letter-spacing:-.035em}.hero-headline .purple-word{font-size:.93em}.hero-visual{width:95%;height:62%;right:-37%;bottom:7%;opacity:.41!important}.hero-photo-frame{inset:0 4% 10% 4%}.hero-visual-outline{display:none}.hero-stamp{width:95px;height:95px;top:6%;right:18%;border-width:5px}.hero-stamp span{font-size:12px}.hero-stamp strong{font-size:17px}.hero-edge-text,.hero-photo-footer{display:none}.hero-lower{margin-top:35px}.hero-lower p{font-size:17px;max-width:310px}.hero-buttons{align-items:flex-start;flex-direction:column;gap:23px;margin-top:26px}.hero-buttons .btn{min-height:54px}.hero-micro{margin-top:67px;font-size:10px}.hero-bottom-line{height:50px;font-size:9px;padding:0 19px}.hero-bottom-line>span:last-child{font-size:8px}.ticker{height:58px}.ticker-track span{font-size:20px}.ticker-track b{font-size:19px;margin:0 9px}.intro-grid{grid-template-columns:1fr;gap:45px}.intro-vertical{display:none}.intro-main p{font-size:18px;margin:25px 0}.intro-art{grid-column:1;min-height:330px;max-width:none;margin-inline:7px}.intro-art-410{font-size:180px}.intro-art-text{font-size:21px;bottom:27px;left:27px}.section-title-row{align-items:start;flex-direction:column;gap:22px;margin-bottom:35px}.section-title-row h2{font-size:clamp(65px,13vw,96px)}.feature-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:14px}.feature-card,.feature-card-tall{grid-row:auto;min-height:360px}.feature-card-tall{min-height:490px}.feature-card-tall strong{font-size:52px}.feature-card strong{font-size:35px}.gallery-disclaimer{text-align:left;font-size:10px}.manifesto{padding:85px 0}.manifesto-grid{grid-template-columns:1fr;gap:25px}.manifesto-left h2{font-size:clamp(85px,16vw,130px)}.manifesto-asterisk{right:5%;font-size:70px;top:-35px}.manifesto-right p{font-size:25px;max-width:450px}.manifesto-signature{margin-top:26px}.services-preview .section-title-row p{font-size:17px}.preview-service{grid-template-columns:1fr auto;gap:10px;padding:25px 0}.preview-service span{font-size:clamp(29px,7vw,45px)}.preview-service small{grid-row:2;grid-column:1;font-size:10px}.preview-service strong{grid-row:1/3;grid-column:2;font-size:55px}.preview-service:hover{padding-left:9px}.review-band{padding:85px 0}.review-content blockquote{font-size:clamp(52px,10.5vw,75px)}.review-links{margin-top:70px;gap:30px;flex-direction:column}.final-cta{padding:95px 0 120px}.final-content h2{font-size:clamp(68px,13vw,110px)}.final-content p{font-size:17px}.final-410{font-size:260px;bottom:-4%;right:-10%}.footer{padding:60px 20px 0}.footer-top{grid-template-columns:1fr;gap:45px;padding-bottom:55px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:16px}.footer-cta{grid-column:1}.footer-bottom{font-size:9px}.page-hero{min-height:540px;padding:calc(var(--header-h) + 90px) 0 70px}.page-heading{font-size:clamp(69px,14.3vw,105px)}.page-hero p{font-size:18px}.page-hero-tag{font-size:10px;line-height:1.6}.menu-top .display,.work-top .display{font-size:clamp(72px,13vw,100px)}.menu-filters{gap:8px}.filter-btn{font-size:9px;padding:11px 12px}.service-entry{grid-template-columns:1fr auto;gap:6px 10px;padding:32px 0 100px}.service-entry:hover{padding-left:10px}.service-name h3{font-size:clamp(33px,7.4vw,53px)}.service-name h3 i{display:block;font-size:.52em;margin-top:4px}.service-name p{font-size:15px;line-height:1.6}.service-duration{font-size:10px}.service-price{font-size:clamp(48px,11vw,75px)}.menu-footnote{flex-direction:column}.service-poster{padding:60px 0 90px}.service-poster-inner{grid-template-columns:1fr;gap:55px}.service-poster-img,.service-poster-img img{min-height:380px;max-height:460px}.service-poster-type h2{font-size:clamp(75px,13vw,120px)}.experience-section h2{font-size:clamp(67px,12vw,95px)}.experience-grid{grid-template-columns:1fr;margin-top:40px}.experience-tile{min-height:0}.experience-icon{margin-bottom:20px}.work-grid{grid-template-columns:1fr 1fr;grid-auto-rows:235px;gap:10px}.work-card.large{grid-row:span 2;grid-column:span 2}.work-card.wide{grid-column:span 2}.work-overlay{padding:60px 12px 12px}.work-overlay>span{font-size:22px}.work-card.large .work-overlay>span{font-size:40px}.lightbox{padding:85px 14px 50px;gap:7px}.lightbox button{font-size:9px;padding:12px 9px}.lightbox-center img{max-width:68vw}.lightbox-close{top:24px;right:15px}.work-callout{padding:85px 0}.work-callout h2{font-size:clamp(75px,14vw,120px)}.work-callout-bottom{flex-direction:column;align-items:flex-start;gap:17px}.work-callout-bottom p{font-size:17px}.story-hero{min-height:740px;height:90svh}.story-hero-picture{width:100%;opacity:.6}.story-hero-shade{background:linear-gradient(90deg,#0b070fee,#0b07129c 68%,#09070b40),linear-gradient(0deg,#08070c,transparent 40%)}.story-hero-inner .display{font-size:clamp(65px,12.7vw,100px)}.story-hero-inner p{font-size:18px;max-width:320px}.story-intro-grid{grid-template-columns:1fr;gap:40px}.story-intro h2{font-size:clamp(77px,13.5vw,120px)}.story-intro-copy .large-copy{font-size:23px}.values-section{padding:65px 0}.value-block{align-items:start;flex-direction:column;gap:14px;padding:30px 0}.value-block h2{font-size:clamp(68px,12vw,110px)}.value-block p{font-size:16px;max-width:340px}.quote-section h2{font-size:clamp(70px,12vw,110px)}.testimonials{grid-template-columns:1fr;gap:16px;margin-top:40px}.testimonial-card{min-height:310px}.visit-grid{gap:60px}.visit-address h2{font-size:clamp(73px,13vw,120px)}.visit-details>div{flex-direction:column;gap:10px}.visit-details strong{text-align:left;max-width:none}.visit-map{height:470px}.map-overlay strong{font-size:40px}.policies-section h2{font-size:clamp(75px,12vw,115px)}.faq-question{font-size:clamp(26px,6vw,40px);padding:25px 0}.faq-answer p{font-size:15px}}
@media(hover:none),(pointer:coarse){.cursor-dot,.mouse-glow{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.site-loader{display:none}.page-transition{display:none}}
/* Strong built-in font fallback when Google Fonts are unavailable in local preview. */
:root{--anton:'Anton','Roboto Condensed','Liberation Sans Narrow',Impact,'Arial Narrow',sans-serif}
.display,.hero-headline,.service-name h3,.service-price,.preview-service>span,.preview-service>strong,.work-overlay>span,.faq-question,.testimonial-card strong,.intro-art-410,.footer-cta,.footer-mark,.manifesto-signature,.map-overlay strong,.review-content blockquote{font-weight:900}
.reveal{opacity:.88;transform:translateY(25px)}.reveal.is-visible{opacity:1;transform:translateY(0)}
.site-loader{transition-duration:.44s}
@media(max-width:640px){
  .hero-headline{font-size:clamp(58px,14vw,90px)}
  .hero-headline .purple-word{font-size:.94em;letter-spacing:-.06em}
  .page-heading{font-size:clamp(66px,12.6vw,96px)}
  .experience-section h2{font-size:clamp(51px,10vw,78px)}
  .service-poster-type h2{font-size:clamp(65px,12vw,94px)}
  .value-block h2{font-size:clamp(51px,10.5vw,81px)}
  .quote-section h2{font-size:clamp(49px,10.5vw,82px)}
  .work-callout h2{font-size:clamp(62px,12vw,96px)}
  .story-hero-inner .display{font-size:clamp(59px,11.8vw,95px)}
  .story-intro h2{font-size:clamp(65px,12.2vw,95px)}
  .policies-section h2{font-size:clamp(61px,11.5vw,91px)}
  .intro-title{font-size:clamp(63px,12vw,94px)}
}

/* ================================================================
   VERSION 1.1 · OPEN TRACKING / KINETIC TYPE / NATIVE CURSOR
   These adjustments intentionally come after the responsive system.
   ================================================================ */
/* No cursor replacement or mouse-following orb. */
.mouse-glow,.cursor-dot{display:none!important}

/* The oversized lettering is still editorial, now with air between glyphs. */
.display{letter-spacing:.043em;line-height:1.045}
.hero-headline{letter-spacing:.018em;line-height:1.0}
.hero-headline .hero-line{letter-spacing:.02em}
.hero-headline .purple-word{letter-spacing:.003em;font-size:.84em}
.page-heading{letter-spacing:.036em}
.mobile-menu nav a{letter-spacing:.035em}
.feature-card strong{letter-spacing:.035em;line-height:1.12}
.preview-service>span{letter-spacing:.035em;line-height:1.12}
.preview-service>strong{letter-spacing:.025em}
.service-name h3,.service-price{letter-spacing:.032em}
.work-overlay>span,.faq-question,.review-content blockquote{letter-spacing:.034em}
.testimonial-card strong,.footer-cta,.map-overlay strong,.manifesto-signature{letter-spacing:.04em}
.intro-art-text{letter-spacing:.06em}
.hero-stamp span{letter-spacing:.055em}
/* Utility typography: small labels benefit from a little more separation. */
.desktop-nav a,.header-book,.btn,.hero-micro,.hero-location,.feature-tag,
.page-hero-tag,.review-source,.footer-bottom,.filter-btn{letter-spacing:.15em}

/* Wrapped words: their spans are injected only by JS, so no-JS stays readable. */
.kinetic-ready .word-window{display:inline-block;white-space:nowrap;vertical-align:baseline;overflow:clip;
  padding:.14em .035em .18em;margin:-.14em -.035em -.18em}
.kinetic-ready .word-motion{display:inline-block;will-change:transform,opacity,filter;
  transform:translate3d(0,112%,0) rotate(4deg);transform-origin:left bottom;
  opacity:.08;filter:blur(9px);transition:transform 1.03s cubic-bezier(.16,1,.3,1),
  opacity .84s ease,filter 1.04s ease;transition-delay:var(--kinetic-delay,0ms)}
.kinetic-ready.kinetic-active .word-motion{transform:translate3d(0,0,0) rotate(0);opacity:1;filter:blur(0)}
.kinetic-ready em .word-motion,.kinetic-ready i .word-motion{transition-duration:1.17s,.9s,1.07s}
/* Keep typography fully readable when motion is disabled. */
@media(prefers-reduced-motion:reduce){
 .kinetic-ready .word-motion{transform:none!important;opacity:1!important;filter:none!important;transition:none!important}
}

/* Signature scroll-responsive lyric interlude. */
.lyric-section{position:relative;isolation:isolate;min-height:min(900px,112svh);padding:105px 0 115px;
 background:radial-gradient(ellipse at 82% 42%,#381548 0%,#14091b 34%,#09070d 76%);
 overflow:hidden;border-top:1px solid #9b51c930;border-bottom:1px solid #9b51c930}
.lyric-halo{position:absolute;width:min(82vw,950px);aspect-ratio:1;right:-23%;top:-15%;border:1px solid #a445d52c;
 border-radius:50%;box-shadow:0 0 0 72px #af54e107,0 0 0 144px #af54e106,
  0 0 0 216px #af54e104;filter:drop-shadow(0 0 25px #a341f61b);pointer-events:none}
.lyric-section:before{content:'410';position:absolute;bottom:-7%;right:1%;font: min(37vw,540px)/.9 var(--anton);
 color:transparent;-webkit-text-stroke:2px #ce7dff18;pointer-events:none;letter-spacing:-.05em}
.lyric-inner{position:relative;z-index:1}
.lyric-rule{height:3px;background:rgba(200,160,230,.18);position:relative;margin-bottom:75px;max-width:820px}
.lyric-rule:after{content:'';background:linear-gradient(90deg,var(--purple-hi),#f0c9ff);position:absolute;
 inset:0;transform:scaleX(var(--lyric-progress,0));transform-origin:left;box-shadow:0 0 24px #ba55fa}
.lyric-line{font:900 clamp(90px,11vw,176px)/1.02 var(--anton);letter-spacing:.047em;
 text-transform:uppercase;margin:0;max-width:1250px}
.lyric-line em{font-style:normal}
.lyric-line .word-window{display:inline-block;vertical-align:baseline;white-space:nowrap}
.lyric-line .word-motion{display:inline-block;color:#685875;opacity:.72;
 transition:color .48s ease,opacity .48s ease,text-shadow .48s ease;
 will-change:color}
.lyric-line .word-motion.is-lit{color:#f8f3fb;opacity:1;text-shadow:0 0 20px #a840d719}
.lyric-line em .word-motion.is-lit{color:#c056ff;text-shadow:0 0 30px #a840ee70}
.lyric-bottom{display:flex;gap:25px;align-items:end;justify-content:space-between;max-width:1000px;
 border-top:1px solid #e5c2ef35;margin-top:85px;padding-top:24px}
.lyric-bottom p{color:#e8dce9;font:600 clamp(17px,1.65vw,24px)/1.5 var(--geo);margin:0}
.lyric-bottom span{font:700 11px/1.5 var(--geo);color:#ab91b9;letter-spacing:.19em}

/* When the wording grows, give the columns breathing room rather than crushing tracking. */
@media(max-width:1250px){
 .hero-headline{font-size:clamp(83px,10.1vw,135px)}
 .hero-headline .purple-word{font-size:.83em}
 .manifesto-left h2{font-size:clamp(78px,9.4vw,130px)}
 .lyric-line{font-size:clamp(83px,10.3vw,143px)}
}
@media(max-width:980px){
 .hero-headline{font-size:clamp(73px,12.7vw,122px)}
 .page-heading{font-size:clamp(68px,10vw,117px)}
 .lyric-section{min-height:720px;padding:100px 0}
 .lyric-line{font-size:clamp(72px,11vw,114px)}
 .lyric-bottom{margin-top:95px}
 .manifesto-left h2{font-size:clamp(76px,8.5vw,100px)}
}
@media(max-width:640px){
 .display{letter-spacing:.038em;line-height:1.06}
 .hero-headline{font-size:clamp(55px,12.9vw,81px);line-height:1.05}
 .hero-headline .hero-line{letter-spacing:.014em}
 .hero-headline .purple-word{font-size:.85em;letter-spacing:0}
 .page-heading{font-size:clamp(59px,11.5vw,84px);letter-spacing:.03em}
 .intro-title{font-size:clamp(56px,10.5vw,84px)}
 .section-title-row h2{font-size:clamp(57px,11.2vw,84px)}
 .manifesto-left h2{font-size:clamp(70px,13vw,108px)}
 .final-content h2{font-size:clamp(62px,11vw,92px)}
 .menu-top .display,.work-top .display{font-size:clamp(62px,11.6vw,91px)}
 .experience-section h2{font-size:clamp(52px,9vw,77px)}
 .service-poster-type h2{font-size:clamp(66px,11.3vw,94px)}
 .value-block h2{font-size:clamp(55px,9.5vw,85px)}
 .quote-section h2{font-size:clamp(55px,10vw,83px)}
 .work-callout h2{font-size:clamp(63px,11.3vw,91px)}
 .story-hero-inner .display{font-size:clamp(55px,10.3vw,87px)}
 .story-intro h2{font-size:clamp(63px,11vw,91px)}
 .visit-address h2{font-size:clamp(65px,11.3vw,93px)}
 .policies-section h2{font-size:clamp(62px,10.7vw,86px)}
 .service-name h3{font-size:clamp(28px,6.4vw,45px)}
 .preview-service>span{font-size:clamp(26px,6.5vw,42px)}
 .feature-card strong{letter-spacing:.02em}
 .lyric-section{min-height:630px;padding:85px 0 95px}
 .lyric-rule{margin-bottom:75px}
 .lyric-line{font-size:clamp(49px,10.9vw,75px);line-height:1.19;letter-spacing:.032em}
 .lyric-bottom{flex-direction:column;align-items:start;gap:15px;margin-top:80px}
 .lyric-bottom span{font-size:10px}
}
@media(max-width:380px){
 .hero-headline{font-size:clamp(48px,12.3vw,65px)}
 .hero-headline .purple-word{font-size:.82em}
 .lyric-line{font-size:10.6vw}
}

/* Tiny handset refinements, retaining full words on 320–380px screens. */
@media(max-width:380px){
  .experience-section h2{font-size:clamp(42px,13vw,52px)}
  .value-block h2{font-size:clamp(39px,12vw,48px)}
  .final-content h2 i{font-size:.84em}
}

/* V1.2: make the new verified-Booksy proof line readable against the hero. */
.hero-micro{color:#d6c6dd;letter-spacing:.13em}
.hero-micro a:hover,.hero-micro a:focus-visible{color:#f1d6ff}
@media(max-width:600px){.hero-micro{font-size:11px;line-height:1.6;letter-spacing:.09em}}

/* V1.3: Actual Booksy client photography, with an honest offline fallback. */
.hero-photo-unavailable{display:none;position:absolute;inset:0;z-index:1;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;text-align:center;background:radial-gradient(ellipse at 60% 25%,#5b237a66,#150819cc 75%)}
.hero-photo-unavailable b{font:clamp(36px,5vw,70px)/1 var(--anton);letter-spacing:.055em;color:#ecd7fb;max-width:330px}
.hero-photo-unavailable span{font:600 12px/1.6 var(--geo);letter-spacing:.08em;color:#d8c9df;max-width:240px}
.hero-photo-frame img[data-image-unavailable] ~ .hero-photo-unavailable{display:flex}
.hero-photo-frame:has(img[data-image-unavailable]) .photo-wash{display:none}


/* ================================================================
   V1.4 — MOBILE PHOTO FRAMING + PLATFORM-INDEPENDENT ASTERISKS
   Use vector masks instead of U+2733, which iOS may display as a
   green emoji. The SVG always inherits our intended palette.
   ================================================================ */
.asterisk-symbol,.manifesto-asterisk,.experience-icon,.photo-asterisk{
  display:inline-block;
  background-color:currentColor;
  -webkit-mask-image:url('../img/asterisk.svg');
  mask-image:url('../img/asterisk.svg');
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-size:contain;
}
.ticker-track b.asterisk-symbol{
  width:22px;height:22px;
  margin:0 20px;
  vertical-align:middle;
  color:#f6eaff;
  background-color:#f6eaff;
  line-height:0;
}
.manifesto-asterisk{
  width:113px;height:113px;
  color:#160d1b;
  background-color:#160d1b;
}
.experience-icon{
  display:block;
  width:43px;height:43px;
  background-color:var(--purple-hi);
}
.hero-photo-footer .photo-asterisk{
  height:10px;width:10px;
  margin:0 7px;
  padding:0;
  background-color:var(--purple-hi);
}
@media(max-width:640px){
  .ticker-track b.asterisk-symbol{
    width:18px;height:18px;margin:0 9px;
  }
  .manifesto-asterisk{
    width:66px;height:66px;
  }
  /* Keep the full photo frame inside the visible phone viewport.
     The former right:-37% intentionally sent much of it off-screen. */
  .hero-visual{
    inset:auto 3% 4% auto;
    width:88%;
    height:52%;
    opacity:.56!important;
  }
  .hero-photo-frame{
    inset:0 0 8% 0;
  }
  .hero-photo-frame img{
    object-fit:contain;
    object-position:center center;
  }
  .hero-stamp{
    right:0;
    top:3%;
  }
  /* Add a dark fade above the image to protect the booking copy. */
  .hero-photo-frame .photo-wash{
    background:linear-gradient(180deg,#0b071cb8 0%,#120a2066 32%,#09071075 100%),linear-gradient(90deg,#71229f38,transparent 70%);
  }
}

/* V1.5: keep booking copy clear on small phones. */
@media (max-width:640px){.hero-stamp{display:none}}


/* V1.6 — HOME HERO ON PHONES ONLY. Desktop and tablet remain V1.5. */
.hero-copy-mobile{display:none}
@media (max-width:640px){
  .hero-home{height:auto;min-height:0;max-height:none;
    background:radial-gradient(ellipse at 50% 40%,#361646 0%,#1b0c25 42%,#09060d 80%)}
  .hero-grid-lines{opacity:.32;mask-image:linear-gradient(180deg,#0006,#000,#0006)}
  .hero-orb{width:120vw;height:120vw;right:-40%;top:17%;opacity:.38}
  /* The portfolio image is deliberately removed ONLY on phones. */
  .hero-visual{display:none!important}
  .hero-container{display:flex;align-items:center;justify-content:center;
    width:calc(100% - 34px);height:auto;
    min-height:max(640px,calc(100svh - var(--header-h) - 50px));
    padding:42px 0 58px}
  .hero-left{width:100%;padding:0;transform:none;display:flex;flex-direction:column;
    align-items:center;text-align:center}
  .hero-location{justify-content:center;gap:8px;flex-wrap:wrap;
    line-height:1.55;font-size:9px;letter-spacing:.095em;
    margin:0 0 clamp(27px,4.5svh,43px)}
  .hero-headline{width:100%;font-size:clamp(57px,17vw,91px);
    line-height:1.01;text-align:center;white-space:nowrap;letter-spacing:.018em}
  .hero-headline .hero-line{letter-spacing:.014em}
  .hero-headline .hero-line.purple-word{font-size:.88em;letter-spacing:.009em}
  .hero-headline .hero-line.stroke{-webkit-text-stroke:1.6px #f1eafa}
  .hero-lower{width:100%;margin:27px 0 0;display:block}
  .hero-copy-desktop{display:none}
  .hero-copy-mobile{display:block;max-width:300px;margin:0 auto;
    font-size:16px;line-height:1.55;color:#e5d8e9}
  .hero-buttons{width:100%;margin-top:29px;display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;
    align-items:stretch}
  .hero-buttons .btn,.hero-buttons .text-link{min-width:0;width:100%;height:56px;
    min-height:56px;display:flex;align-items:center;justify-content:center;
    padding:11px 5px;white-space:nowrap;font:800 10px/1.2 var(--geo);letter-spacing:.085em}
  .hero-buttons .text-link{border:1px solid #be78e48c;background:#25102e8c;
    color:#f3e9f8;transition:border-color .3s,background .3s,transform .3s}
  .hero-buttons .text-link:hover{background:#5622779c;border-color:var(--purple-hi);transform:translateY(-3px)}
  .hero-buttons .text-link:after,.hero-buttons .text-underline{display:none}
  .hero-micro{max-width:100%;margin-top:38px;font-size:10px;line-height:1.6;
    letter-spacing:.07em;text-align:center}
  .hero-bottom-line{height:50px}
}
@media (max-width:355px){
  .hero-container{width:calc(100% - 26px)}
  .hero-headline{font-size:clamp(53px,16.5vw,59px)}
  .hero-buttons{gap:8px}
  .hero-buttons .btn,.hero-buttons .text-link{font-size:9px;letter-spacing:.065em}
  .hero-location{font-size:8px;letter-spacing:.065em}
}


/* V1.7 — MOBILE-ONLY HERO TUNEUP. Do not alter desktop or tablet. */
@media(max-width:640px){
  /* The location / Booksy line belongs on larger screens, not above mobile's lead. */
  .home-page .hero-location{display:none!important}
  /* More presence without squeezing the shorter message or side-by-side buttons. */
  .home-page .hero-headline{
    font-size:clamp(70px,20.5vw,108px);
    line-height:.99;
    letter-spacing:.007em;
  }
  .home-page .hero-headline .hero-line{letter-spacing:.006em}
  .home-page .hero-headline .hero-line.purple-word{
    font-size:.92em;
    letter-spacing:.001em;
  }
  .home-page .hero-headline .headline-ink{display:inline-block}
}
@media(max-width:355px){
  .home-page .hero-headline{font-size:clamp(68px,21.2vw,74px)}
}
/* V1.8 — smoother mobile hero entrance, no flicker. Each line rises into view
   with the same kinetic direction as the rest of the website. */
@keyframes mobileHeadlineReveal{
  from{opacity:0;transform:translate3d(0,35px,0) scale(.965);filter:blur(9px)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
}
@keyframes mobileHeadlineGlow{
  from{text-shadow:0 0 0 transparent}
  to{text-shadow:0 0 22px rgba(180,64,255,.34)}
}
@media(max-width:640px){
  /* Original .hero-lower p had higher specificity and overrode margin:auto.
     Constrain, center the whole text block, AND center its lines. */
  .home-page .hero-lower .hero-copy-mobile{
    width:100%;max-width:315px;margin:0 auto;
    text-align:center;text-wrap:balance;
    font-size:16px;line-height:1.58;
  }
  .home-page .hero-headline .headline-ink{
    opacity:1;filter:none;text-shadow:none;
  }
  /* Touch devices must not trigger the desktop-only glitch on tap. */
  .home-page .hero-headline .purple-word:hover{animation:none}
}
@media(max-width:640px) and (prefers-reduced-motion:no-preference){
  .home-page .hero-headline .hero-line{
    animation:mobileHeadlineReveal 1.05s cubic-bezier(.16,1,.3,1) both;
  }
  .home-page .hero-headline .hero-line:nth-child(1){animation-delay:.42s}
  .home-page .hero-headline .hero-line:nth-child(2){animation-delay:.58s}
  .home-page .hero-headline .hero-line:nth-child(3){animation-delay:.74s}
  .home-page .hero-headline .purple-word .headline-ink{
    animation:mobileHeadlineGlow 1.4s ease-out 1.05s both;
  }
}
@media(max-width:640px) and (prefers-reduced-motion:reduce){
  .home-page .hero-headline .hero-line,
  .home-page .hero-headline .headline-ink{
    opacity:1!important;animation:none!important;transform:none!important;
    filter:none!important;text-shadow:none!important;
  }
}

/* V1.8 — BFCache / history-safe wipe: visible ONLY while a click is leaving.
   In particular, a restored page without .is-page-leaving cannot show purple. */
body:not(.is-page-leaving) .page-transition{
  visibility:hidden!important;transform:translateY(110%)!important;
  transition:none!important;
}
body.is-page-leaving .page-transition{visibility:visible}
