*{box-sizing:border-box}html{background:#000;color:#fff}body{margin:0;font:12px Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}#ascii{position:fixed;inset:0;width:100%;height:100svh;pointer-events:none;z-index:0}header,footer{position:fixed;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center;z-index:5}header{top:25px}header a{background:#000;padding:4px 0}header a:first-child{font-size:16px;letter-spacing:-.7px}footer{bottom:20px;font-size:10px}footer span,footer button{background:#000}footer button{border:0;padding:5px;cursor:pointer}main{position:relative;min-height:190svh;padding-top:22svh;padding-bottom:28svh}.project{position:relative;padding-bottom:30px;width:30vw;margin-left:7vw;margin-bottom:28svh}.p2{margin-left:65vw;width:27vw}.p3{margin-left:18vw;width:34vw;margin-bottom:0}.reveal{display:block;position:relative;width:100%;aspect-ratio:1.6;border:0;padding:0;background:#fff;overflow:hidden;cursor:crosshair}.reveal img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transform:scale(1.045);transition:transform 800ms cubic-bezier(.2,.7,.1,1)}.cover{position:absolute;inset:0;background:#fff;transform-origin:top;transition:transform 600ms cubic-bezier(.76,0,.24,1)}.project:hover .cover,.project:focus-within .cover,.project.open .cover{transform:scaleY(0)}.project:hover img,.project:focus-within img,.project.open img{transform:scale(1)}.visit{display:block;position:absolute;right:0;bottom:0;opacity:0;visibility:hidden;transition:opacity 200ms;background:#000;padding:3px}.project:hover .visit,.project:focus-within .visit,.project.open .visit{opacity:1;visibility:visible}a:focus-visible,button:focus-visible{outline:2px solid #777;outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:650px){header,footer{left:18px;right:18px}header{top:18px}footer{bottom:14px;font-size:8px}.project{width:61vw;margin-left:7vw;margin-bottom:38svh}.p2{width:60vw;margin-left:33vw}.p3{width:66vw;margin-left:9vw;margin-bottom:0}main{padding-top:23svh;min-height:180svh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}


/* Aligned project grid. */
main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:28px;padding:30svh 7vw 18svh;min-height:100svh}
.project,.p1,.p2,.p3{width:auto;margin:0;padding-bottom:30px;min-width:0}
@media(max-width:800px){main{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:24svh}}
@media(max-width:550px){main{grid-template-columns:1fr;gap:32px;padding:22svh 9vw 16svh}.project,.p1,.p2,.p3{width:auto;margin:0}}
.wordmark{position:relative;background:linear-gradient(90deg,#ff426e,#b458ff,#448aff,#51ffdb,#eaff65,#ff9157,#ff426e)!important;background-size:300% 100%!important;background-clip:text!important;-webkit-background-clip:text!important;color:transparent;animation:spectrum 9s linear infinite,breath 5s ease-in-out infinite}
.wordmark:after{content:attr(data-text);position:absolute;inset:4px 0;pointer-events:none;background:inherit;background-clip:text;-webkit-background-clip:text;color:transparent;filter:blur(5px);opacity:.85}
@keyframes spectrum{0%{background-position:0% 50%}100%{background-position:300% 50%}}
@keyframes breath{0%,100%{filter:brightness(.85)}50%{filter:brightness(1.65)}}
.about{position:relative;z-index:1;margin-top:12svh;padding:100px 7vw 150px;background:#000}
.about-inner{max-width:760px;margin:auto}
.about h2{font:12px Arial,sans-serif;margin:0 0 38px;color:#aaa}
.about p{font-size:clamp(25px,3.5vw,44px);line-height:1.2;letter-spacing:-1.2px;margin:0 0 30px}
.about .about-small{font-size:16px;line-height:1.6;letter-spacing:0;color:#aaa;max-width:540px}
.about a{display:inline-block;margin-top:15px;padding-bottom:6px;border-bottom:1px solid #777;font-size:13px}
@media(prefers-reduced-motion:reduce){.wordmark{animation:none}}
/* Portfolio expansion: aligned side columns leave a clear trunk corridor. */
html{scroll-behavior:smooth;scroll-padding-top:90px}
main{display:block;padding:26svh 7vw 16svh;min-height:100svh}
.grid-note{display:flex;justify-content:space-between;margin-bottom:28px;font:9px monospace;color:#aaa}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20vw;row-gap:8svh}
.project{padding-bottom:40px}
.visit{display:flex;justify-content:space-between;gap:10px;align-items:center;left:0;right:0;opacity:1;visibility:visible;font-size:10px;min-height:38px;padding:10px 0;background:#000}
.visit span:last-child{color:#999;font-size:9px}
.visit:hover span:last-child{color:white}
.inquiry{position:relative;z-index:1;background:#090909;border-top:1px solid #252525;padding:90px 7vw 130px;display:grid;grid-template-columns:1fr 1fr;gap:8vw}
.inquiry-heading>p:first-child{font:10px monospace;color:#999}.inquiry h2{font-size:clamp(35px,4.5vw,66px);font-weight:400;line-height:1;letter-spacing:-2.5px;margin:30px 0}.inquiry-heading p{font-size:15px;line-height:1.6;color:#aaa}.inquiry-heading a{display:inline-block;margin-top:20px;font-size:12px}.inquiry form label{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;font-size:11px;color:#bbb}.inquiry input,.inquiry textarea,.inquiry select{font:14px Arial,sans-serif;color:white;background:#111;border:1px solid #444;padding:13px;width:100%;border-radius:0}.inquiry textarea{resize:vertical;min-height:120px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.prepare{border:0;background:white;color:black;padding:17px 25px;font:13px Arial,sans-serif;cursor:pointer}.form-note{font-size:11px;color:#999;line-height:1.6;max-width:470px}#brief-status{font-size:12px;line-height:1.5;color:#ccc}#brief-result{border-top:1px solid #444;margin-top:30px;padding-top:20px}#brief-preview{font:12px/1.7 monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#ddd}.brief-actions{display:flex;flex-wrap:wrap;gap:12px}.brief-actions>*{border:1px solid #666;background:transparent;padding:12px;color:white;font-size:11px;cursor:pointer}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:800px){.project-grid{column-gap:7vw}.visit{font-size:10px}.visit span:last-child{font-size:8px}.inquiry{grid-template-columns:1fr;gap:35px}}
@media(max-width:550px){main{padding:22svh 9vw 12svh}.grid-note{font-size:8px;gap:20px}.project-grid{grid-template-columns:1fr;gap:34px}.project{padding-bottom:40px}.form-pair{grid-template-columns:1fr;gap:0}.inquiry{padding:60px 7vw 100px}.inquiry h2{letter-spacing:-1.5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.project{padding-bottom:0!important}.reveal{cursor:pointer}.reveal:focus-visible{outline:2px solid white;outline-offset:7px}

@media(min-width:551px){.project-grid>.project:last-child:nth-child(odd){grid-column:1/-1;width:calc((100% - 20vw)/2);justify-self:center}}@media(min-width:551px) and (max-width:800px){.project-grid>.project:last-child:nth-child(odd){width:calc((100% - 7vw)/2)}}
.inquiry{display:block;background:#000;padding:9vw 7vw 130px;border-top:1px solid #fff}.inquiry-heading>p:first-child{display:none}.inquiry h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(70px,14vw,220px);line-height:.78;letter-spacing:-.085em;margin:0 0 60px;max-width:1200px}.inquiry-heading>p{font-size:20px;max-width:500px}.inquiry-heading>a{font-size:clamp(16px,2.4vw,34px);border-bottom:1px solid white;padding-bottom:12px;margin:10px 0 70px}.inquiry>div:last-child{max-width:800px;margin-left:auto}.inquiry form label{font-family:monospace;font-size:12px;color:#fff;gap:12px;margin-bottom:35px}.inquiry input,.inquiry textarea,.inquiry select{background:#000;border:0;border-bottom:1px solid #777;padding:15px 0;font-size:clamp(20px,2.2vw,30px);color:#fff}.inquiry textarea{min-height:150px}.prepare{display:block;width:100%;text-align:left;background:transparent;border-top:1px solid white;border-bottom:1px solid white;color:white;font-size:clamp(28px,4vw,58px);letter-spacing:-.06em;padding:25px 0;transition:padding .2s,background .2s}.prepare:hover{padding-left:20px;background:#fff;color:#000}.form-note{margin-top:22px}.inquiry .form-pair{gap:45px}@media(max-width:550px){.inquiry{padding:75px 7vw 110px}.inquiry h2{font-size:20vw;margin-bottom:35px}.inquiry-heading>a{margin-bottom:45px}.inquiry input,.inquiry textarea,.inquiry select{font-size:20px}.inquiry .form-pair{gap:0}}
/* Introduction precedes the work, with the living ASCII scene behind it. */
.intro-studio{min-height:100svh;margin:0;padding:180px 7vw 100px;display:flex;align-items:center;background:transparent;pointer-events:none}.intro-studio .about-inner{width:100%;max-width:1000px;margin:0}.intro-studio h1{font:500 clamp(38px,5.5vw,84px)/1.05 Georgia,serif;letter-spacing:-.045em;margin:0 0 28px;text-shadow:0 2px 22px #000}.intro-studio p{font-size:clamp(22px,3.1vw,44px);line-height:1.25;letter-spacing:-.03em;text-shadow:0 2px 12px #000,0 0 28px #000}.intro-studio~main{padding-top:12svh}.contact-glow{font-size:16px;letter-spacing:-.7px}.ai-honesty{position:relative;z-index:1;background:#000;padding:100px 7vw 120px;display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;border-top:1px solid #282828}.ai-honesty h2{font:400 clamp(40px,6vw,88px)/1 Georgia,serif;letter-spacing:-.06em;margin:0}.ai-honesty p{font-size:clamp(18px,2vw,26px);line-height:1.5;margin:0 0 25px;color:#ccc}.inquiry h2{font-size:clamp(44px,6vw,88px);line-height:.96;letter-spacing:-.06em;margin-bottom:35px}.inquiry-heading>a{font-size:clamp(16px,1.8vw,24px);margin-bottom:45px}.inquiry input,.inquiry textarea,.inquiry select{font-size:20px}.prepare{font-size:30px}.inquiry-heading>p{font-size:17px}@media(max-width:650px){.intro-studio{padding:130px 7vw 80px}.intro-studio h1{font-size:11vw}.intro-studio p{font-size:6.5vw}.ai-honesty{grid-template-columns:1fr;gap:30px;padding:70px 7vw}.inquiry h2{font-size:13vw}.contact-glow{font-size:16px}.prepare{font-size:26px}}
.intro-studio h1,.intro-studio p{-webkit-text-stroke:4px #000;paint-order:stroke fill}
/* A quiet frame for the tree. */
.intro-studio{align-items:flex-end;padding-bottom:13svh}.intro-studio .about-inner{max-width:500px}.intro-studio p{font-size:clamp(16px,1.8vw,24px);line-height:1.5;letter-spacing:-.025em;color:#ccc}.intro-studio h1.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%)}.project-grid{column-gap:25vw;row-gap:12svh;justify-items:center}.project-grid>.project{width:72%}.project-grid>.project:last-child:nth-child(odd){width:calc((100% - 25vw)*.36)}.ai-honesty{padding:70px 12vw;gap:8vw;border-top:0;grid-template-columns:180px 1fr}.ai-honesty h2{font:400 24px/1.3 Arial,sans-serif;letter-spacing:-.6px;color:#bbb}.ai-honesty p{font-size:16px;line-height:1.8;color:#999;max-width:580px}.inquiry{padding:70px 12vw 120px;border-color:#202020}.inquiry h2{font:400 clamp(28px,3vw,42px)/1.1 Arial,sans-serif;letter-spacing:-1px;margin-bottom:25px}.inquiry-heading>p{font-size:15px;color:#999}.inquiry-heading>a{font-size:16px;color:#bbb;margin-bottom:55px}.inquiry>div:last-child{max-width:680px}.inquiry form label{font-size:11px;color:#999;margin-bottom:25px}.inquiry input,.inquiry textarea,.inquiry select{font-size:16px;border-color:#333;padding:12px 0}.prepare{font-size:22px;border-color:#555;padding:20px 0}.form-note{color:#777}.inquiry .form-pair{gap:25px}@media(max-width:650px){.intro-studio{padding:130px 8vw 100px}.intro-studio p{font-size:18px}.project-grid{column-gap:8vw}.project-grid>.project{width:72%}.project-grid>.project:last-child:nth-child(odd){width:72%}.ai-honesty{grid-template-columns:1fr;gap:18px;padding:60px 8vw}.ai-honesty p{font-size:15px}.inquiry{padding:60px 8vw 100px}.inquiry h2{font-size:32px}.inquiry .form-pair{gap:0}}
@media(min-width:551px) and (max-width:650px){.project-grid>.project:last-child:nth-child(odd){width:calc((100% - 8vw)*.36)}}
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:7vw;row-gap:9svh;align-items:center}.project-grid>.project{width:100%;grid-column:auto;grid-row:auto}.project-grid>.project:nth-child(1){grid-area:1/1}.project-grid>.project:nth-child(2){grid-area:1/3}.project-grid>.project:nth-child(3){grid-area:2/1}.project-grid>.project:nth-child(4){grid-area:2/3}.project-grid>.project:last-child:nth-child(odd){grid-area:1/2/3/3;width:100%;align-self:center}.inquiry{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:6vw;align-items:start;padding:65px 9vw 90px}.inquiry-heading h2{font-size:32px;max-width:260px}.inquiry-heading>a{font-size:14px;margin:20px 0 0}.inquiry>div:last-child{width:100%;margin:0}.inquiry form label{margin-bottom:18px;gap:4px}.inquiry input,.inquiry select,.inquiry textarea{font-size:15px;padding:9px 0}.inquiry textarea{min-height:75px}.prepare{font-size:18px;padding:14px 0}.form-note{font-size:10px;margin-bottom:0;line-height:1.5}.inquiry .form-pair{gap:20px}.inquiry-heading>p{font-size:14px}#brief-status:empty{display:none}@media(max-width:650px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 12vw}.project-grid>.project:nth-child(1){grid-area:1/1}.project-grid>.project:nth-child(2){grid-area:1/2}.project-grid>.project:nth-child(3){grid-area:3/1}.project-grid>.project:nth-child(4){grid-area:3/2}.project-grid>.project:last-child:nth-child(odd){grid-area:2/1/3/3;width:calc((100% - 12vw)/2)}.inquiry{grid-template-columns:1fr;gap:30px;padding:55px 8vw 85px}.inquiry-heading h2{font-size:28px;max-width:none;margin-bottom:15px}.inquiry-heading>a{margin:0}.inquiry .form-pair{grid-template-columns:1fr 1fr;gap:15px}}
#studio-loader{position:fixed;inset:0;background:#000;color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;transition:opacity .3s;isolation:isolate}.loader-name{display:flex;align-items:center;justify-content:center;height:110px;gap:clamp(8px,2vw,30px);font-size:clamp(48px,8vw,110px);line-height:1}.loader-name span{display:inline-block;width:.75em;text-align:center}#loader-studios{font:500 clamp(18px,3vw,35px)/1.4 Arial,sans-serif;min-height:50px;letter-spacing:.16em;text-align:center}#loader-percent{font:400 20px/1.4 monospace;letter-spacing:0;min-width:60px;text-align:center}#loader-percent:after{inset:0}#skip-loader{position:absolute;bottom:35px;background:transparent;border:0;color:#aaa;cursor:pointer;padding:12px;font-size:12px}#studio-loader.leaving{opacity:0;pointer-events:none}html:has(#studio-loader:not(.leaving)){overflow:hidden}@media(prefers-reduced-motion:reduce){#studio-loader{transition:none}}
/* Stable hover target: all visual layers are contained and pointer-transparent. */
.reveal{background:#c9c9c5;isolation:isolate;contain:paint;aspect-ratio:1.6}.reveal img{position:absolute;inset:0;width:100%;height:100%;transform:none!important;transition:none!important;pointer-events:none}.reveal .cover{background:#c9c9c5;transform:none!important;opacity:1;transition:opacity 350ms ease;pointer-events:none;z-index:1}.project:hover .cover,.project:focus-within .cover{opacity:0}.project-caption{position:absolute;inset:auto 0 0;z-index:2;padding:35px 15px 15px;background:linear-gradient(transparent,#000e 45%);color:#fff;display:flex;flex-direction:column;gap:5px;opacity:0;transition:opacity 250ms;pointer-events:none}.project-caption strong{font-size:18px;letter-spacing:-.5px}.project-caption>span{font:11px/1.4 Arial,sans-serif;color:#ddd}.project:hover .project-caption,.project:focus-within .project-caption{opacity:1}@media(max-width:650px){.project-caption{padding:25px 8px 8px}.project-caption strong{font-size:13px}.project-caption>span{font-size:9px}}@media(hover:none){.project-caption{opacity:1;padding-top:20px;background:linear-gradient(transparent,#000b)}}
.direction-mark{display:inline-block;font-family:'Arial Black',Arial,sans-serif;font-weight:900;font-size:1.35em;line-height:.8;-webkit-text-stroke:.65px currentColor;vertical-align:-.06em;margin-left:.15em}.inquiry select{color-scheme:dark;background:#090909;color:#eee;border:1px solid #444;padding:12px;cursor:pointer}.inquiry select option{background:#111;color:#eee;padding:12px}@supports(appearance:base-select){.inquiry select,.inquiry select::picker(select){appearance:base-select}.inquiry select::picker(select){background:#090909;color:#eee;border:1px solid #555;border-radius:0;padding:5px}.inquiry select option{padding:12px;font:14px Arial}.inquiry select option:hover,.inquiry select option:checked{background:#333;color:#fff}.inquiry select::picker-icon{color:#eee;font-weight:900}}
/* Center the service choice within the contact field. */
.inquiry select[name="service"]{text-align:center;text-align-last:center}.inquiry select[name="service"]::picker-icon{position:absolute;right:14px}.inquiry select[name="service"]{position:relative;justify-content:center;padding-inline:35px}.inquiry select[name="service"] option{text-align:left;text-align-last:left}

/* Lowercase interface copy; preserve what visitors type into their brief. */
body{text-transform:lowercase}input,textarea,#brief-preview{text-transform:none}input::placeholder,textarea::placeholder{text-transform:lowercase}
#studio-cursor{position:fixed!important;left:0;top:0;width:26px;height:26px;z-index:10001;pointer-events:none;font:400 30px/26px monospace;text-align:center;opacity:0;will-change:transform;user-select:none}
#studio-cursor:after{inset:0}
@media(hover:hover) and (pointer:fine){html.has-studio-cursor,html.has-studio-cursor *{cursor:none!important}#studio-cursor.visible{opacity:1}}
@media(prefers-reduced-motion:reduce){#studio-cursor{animation:none}}

/* Open windows keep the tree visible until a project is explored. */
.project-grid .reveal{background:transparent;border:1px solid rgba(255,255,255,.65);transition:border-color 250ms ease}
.project-grid .reveal .cover{display:none}
.project-grid .reveal img{opacity:0;transition:opacity 350ms ease!important}
.project-grid .reveal:hover,.project-grid .reveal:focus-visible{border-color:#fff}
.project-grid .reveal:hover img,.project-grid .reveal:focus-visible img{opacity:1}
.project-grid .project-caption{transition:opacity 250ms ease}
@media(hover:none){.project-grid .reveal img{opacity:1}.project-grid .project-caption{opacity:1}}
@media(prefers-reduced-motion:reduce){.project-grid .reveal img{transition:none!important}}

@font-face{font-family:NocturneFraunces;src:url('nocturne/fraunces.ttf');font-style:italic;font-weight:100 900;font-display:swap}
.project-grid{align-items:start}
.project-grid .project{transition:width .45s ease;position:relative}
.project-grid .reveal{height:clamp(170px,15vw,260px);aspect-ratio:auto;transition:height .5s cubic-bezier(.2,.7,.1,1),border-color .25s;background:#000}
.project-grid .project:hover,.project-grid .project:focus-within{z-index:3}
.project-grid .project:hover .reveal,.project-grid .project:focus-within .reveal{height:440px}
.project-grid .reveal img{height:65%;object-position:center;object-fit:cover}
.project-grid .project-caption{padding:75px 24px 25px;background:linear-gradient(transparent,#000 28%);gap:15px}
.project-grid .project-caption strong{font-size:26px;line-height:1.1}
.project-grid [data-project="nocturne"] .project-caption strong{font:italic 550 44px/.95 NocturneFraunces;letter-spacing:-.055em;color:#fff5e2}
.project-grid .project-description{font:13px/1.65 Arial,sans-serif;color:#c9c3c7;max-width:420px}
@media(hover:none){.project-grid .reveal{height:440px}}
@media(max-width:650px){.project-grid{grid-template-columns:1fr;gap:30px}.project-grid>.project:nth-child(n){grid-area:auto;width:100%}.project-grid .reveal{height:420px}.project-grid .reveal img,.project-grid .project-caption{opacity:1}.project-grid .project-caption{padding:70px 22px 24px}.project-grid .project-description{font-size:13px}}
.project-grid [data-project="nocturne"] .project-caption strong{text-transform:none}

/* Expansion floats above the grid instead of relaying out every row. */
@media(hover:hover) and (min-width:651px){
 .project-grid .project{height:clamp(170px,15vw,260px)}
 .project-grid .reveal{position:absolute;top:0;left:0;contain:layout paint}
 .project-grid .project:hover .reveal,.project-grid .project:focus-within .reveal{height:440px}
}

/* Boundary: stone, paper and royal blue. */
.project-grid [data-project="boundary"] .project-caption strong{font:400 44px/1 "Times New Roman",Times,serif;letter-spacing:-.045em;text-transform:none;color:#fff}
.project-grid [data-project="boundary"] .reveal{border-color:#809bff;transition:height .5s cubic-bezier(.2,.7,.1,1),border-color .25s,box-shadow .4s}
.project-grid [data-project="boundary"] .reveal:hover,.project-grid [data-project="boundary"] .reveal:focus-visible{border-color:#a9bbff;box-shadow:0 0 28px #183bba38}
.project-grid [data-project="boundary"] .reveal img{object-position:center 40%;transform:scale(1.025);transition:opacity .35s ease,transform 1.2s ease!important}
.project-grid [data-project="boundary"] .reveal:hover img,.project-grid [data-project="boundary"] .reveal:focus-visible img{transform:scale(1)}
.project-grid [data-project="boundary"] .project-caption{background:linear-gradient(transparent,#000 30%)}
@media(prefers-reduced-motion:reduce){.project-grid [data-project="boundary"] .reveal,.project-grid [data-project="boundary"] .reveal img{transition:none!important;transform:none}}
