:root{--ink:#222;--green:#00ff26;--soft:#f6f6f6;--glass:#efefef80;--glass-filter:blur(15px);--line:#d9d9d9c7;--layout-gap:min(2.13vw, 11.5px);--content-inset:min(8.611vw, 46.5px);--content-edge:calc(50% - min(50%, 270px) + var(--content-inset));--card-inset:min(.926vw, 5px);--inner-radius:min(4.074vw, 22px);--layout-radius:calc(var(--inner-radius) + var(--card-inset));--ui-lower-shift:clamp(42px, 11.85vw, 50px);--content-lift:clamp(38px, 10vw, 54px);--dock-lower-shift:clamp(22px, 5.926vw, 32px);--panel-top:calc(min(26.019vw, 140.5px) - var(--content-lift));--dock-height:min(9.074vw, 49px);--dock-bottom:calc(var(--ui-lower-shift) - var(--dock-lower-shift));--panel-bottom:calc(var(--dock-bottom) + var(--dock-height) + var(--layout-gap));--menu-left:min(23.519vw, 127px);--menu-width:min(51.389vw, 277.5px);--menu-aligned-left:calc(50% - min(50vw, 270px) + var(--menu-left));--dock-surface:#efefef80;--dock-selected:#97979780}*{box-sizing:border-box}html{overflow-anchor:none}html,body{width:100%;color:var(--ink);margin:0}body{letter-spacing:0;background:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:min(3.241vw,17.5px);font-weight:300;line-height:1.2;overflow-x:hidden}button,input,textarea{color:inherit;font:inherit;letter-spacing:0}button{appearance:none;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}figure,h1,h2,p,dl,dd{margin:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portfolio-viewport{width:100%;position:relative;overflow-x:hidden}.portfolio-shell{width:min(100%,540px);padding:var(--panel-top) var(--content-inset) min(37vw, 200px);background:#fff;margin:0 auto;position:relative}.portfolio-shell.is-project{padding-top:var(--panel-top)}.site-content{position:relative}.brand-mark{z-index:25;top:calc(var(--panel-top) - min(13.148vw, 71px));visibility:visible;opacity:.96;pointer-events:none;background:0 0;place-items:center;width:min(10.741vw,58px);height:min(10.741vw,58px);transition:opacity .5s cubic-bezier(.4,0,.2,1),visibility linear;display:grid;position:fixed;left:50%;transform:translate(-50%)}.brand-mark--hidden{visibility:hidden;opacity:0;transition:opacity .42s cubic-bezier(.4,0,.2,1),visibility 0s linear .52s}.brand-mark img{opacity:1;width:100%;height:100%;display:block}.work-grid{gap:var(--layout-gap);display:grid}.project-card{aspect-ratio:893/1173;border-radius:var(--layout-radius);background:var(--soft);cursor:pointer;isolation:isolate;width:100%;clip-path:inset(0 round var(--layout-radius));border:0;padding:0;display:block;position:relative;overflow:hidden;transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.project-card__image{pointer-events:none;max-width:none;display:block;position:absolute}.project-card--kyng .project-card__image{object-fit:cover;object-position:center;mix-blend-mode:darken;width:100%;height:100%;inset:0}.project-card--kyng-grey .project-card__image{aspect-ratio:1;object-fit:cover;mix-blend-mode:darken;width:150.59%;top:-7.05%;left:-25.3%;transform:rotate(90deg)}.project-card--kyng-grey{background:#ececec}.project-card--kyng-grey .project-card__image{filter:grayscale()contrast(.92)}.project-card--sicko,.project-card--solution,.project-card--sicko-mono{background:#101011}.project-card--sicko .project-card__image,.project-card--solution .project-card__image,.project-card--sicko-mono .project-card__image{object-fit:cover;object-position:center;width:100%;height:100%;inset:0}.project-card--solution .project-card__image{filter:hue-rotate(195deg)saturate(.55)brightness(1.1);transform:scale(1.04)}.project-card--sicko-mono .project-card__image{filter:grayscale()contrast(1.12);transform:scale(1.03)}.project-card--drawing,.project-card--drawing-dark{background:#b5b6bd}.project-card--drawing-dark{background:#85868e}.project-card--drawing .project-card__image,.project-card--drawing-dark .project-card__image{object-fit:contain;width:86%;height:86%;inset:7%}.project-card--drawing-dark .project-card__image{filter:invert(.1)contrast(1.15)}.project-card--angel{background:#eef2f3}.project-card--angel .project-card__image{object-fit:cover;object-position:center;width:100%;height:100%;inset:0}.project-card--cover-warm,.project-card--cover-blue{background:#f4f4f4}.project-card--cover-warm .project-card__image,.project-card--cover-blue .project-card__image{object-fit:cover;width:100%;height:100%;inset:0}.project-card--cover-warm .project-card__image{filter:sepia(.12)saturate(.82)}.project-card--cover-blue .project-card__image{filter:hue-rotate(178deg)saturate(.52)}.project-card--side-green,.project-card--side-dark{background:#eef3ef}.project-card--side-dark{background:#8b8d91}.project-card--side-green .project-card__image,.project-card--side-dark .project-card__image{object-fit:contain;width:84%;height:84%;inset:8%;transform:scale(1.12)}.project-card--side-green .project-card__image{filter:sepia(.16)hue-rotate(70deg)}.project-card--side-dark .project-card__image{filter:grayscale()contrast(1.18)}.card-chip{z-index:2;top:var(--card-inset);width:max-content;max-width:calc(100% - var(--card-inset) - var(--card-inset));border-radius:var(--inner-radius);background:var(--glass);height:min(8.148vw,44px);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background-clip:padding-box;justify-content:center;align-items:center;padding:0 min(5.833vw,31.5px);font-size:min(3.241vw,17.503px);font-weight:400;line-height:normal;display:flex;position:absolute;overflow:hidden}.card-chip--name,.project-card--kyng .card-chip--name{left:var(--card-inset)}.card-chip--new{right:var(--card-inset);background:var(--green);padding-inline:min(3.704vw,20px)}.project-detail{gap:min(2.778vw,15px);display:grid}.project-info-card{border-radius:var(--layout-radius);background:#ebebeb;flex-direction:column;height:min(77.685vw,419.5px);padding:min(4.167vw,22.5px) min(4.167vw,22.5px) min(2.778vw,15px);display:flex}.project-info-card h1,.project-info-card h2{color:#00000080;font-size:min(3.241vw,17.5px);font-weight:300;line-height:1.2}.project-facts{margin-top:min(2.222vw,12px)}.project-facts>div{grid-template-columns:1fr 1fr;display:grid}.project-facts dd{text-align:right}.project-description{border-top:.5px solid var(--line);margin-top:min(1.296vw,7px);padding-top:min(2.593vw,14px)}.project-description p{margin-top:min(2.222vw,12px)}.project-credits{border-top:.5px solid var(--line);margin-top:auto;padding-top:min(2.593vw,14px)}.project-credits>div{justify-content:space-between;margin-top:min(2.222vw,12px);display:flex}.project-credits p:last-child{text-align:right}.detail-cover,.detail-pair figure,.detail-closeup,.story-card,.project-content-card{border-radius:var(--layout-radius);background:var(--soft);position:relative;overflow:hidden}.detail-cover{aspect-ratio:893/1173}.detail-cover>img{object-fit:cover;width:100%;height:100%;display:block}.detail-cover .card-chip{left:min(.926vw,5px)}.detail-pair{grid-template-columns:1fr 1fr;gap:min(2.685vw,14.5px);display:grid}.detail-pair figure{aspect-ratio:432/567}.detail-pair img{object-fit:cover;width:100%;height:100%;display:block}.detail-pair .detail-drawing{background:#b2b3b9}.detail-pair--square figure{aspect-ratio:1}.project-content-card img,.project-content-card video{width:100%;height:auto;display:block}.story-card{min-height:min(16.389vw,88.5px);padding:min(2.685vw,14.5px) min(3.704vw,20px)}.detail-closeup{aspect-ratio:893/1173;background:#82808b}.detail-closeup img{object-fit:cover;width:100%;height:100%;display:block;transform:scale(1.45)}.overlay-layer{z-index:30;pointer-events:none;backface-visibility:hidden;position:fixed;inset:0}.blur-screen{opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;cursor:default;background:0 0;border:0;width:100%;height:auto;padding:0;animation:none;position:absolute;inset:0}.overlay-layer--active .blur-screen{opacity:1;pointer-events:auto}.glass-panel{z-index:1;border-radius:var(--layout-radius);background:var(--glass);color:#000;-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:none;pointer-events:auto;background-clip:padding-box;border:0;position:relative}.project-index>.glass-panel,.info-stack>.glass-panel,.contact-panel{opacity:1;animation:none;transform:none}.overlay-phase--enter .project-index>.glass-panel,.overlay-phase--enter .info-stack>.glass-panel,.overlay-phase--enter .contact-panel{transform-origin:50%;animation:.76s cubic-bezier(.16,1,.3,1) both panel-reveal}.overlay-phase--switch-exit .project-index>.glass-panel,.overlay-phase--switch-exit .info-stack>.glass-panel,.overlay-phase--switch-exit .contact-panel,.overlay-phase--panel-exit .project-index>.glass-panel,.overlay-phase--panel-exit .info-stack>.glass-panel,.overlay-phase--panel-exit .contact-panel{animation:.38s cubic-bezier(.4,0,.2,1) both panel-dismiss}.overlay-phase--blur-exit .project-index>.glass-panel,.overlay-phase--blur-exit .info-stack>.glass-panel,.overlay-phase--blur-exit .contact-panel{opacity:0;animation:none;transform:translateY(min(1.389vw,7.5px))scale(.985)}@keyframes panel-reveal{0%{opacity:0;transform:translateY(min(1.852vw,10px))scale(1.045)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes panel-dismiss{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(min(1.389vw,7.5px))scale(.985)}}.project-index{top:var(--panel-top);right:var(--content-edge);bottom:var(--panel-bottom);left:var(--content-edge);gap:var(--layout-gap);pointer-events:auto;grid-template-rows:min(79.537vw,429.5px) minmax(0,1fr);display:grid;position:absolute}.project-index__table{height:100%;padding:min(2.963vw,16px) min(3.426vw,18.5px);overflow:hidden}.project-table{color:#000;text-align:left;white-space:nowrap;background:0 0;border:0;border-bottom:.5px solid #dededef2;grid-template-columns:min(8.519vw,46px) minmax(0,1fr) min(20vw,108px) min(7.13vw,38.5px);align-items:center;width:100%;min-height:min(5.833vw,31.5px);padding:0;font-size:min(3.241vw,17.5px);font-weight:300;line-height:1.8;display:grid}.project-table span:nth-child(3),.project-table span:nth-child(4){text-align:right}.project-table span:nth-child(3){padding-right:var(--card-inset)}.project-table--head{color:#bfbfbf80;min-height:min(6.389vw,34.5px)}.project-list button{cursor:pointer}.project-filter{height:100%;padding:min(4.259vw,23px) min(3.426vw,18.5px);overflow:hidden}.project-filter h2{color:#bfbfbf;font-size:inherit;margin:0 0 min(2.037vw,11px);font-weight:300}.project-filter button{color:#000;cursor:pointer;background:0 0;border:0;padding:0;font-weight:300;line-height:1.2;display:block}.project-filter button.is-selected{color:#fff}.info-stack{z-index:1;top:var(--panel-top);right:var(--content-edge);bottom:var(--panel-bottom);left:var(--content-edge);gap:var(--layout-gap);pointer-events:auto;grid-template-rows:min(72.593vw,392px) minmax(0,1fr);display:grid;position:absolute}.about-panel{height:100%;padding:min(3.981vw,21.5px) min(3.796vw,20.5px);overflow:hidden}.team-panel{height:100%;padding:min(3.611vw,19.5px) min(3.796vw,20.5px);overflow:hidden}.about-panel h2,.team-panel h2{color:#bfbfbf;font-size:min(3.241vw,17.5px);font-weight:300;line-height:1.2}.about-panel p{margin:min(2.5vw,13.5px) 0 min(3.333vw,18px)}.about-panel>p:first-of-type{width:100%}.team-panel p{margin:min(2.315vw,12.5px) 0 min(2.685vw,14.5px)}.contact-panel{top:var(--panel-top);right:var(--content-edge);bottom:var(--panel-bottom);left:var(--content-edge);padding:min(3.981vw,21.5px) min(3.241vw,17.5px);position:absolute;overflow:hidden}.contact-panel>label,.contact-label{color:#bfbfbf;display:block}.message-field{border-top:.5px solid var(--line);border-bottom:.5px solid var(--line);width:calc(100% + min(2.407vw,13px));height:min(23.519vw,127px);margin:min(2.315vw,12.5px) calc(-1*min(1.204vw,6.5px)) 0;position:relative}.contact-panel textarea{resize:none;color:#000;caret-color:#000;background:0 0;border:0;outline:0;width:100%;height:100%;margin:0;padding:min(3.056vw,16.5px) min(1.204vw,6.5px);font-size:max(16px,min(3.241vw,17.5px));display:block}.message-field:not(.has-value) textarea{caret-color:#0000}.message-prompt{color:#000;white-space:nowrap;pointer-events:none;align-items:baseline;font-size:max(16px,min(3.241vw,17.5px));display:flex;position:absolute;top:min(3.056vw,16.5px);left:min(1.204vw,6.5px);right:min(1.204vw,6.5px);overflow:hidden}.message-prompt__text{text-overflow:clip;animation:.42s cubic-bezier(.16,1,.3,1) both message-prompt-in;overflow:hidden}.message-prompt__caret{background:currentColor;flex:none;width:1px;height:1.05em;margin-left:1px;animation:.9s step-end infinite message-caret-blink;transform:translateY(.12em)}@keyframes message-prompt-in{0%{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:translateY(0)}}@keyframes message-caret-blink{0%,46%{opacity:1}47%,to{opacity:0}}.urgency-block{padding-top:min(3.241vw,17.5px)}.urgency-options{justify-content:space-between;align-items:center;margin-top:min(3.981vw,21.5px);display:flex}.urgency-options button{color:#000;cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:min(13.889vw,75px);padding:min(.926vw,5px);font-weight:300;transition:color .22s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1)}.urgency-options button.is-selected{color:#fff;background:0 0}.privacy-check{cursor:pointer;grid-template-columns:min(8.148vw,44px) minmax(0,1fr);align-items:center;gap:min(3.333vw,18px);margin-top:min(4.259vw,23px);color:#000!important;display:grid!important}.privacy-check input{opacity:0;pointer-events:none;position:absolute}.privacy-check__control{background:var(--dock-selected);width:min(8.148vw,44px);height:min(8.148vw,44px);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);border-radius:50%;position:relative}.privacy-check input:checked+.privacy-check__control:after{content:"";background:var(--green);border-radius:50%;width:min(2.778vw,15px);height:min(2.778vw,15px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.privacy-check a{text-decoration:underline}.continue-button{color:#fff;cursor:pointer;background:#000000c2;border:0;border-radius:999px;width:min(45.556vw,246px);height:min(8.148vw,44px);margin:min(2.13vw,11.5px) auto 0;font-size:min(3.241vw,17.5px);font-weight:400;display:block}.copy-email{color:#000;cursor:pointer;background:0 0;border:0;width:min(45.556vw,246px);height:min(8.148vw,44px);margin:0 auto;font-size:min(3.241vw,17.5px);font-weight:400;display:block}.dock-anchor{right:0;bottom:var(--dock-bottom);width:100%;height:var(--dock-height);pointer-events:none;position:fixed;left:0}.dock-anchor--base{z-index:20}.dock-anchor--foreground{z-index:40}.dock{width:min(100%,540px);height:var(--dock-height);pointer-events:none;position:absolute;top:0;left:calc(50% - min(50vw,270px))}.dock--background{z-index:20}.dock--foreground{z-index:40}.dock-item{height:var(--dock-height);visibility:visible;opacity:1;pointer-events:auto;background:var(--dock-surface);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:none;background-clip:padding-box;transition:transform .62s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1),visibility linear;position:absolute;top:0;transform:translate(0,0)}.dock-item>button{border-radius:inherit;width:100%;height:100%;color:var(--ink);box-shadow:none;cursor:pointer;pointer-events:auto;background:0 0;border:0;padding:0;font-size:min(3.241vw,17.5px);font-weight:400;line-height:normal;transition:opacity .18s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1);position:relative}.dock-pill.is-selected,.dock-pill>button:active{background-color:var(--dock-selected)}.dock--background .dock-item,.dock--background .dock-item>button{pointer-events:none}.dock--foreground .dock-overlay-pill,.dock--foreground .dock-close{opacity:.001;pointer-events:none;will-change:opacity}.dock--foreground .dock-overlay-pill,.dock--foreground .dock-overlay-pill>button{pointer-events:auto}.dock--foreground .dock-close>button{pointer-events:none}.dock--foreground.is-open .dock-overlay-pill.is-overlay-active,.dock--foreground.is-open .dock-close{opacity:1;pointer-events:auto}.dock--foreground.is-open .dock-overlay-pill.is-overlay-active>button,.dock--foreground.is-open .dock-close>button{pointer-events:auto}.dock.overlay-phase-panel-exit .dock-overlay-pill.is-overlay-active,.dock.overlay-phase-blur-exit .dock-overlay-pill.is-overlay-active{opacity:.001;pointer-events:none;transition-duration:.24s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dock button:focus-visible{outline-offset:2px;outline:1px solid #22222247}.dock-circle{width:var(--dock-height);border-radius:50%}.dock-plus{left:min(9.352vw,50.5px)}.dock-project-close,.dock-close{top:0;left:auto;right:min(9.352vw,50.5px)}.dock-plus span,.dock-project-close span,.dock-close span{display:block;position:absolute;inset:0}.dock-plus span:before,.dock-plus span:after,.dock-project-close span:before,.dock-project-close span:after,.dock-close span:before,.dock-close span:after{content:"";background:#222;width:min(2.917vw,15.75px);height:min(.278vw,1.5px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dock-plus span:after{transform:translate(-50%,-50%)rotate(90deg)}.dock-project-close span:before{transform:translate(-50%,-50%)rotate(45deg)}.dock-project-close span:after{transform:translate(-50%,-50%)rotate(-45deg)}.dock-links{position:absolute;inset:0}.dock-pill{white-space:nowrap;border-radius:min(8.981vw,48.5px)}.dock-work{width:min(17.87vw,96.5px);left:min(23.519vw,127px)}.dock-info{width:min(12.222vw,66px);left:min(42.407vw,229px)}.dock-contact{width:min(19.259vw,104px);left:min(55.648vw,300.5px)}.dock-pill.is-selected>button:after{content:"";z-index:2;background:var(--green);opacity:1;transform-origin:50%;pointer-events:none;border-radius:50%;width:min(2.778vw,15px);height:min(2.778vw,15px);position:absolute;top:0;right:0;transform:scale(1)}.dock.indicator-exit .dock-pill.is-selected>button:after{animation:.3s cubic-bezier(.4,0,.2,1) both indicator-out}.dock.indicator-enter .dock-pill.is-selected>button:after{animation:.42s cubic-bezier(.16,1,.3,1) both indicator-in}@keyframes indicator-out{to{opacity:0;transform:scale(0)}}@keyframes indicator-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.dock--overlay .dock-info{left:min(42.407vw,229px)}.dock--overlay .dock-contact{left:min(55.648vw,300.5px)}.dock-close span:before{transform:translate(-50%,-50%)rotate(45deg)}.dock-close span:after{transform:translate(-50%,-50%)rotate(-45deg)}.dock.overlay-phase-control-exit .dock-close,.dock.overlay-phase-panel-exit .dock-close,.dock.overlay-phase-blur-exit .dock-close,.dock.project-close-exit .dock-project-close{opacity:0}.dock.dock--hidden .dock-item{visibility:hidden;opacity:0;pointer-events:none;transition:transform .52s cubic-bezier(.4,0,.2,1),opacity .42s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1),visibility 0s linear .52s;transform:translateY(min(3.704vw,20px))}@media (min-width:541px){body{background:#f4f4f4}.portfolio-shell{background:#fff}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dock,.dock-item,.dock-item>button,.blur-screen,.project-index,.info-stack,.contact-panel,.dock-pill.is-selected>button:after,.dock-close span,.dock-project-close span{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important}}
