@font-face{font-family:Areal;src:url(/portfolio/fonts/Areal.woff2) format("woff2");font-display:swap}:root{font-family:Areal,Arial,sans-serif;color:#333;background:#fff;--background:#fff;--foreground:#000;--gray1:#f7f7f7;--gray2:#ededed;--gray3:#dedede;--gray4:#999;--gray5:#696969;--gray6:#333;font-variation-settings:"DRKM" 0}*{box-sizing:border-box;font-synthesis:none}html,body,#root{margin:0;height:100%;-webkit-font-smoothing:antialiased}body{overflow:hidden}main{height:100dvh;overflow:auto;scrollbar-width:thin}.page-inner{max-width:1128px;margin:0 auto;padding:65px 64px}h1,h2,p{margin:0}a{color:inherit;text-decoration:none}button,input,summary{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;padding:0}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--gray5);outline-offset:5px}h1:focus{outline:none}a:hover,button:hover{color:var(--foreground)}.hero{margin-bottom:30px}h1{font-size:28px;line-height:1.2;letter-spacing:-.02em;font-weight:700}.hero-copy{max-width:560px;margin-top:16px;font-size:16px;line-height:1.5}.hero-copy .text-link{white-space:nowrap}.hero-copy p+p{margin-top:8px;color:var(--gray5)}.text-link{text-decoration:underline;text-decoration-color:var(--gray3);text-underline-offset:4px}.text-link:hover{text-decoration-color:currentColor}.hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:15px;font-size:13px}.button-link{display:inline-block;line-height:1.4;text-decoration:underline;text-decoration-color:var(--gray3);text-underline-offset:4px}.button-link:hover{text-decoration-color:currentColor}.work-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-bottom:25px;min-height:24px}.actions{display:flex;align-items:center;gap:8px;font-size:12.5px}.actions>button{font-size:24px;line-height:1}details{position:relative}summary{cursor:pointer;list-style:none;background:var(--gray1);border-radius:3px;padding:4px 10px;font-weight:700}summary::-webkit-details-marker{display:none}details nav{position:absolute;right:0;top:25px;z-index:5;width:180px;border:1px solid var(--gray3);background:var(--background);padding:5px}details nav a{display:block;padding:10px}details nav a:hover{background:var(--gray1)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 20px;width:100%}.block{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.block-art{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--gray3);background:var(--background);isolation:isolate}.block-space{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--gray3);pointer-events:none}.block-space path,.block-space ellipse{vector-effect:non-scaling-stroke;stroke-width:1;stroke:none}.block-art{--room-floor-back:#f7f7f7;--room-floor-front:#fcfcfc;--room-pool:#fff;--room-shadow:#00000038}.room-floor-back{stop-color:var(--room-floor-back)}.room-floor-front{stop-color:var(--room-floor-front)}.room-pool-center{stop-color:var(--room-pool);stop-opacity:.9}.room-pool-edge{stop-color:var(--room-pool);stop-opacity:0}.block-space .room-lines{stroke:var(--gray3);opacity:.4;stroke-linecap:round;stroke-linejoin:round}.tile-object{position:absolute;pointer-events:none}.contact-shadow{position:absolute;left:50%;height:4.5%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,var(--room-shadow),transparent);pointer-events:none;opacity:.55;will-change:transform,opacity;transition:transform .6s var(--ease-lift),filter .6s var(--ease-lift);animation:shadow-bob 8s var(--ease-float) infinite alternate var(--bob-delay)}.block-art{container-type:size;--ease-lift:cubic-bezier(.2,.7,.2,1);--ease-float:cubic-bezier(.37,0,.63,1)}.tile-object{transition:translate .6s var(--ease-lift)}.tile-object>*{will-change:transform;animation:bob 8s var(--ease-float) infinite alternate var(--bob-delay)}.block:hover .tile-object,.block:focus-visible .tile-object{translate:0 -3cqh}.block:hover .contact-shadow,.block:focus-visible .contact-shadow{transform:translate(-50%,-50%) scale(.82);filter:opacity(.7)}.live-object,.foryou-icon{position:relative}.afterword-icon{position:relative;aspect-ratio:1;perspective:700px}.afterword-book{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.7,.2,1)}.afterword-pages{position:absolute;left:18.5%;top:7.8%;width:63.5%;height:84.8%;border-radius:1% 4% 4% 1%;background:linear-gradient(90deg,#c7bba6,#eee7d9 8%,#f5f0e5 45%,#ebe3d3);box-shadow:1px 1px #c8bda8,2px 2px #eee5d5,3px 3px #a99b85}.afterword-writing{display:block;width:100%;height:100%}.afterword-cover{position:absolute;inset:0;transform-origin:17.5% 50%;transform-style:preserve-3d;transform:translateZ(4px);transition:transform .85s cubic-bezier(.2,.7,.2,1)}.afterword-cover-front{backface-visibility:hidden}.afterword-cover-back{position:absolute;left:17%;top:6.4%;width:65.8%;height:87.2%;border-radius:3% 1% 1% 3%;background:linear-gradient(90deg,#e5dccb,#f0e9da 75%,#c9b99e);border:2px solid #8c7759;box-sizing:border-box;backface-visibility:hidden;transform:translateZ(-1px) rotateY(180deg)}.afterword-ink,.afterword-connection{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .2s}.afterword-highlights{opacity:0;transition:opacity .2s}.block:is(:hover,:focus-visible) .afterword-book{transform:translate(22%) scale(.75) rotateY(-8deg)}.block:is(:hover,:focus-visible) .afterword-cover{transform:translateZ(4px) rotateY(-150deg)}.block:is(:hover,:focus-visible) .afterword-ink{stroke-dashoffset:0;transition:stroke-dashoffset .45s ease var(--ink-delay)}.block:is(:hover,:focus-visible) .afterword-highlights{opacity:.65;transition:opacity .6s ease 1.8s}.block:is(:hover,:focus-visible) .afterword-connection{stroke-dashoffset:0;transition:stroke-dashoffset .9s ease 2.2s}@media(prefers-reduced-motion:reduce){.afterword-book,.afterword-cover{transition:none}.block:is(:hover,:focus-visible) .afterword-book{transform:none}.block:is(:hover,:focus-visible) .afterword-cover{transform:translateZ(4px)}.afterword-writing{display:none}}.foryou-wave{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .2s}.foryou-wave-bar{transform-box:fill-box;transform-origin:center bottom;animation:foryou-wave var(--wave-duration) ease-in-out var(--wave-delay) infinite alternate;animation-play-state:paused}.block:is(:hover,:focus-visible) .foryou-wave{opacity:1}.block:is(:hover,:focus-visible) .foryou-wave-bar{animation-play-state:running}@keyframes foryou-wave{0%{transform:scaleY(.3)}45%{transform:scaleY(1)}to{transform:scaleY(.55)}}@media(prefers-reduced-motion:reduce){.foryou-wave{display:none}.foryou-wave-bar{animation:none}}.live-object-canvas{position:absolute;inset:0;opacity:0;transition:opacity .4s}.live-object-canvas canvas{display:block;width:100%;height:100%}.live-object.is-ready .live-object-canvas{opacity:1}.live-object.is-ready .project-icon{opacity:0;transition:opacity .4s}.tile-object>[data-object=eyrie]{animation:none}.block:has([data-object=eyrie]) .tile-object{translate:0}.block:has([data-object=eyrie]) .contact-shadow{animation:none;transform:translate(-50%,-50%);filter:none;height:2%;opacity:.65;transition:opacity .4s}.block:has([data-object=eyrie].is-ready) .contact-shadow{opacity:0}@keyframes bob{0%{transform:translateZ(0)}to{transform:translate3d(0,-.8cqh,0)}}@keyframes shadow-bob{to{scale:.96;opacity:.45}}@media(prefers-reduced-motion:reduce){.tile-object>*,.contact-shadow{animation:none}.tile-object,.contact-shadow{transition:none}}.block:hover .block-art,.block:focus-visible .block-art{border-color:var(--gray5)}.project-icon{display:block;width:100%;height:auto;aspect-ratio:1;pointer-events:none}.block h2{font-size:12.5px;font-weight:400;line-height:1.4}.block:hover h2{color:var(--foreground)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.index-shell{position:relative;max-width:1280px;min-height:100dvh;padding:65px 64px}.index-shell .hero{margin:0 0 60px}.index-shell h1{font-size:28px;line-height:35px;letter-spacing:0}.index-shell .hero-copy{margin:0}.index-shell .hero-links{font-size:12.5px;gap:18px;margin-top:14px}.index-shell .work-toolbar{position:absolute;top:70px;right:64px;margin:0}.index-shell .search-panel{margin-bottom:25px}.search-panel{display:flex;gap:15px;border-bottom:1px solid var(--gray3);margin-bottom:24px;padding:0 0 12px}.search-panel input{width:100%;min-width:0;border:0;background:transparent;font-size:16px;outline:none}.search-panel button{font-size:24px}.empty{padding:30px 0;color:var(--gray5);font-size:14px}.empty button{text-decoration:underline}@media(prefers-color-scheme:dark){:root{background:#000;color:#e5e5e5;--background:#000;--foreground:#fff;--gray1:#1a1a1a;--gray2:#333;--gray3:#4f4f4f;--gray4:#696969;--gray5:#b2b2b2;--gray6:#e5e5e5;font-variation-settings:"DRKM" 1}.block-art{--room-floor-back:#121212;--room-floor-front:#060606;--room-pool:#1f1f1f;--room-shadow:#000000e6}}@media(max-width:1050px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.page-inner,.index-shell{padding:30px 24px}h1{font-size:28px}.hero-copy{font-size:14px}.index-shell .hero{margin-bottom:40px;padding-top:36px}.index-shell .hero-links{gap:10px 14px;font-size:12px}.index-shell .work-toolbar{top:25px;right:24px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 15px}.block h2{font-size:12px}}@media(max-width:360px){.page-inner,.index-shell{padding-left:18px;padding-right:18px}}.index-shell .hero{position:sticky;top:0;z-index:3;margin:-65px -64px 36px;padding:65px 64px 24px;background:linear-gradient(var(--background) calc(100% - 24px),color-mix(in srgb,var(--background) 0%,transparent));pointer-events:none}.index-shell .hero a{pointer-events:auto}.index-shell .work-toolbar{position:fixed;z-index:4;right:max(64px,calc((100vw - 1280px)/2 + 64px))}.index-shell .search-panel{position:relative;z-index:2}.tile-object{transform:translate(calc(var(--look-x,0) * .5cqw),calc(var(--look-y,0) * .5cqh))}.contact-shadow{translate:calc(var(--look-x,0) * .5cqw) calc(var(--look-y,0) * .5cqh)}.room-pool{transform:translate(calc(var(--look-x,0) * .5px),calc(var(--look-y,0) * .5px))}.intro-grid>*{animation:intro-rise .9s cubic-bezier(.2,.75,.25,1.04) calc(var(--i) * 80ms + .15s) both}@keyframes intro-rise{0%{transform:translateY(70vh)}}@media(prefers-reduced-motion:reduce){.intro-grid>*{animation:none}}@media(max-width:650px){.index-shell .hero{margin:-30px -24px 20px;padding:66px 24px 20px}.index-shell .work-toolbar{right:24px}}@media(max-width:360px){.index-shell .hero{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.index-shell .work-toolbar{right:18px}}.has-project{overflow:hidden}.has-project .work-section{visibility:hidden}.has-project .work-section *{animation-play-state:paused}.expanded-project{position:fixed;z-index:2;inset:0;overflow:auto;background:var(--background);scrollbar-width:thin}.expanded-content{min-height:100%;display:flex;flex-direction:column;max-width:1280px;margin:0 auto;padding:var(--project-top,180px) 64px 28px}.expanded-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:12.5px;margin-bottom:20px}.expanded-toolbar>span{color:var(--gray5)}.expanded-toolbar a{padding:5px 0 5px 15px}.expanded-media{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.expanded-media video,.expanded-media img{display:block;width:100%;max-height:calc(100dvh - var(--project-top,180px) - 205px);object-fit:contain}.expanded-object{width:min(320px,60%)}.expanded-caption{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-top:24px}.expanded-caption h2{font-size:20px;line-height:1.3;font-weight:400}.expanded-caption p{font-size:14px;line-height:1.5;margin-top:7px;color:var(--gray5)}.expanded-caption .expanded-client{font-size:12px}.expanded-caption>a{flex-shrink:0;font-size:13px}.active-filter{display:inline-flex;align-items:center;gap:20px;padding:8px 12px;margin-bottom:24px;border:1px solid var(--gray3);font-size:12.5px}.active-filter a{font-size:18px}::view-transition-group(*){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.75,.2,1)}::view-transition-old(root),::view-transition-new(root){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation-duration:0s}}@media(max-width:650px){.expanded-content{padding:var(--project-top,180px) 24px 20px}.expanded-caption{align-items:flex-start;flex-direction:column;gap:16px}.expanded-media video,.expanded-media img{max-height:calc(100dvh - var(--project-top,180px) - 240px);min-height:100px}}@media(max-width:360px){.expanded-content{padding-left:18px;padding-right:18px}}.portal{position:fixed;inset:0;z-index:10;background:#fff}.profile-heading{max-width:100%;pointer-events:auto}.profile-name{display:block;width:max-content;font-size:28px;line-height:35px;font-weight:700;view-transition-name:profile-name}.profile-name.is-small{font-size:12px;line-height:18px;font-weight:400;color:var(--gray5);text-decoration:underline;text-decoration-color:var(--gray3);text-underline-offset:3px}.profile-name.is-small:hover{color:var(--foreground);text-decoration-color:currentColor}.profile-heading .studio-title{margin-top:8px}.profile-intro{max-width:390px;margin-top:12px;font-size:13px;line-height:1.6;pointer-events:auto}.profile-intro em{font-style:italic;font-synthesis:style}.profile-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 14px;margin-top:12px;font-size:12px;color:var(--gray5)}.profile-links a{white-space:nowrap;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 25%,transparent);text-underline-offset:3px}.profile-links a:first-child{color:var(--gray6)}.profile-links a:hover{color:var(--foreground);text-decoration-color:currentColor}.block-card{position:relative;text-align:center}.block-description{position:absolute;z-index:1;inset:auto 0 0;margin:0;padding:24px 12px 12px;background:linear-gradient(transparent,var(--background) 45%);font-size:12px;line-height:1.45;color:var(--gray6);opacity:0;translate:0 3px;transition:opacity .18s,translate .18s;pointer-events:none}.block-card:hover .block-description,.block-card:focus-within .block-description{opacity:1;translate:0}.expanded-toolbar{justify-content:flex-end}@media(prefers-reduced-motion:reduce){.block-description{transition:none}}@media(max-width:650px){.index-shell .hero{padding-top:30px}.index-shell .studio-title{font-size:clamp(21px,5.6vw,28px)}.profile-links a{padding:4px 0}.block-description{font-size:11.5px}}.collection-footer{margin-top:48px}.collection-footer nav{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--gray5)}.collection-footer a{padding:6px 0;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 25%,transparent);text-underline-offset:3px}.collection-footer a:hover{color:var(--foreground);text-decoration-color:currentColor}
