/* A single, locally hosted type family throughout the site. */
body,button,input,textarea,select,h1,h2,h3,h4,h5,h6,.serif{font-family:Geologica,Arial,sans-serif;font-style:normal}
.serif{font-style:normal;font-weight:700;letter-spacing:inherit}
h1,h2,h3,h4,h5,h6{font-weight:700}
.section-top h2,.studio-intro h2{font-weight:700;letter-spacing:-.045em;line-height:1.08}
.section-top h2 .serif,.studio-intro h2 .serif{font-size:inherit;letter-spacing:inherit}
.hero{position:relative;background:#090e11}
.hero-top,.hero-bottom{position:relative;z-index:4}
.hero-body{display:block;isolation:isolate;min-height:690px}
.hero-art{position:absolute;inset:-45px -5vw -20px;width:auto;height:auto;z-index:0;opacity:1;pointer-events:none}
.hero-art .logo-stage{position:absolute;inset:0;width:100%;height:100%;border-radius:0;isolation:auto;pointer-events:auto;cursor:crosshair}
.hero-art .logo-stage:before{inset:0;background:radial-gradient(ellipse at 58% 44%,#143b4725,transparent 70%);z-index:-1}
.hero-art .logo-stage.material-active:before{background:radial-gradient(ellipse at 58% 44%,#12434d35,transparent 72%)}
.hero-art .logo-stage canvas{inset:0;width:100%;height:100%;opacity:0}
.hero-art .logo-stage.logo-ready canvas{opacity:1}
.hero-art .logo-fallback{height:82%;max-width:72%;top:7%;left:58%;opacity:.5;filter:drop-shadow(0 0 24px #47c8d477);transform:translateX(-50%) perspective(900px) rotateY(-12deg)}
.hero-art .logo-stage.logo-ready .logo-fallback{opacity:0}
.hero-copy{position:relative;z-index:3;width:100%;padding:105px 0 100px;pointer-events:none}
.hero-copy h1{font-weight:900;font-size:clamp(66px,8.4vw,138px);line-height:.98;letter-spacing:-.055em;margin:0 0 32px;text-shadow:0 3px 28px #071014e0,0 1px 3px #071014}
.hero-copy h1 span{font-size:.86em;letter-spacing:-.055em;color:#eeede6}
.hero-copy .tiny-label{font-weight:500;letter-spacing:2px;color:#a7c2c8;text-shadow:0 1px 8px #081014}
.hero-description{color:#d0ddde;text-shadow:0 2px 10px #071014,0 2px 4px #071014;font-weight:400}
.hero-actions{position:relative;z-index:5}
.hero-copy .button,.hero-copy .text-link{pointer-events:auto}
.hero-copy .text-link{background:#0a11133d;text-shadow:0 1px 5px #071014}
.hero-body:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#090e113b,transparent 62%),linear-gradient(0deg,#090e11,transparent 16%,transparent 92%,#090e1155)}
.logo-floor,.hero-art .art-tag,.hero-art .axis,.hero-art .art-number,.hero-art .art-grid{display:none}
.service-list h3{font-weight:600;letter-spacing:-.035em}
.process-grid h3{font-weight:700;letter-spacing:-.035em}
.contact h2{font-weight:800;letter-spacing:-.055em}
.contact h2 .serif{font-size:1em;font-weight:800;letter-spacing:inherit}
.footer-brand{font-family:Geologica,Arial,sans-serif}
@media(min-width:1600px){.hero-copy h1{font-size:145px}.hero-body{min-height:760px}}
@media(max-width:1000px){.hero-body{min-height:620px}.hero-copy{padding:105px 0 90px}.hero-copy h1{font-size:9vw}.hero-copy h1 span{font-size:.86em}.hero-art{inset:-35px -6vw -10px}}
@media(max-width:700px){.hero-body{min-height:670px}.hero-copy{padding:90px 0 85px}.hero-copy h1{font-size:clamp(43px,12.1vw,78px);line-height:1.05;letter-spacing:-.055em;margin-bottom:29px}.hero-copy h1 span{font-size:.86em;letter-spacing:-.055em}.hero-art{inset:-30px -7vw -15px;width:auto;height:auto;top:-30px;right:-7vw;opacity:1}.hero-art .logo-stage{inset:0}.hero-art .logo-fallback{height:72%;max-width:85%;top:15%;left:55%}.hero-body:after{background:linear-gradient(0deg,#090e11,transparent 20%,#090e1122 55%,transparent 88%,#090e1144)}.hero-description{font-size:14px;line-height:1.8}.hero-copy .tiny-label{font-size:8px;letter-spacing:1.2px}.section-top h2{font-size:35px;letter-spacing:-.04em}.studio-intro h2{font-size:37px}.contact h2{font-size:12.3vw;letter-spacing:-.055em}.contact h2 .serif{font-size:1em}}

.hero-art .logo-stage{cursor:grab;touch-action:pan-y}.hero-art .logo-stage.dragging{cursor:grabbing}.hero-art .logo-stage:focus-visible{outline:2px solid #ff0000;outline-offset:-6px}@media(hover:hover){.hero-art .logo-stage{touch-action:none}}

/* Geologica's wide letterforms keep consistent typography without crowding. */
body{font-weight:300}.hero-copy h1{font-weight:700;font-size:clamp(65px,8.2vw,132px);letter-spacing:-.055em}.hero-copy h1 span{font-size:1em}.hero-description{font-size:15px;line-height:1.9;font-weight:300}.header nav{gap:20px;font-size:10px}.section-top h2,.studio-intro h2{font-size:clamp(28px,3.5vw,52px)}.contact h2{font-size:clamp(36px,6.8vw,108px)}@media(max-width:700px){.hero-copy h1{font-size:clamp(39px,11.5vw,76px)}.hero-description{font-size:12px}.section-top h2,.studio-intro h2{font-size:28px}.contact h2{font-size:8.3vw}.hero-actions{gap:15px}.hero-actions .text-link{font-size:8px}.hero-actions .button{font-size:9px}}


.studio-founder{margin:30px 0;padding:24px 0;border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25}.studio-founder .eyebrow{color:#ff0000;display:block;font-size:9px}.studio-founder h3{font-size:clamp(23px,2.8vw,36px);font-weight:600;letter-spacing:-.035em;margin:10px 0}.founder-role{font-size:11px;color:#a8a8a0}.photo-open:focus-visible{outline:2px solid #ff0000;outline-offset:4px}

.discipline-strip,.contact,.studio-stamp{color:#fff}.contact .status-dot{background:#fff}.contact-bottom{border-color:#ffffff55}.contact .back-top{border-color:#ffffff80}.film-icon{width:29px;height:29px;flex:0 0 29px}.form-honeypot{display:none!important}.form-disclosure{font-size:11px;line-height:1.7;color:#aaa}.form-disclosure a{text-decoration:underline}.thanks-page{max-width:760px;margin:12vh auto;padding:35px}.thanks-page h1{font-size:clamp(36px,7vw,70px)}.thanks-page p{line-height:1.8}.thanks-page .button{margin:25px 0}@media(max-width:700px){.film-icon{width:23px;height:23px;flex-basis:23px}}

.file-upload{border:1px dashed #ffffff40;padding:18px;border-radius:8px;min-width:0}.optional-label{font-size:11px;font-weight:300;color:#aaa}.file-upload #file-help,.file-privacy{font-size:11px;line-height:1.7;color:#aaa;margin:9px 0 14px}.file-upload input[type=file]{font-size:12px;max-width:100%;width:100%;padding:10px 0;border:0;background:transparent}.file-upload input::file-selector-button{font:inherit;color:#fff;background:#343434;border:1px solid #666;border-radius:5px;padding:12px 15px;margin-right:12px;cursor:pointer}.file-selection{display:flex;gap:12px;align-items:center;justify-content:space-between}.file-selection p{font-size:12px;overflow-wrap:anywhere;min-width:0}.file-selection button{background:transparent;border:0;color:#fff;font:inherit;font-size:11px;text-decoration:underline;cursor:pointer;flex-shrink:0;padding:10px 0}.file-error{color:#ff9c8f}#upload-progress{width:100%;height:8px;accent-color:#ff0000}#inquiry-form button:disabled{opacity:.5;cursor:wait}.file-privacy{margin-bottom:0!important}

/* Full brand lockup leads the hero; supporting copy sits beneath it. */
.hero-body{min-height:760px}.hero-copy{padding:540px 0 32px;text-align:center}.hero-copy .tiny-label{position:absolute;top:15px;left:0;right:0}.hero-copy h1.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-art{inset:30px 0 auto;height:510px}.hero-actions{justify-content:center}.hero-description{margin:0 0 22px}.hero-art .logo-fallback{height:92%;max-width:85%;top:4%;left:50%;opacity:.8;filter:none;transform:translateX(-50%)}.hero-body:after{display:none}.footer{flex-wrap:wrap}.footer-founder{display:block;flex:0 0 100%;text-align:center;font-size:10px;font-weight:300;color:#a1a1a1;line-height:1.5;margin-top:22px}
@media(max-width:700px){.hero-body{min-height:640px}.hero-art{inset:35px 0 auto;height:390px}.hero-copy{padding:435px 0 20px}.hero-copy .tiny-label{top:12px}.hero-description{font-size:13px}.hero-actions{flex-wrap:wrap}.footer-founder{font-size:10px;margin-top:12px}}

/* The interactive canvas extends to the divider below the hero actions. */
.hero-body{min-height:920px}.hero-art{inset:30px 0 0;height:auto}.hero-copy{padding:780px 0 44px}.hero-description{white-space:nowrap;font-size:clamp(11px,2.9vw,18px);line-height:1.6}.hero-actions{margin-top:22px}.hero-art .logo-fallback{height:74%;top:7%;max-width:85%}
@media(max-width:700px){.hero-body{min-height:700px}.hero-art{inset:35px 0 0;height:auto}.hero-copy{padding:560px 0 36px}.hero-description{font-size:clamp(10px,2.9vw,13px);letter-spacing:-.025em}.hero-actions{margin-top:20px}.hero-art .logo-fallback{height:auto;width:82%;max-height:74%;object-fit:contain;top:10%}}
