.portfolio-home{display:grid;width:100%;height:100dvh;min-height:720px;--sidebar-width:clamp(420px,calc(420px + (100vw - 1440px) / 28),460px);--column-gap:24px;--column-lead:32px;--column-tail:18px;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:min-content min-content minmax(0,1fr) min-content min-content;overflow:hidden}.biography__header,.portfolio-home{position:relative;background:var(--color-canvas)}.biography__header{z-index:20;grid-column:1;grid-row:1;padding:18px 16px 0}.biography__header h1{font-family:var(--font-display);font-weight:400;font-size:64px;line-height:1;letter-spacing:-.045em}.biography__subtitle{margin-top:2px;color:var(--color-muted);font-size:16px;line-height:1.25}.biography__body{position:relative;z-index:20;display:flex;grid-column:1;grid-row:2;padding:0 16px;margin-top:var(--column-lead);flex-direction:column;gap:var(--column-gap);background:var(--color-canvas);font-size:14px;line-height:20px}.biography__intro,.biography__middle p{text-align:justify}.biography__middle{display:grid;grid-template-columns:183px minmax(0,1fr);gap:16px;align-items:stretch}.biography__portrait{width:100%;height:0;min-height:100%;object-fit:cover;object-position:50% 56%}.experience{position:relative;z-index:20;display:flex;grid-column:1;grid-row:3;padding:var(--column-gap) 16px 0;flex-direction:column;gap:16px;overflow-y:auto;background:var(--color-canvas);scrollbar-width:thin;scrollbar-color:var(--color-border-subtle) transparent}.experience,.experience__label{font-size:14px;line-height:20px}.experience__label{margin:0;color:var(--color-text-muted);font-weight:400}.experience__list{display:flex;margin:0;padding:0;flex-direction:column;gap:16px;list-style:none}.experience__item{display:flex;flex-direction:column;gap:8px}.experience__company,.experience__period{color:var(--color-secondary)}.experience__role{color:var(--color-primary);font-size:16px;font-weight:500;line-height:22px}.showcase{--package-size:min(clamp(501px,calc(501px + (100vw - 1440px) * 0.1777),700px),62vh);--package-centre:clamp(300.57px,calc(300.57px + (100vw - 1440px) * 0.3109),648.77px);--preview-width:clamp(400px,calc(400px + (100vw - 1440px) * 0.2679),700px);--preview-left:clamp(604px,calc(604px + (100vw - 1440px) * 0.4429),1100px);position:relative;grid-column:2;grid-row:1/-1;overflow:hidden;background:var(--color-canvas);isolation:isolate}.orbit-stage{position:absolute;inset:0;overflow:hidden}.case-preview{position:absolute;z-index:20;top:50%;left:var(--preview-left);width:min(var(--preview-width),calc(100% - var(--preview-left) - 16px));pointer-events:none;transform:translateY(-50%)}.case-preview__content{display:flex;flex-direction:column;gap:24px;animation:case-preview-enter .32s var(--ease-out) both}.case-preview__media{width:100%;overflow:hidden;aspect-ratio:696/362;border-radius:2px;background:var(--color-background-secondary)}.case-preview__media img{width:100%;height:100%;object-fit:cover}.case-preview__description{color:var(--color-primary);font-size:20px;line-height:28px}.case-preview__meta{display:flex;flex-wrap:wrap;color:var(--color-secondary);font-size:16px;line-height:24px}.case-preview__meta-item+.case-preview__meta-item:before{margin:0 4px;color:var(--color-secondary);content:"|"}.case-preview__meta-item.is-warning{color:var(--color-warning)}@keyframes case-preview-enter{0%{opacity:0;transform:translate3d(0,12px,0) scale(.99)}to{opacity:1;transform:translateZ(0) scale(1)}}.package-card{position:absolute;z-index:var(--orbit-z);top:50%;left:var(--package-centre);width:var(--package-size);aspect-ratio:1;opacity:var(--orbit-opacity);transform:translate(calc(-50% + var(--orbit-x)),calc(-50% + var(--orbit-y))) rotate(var(--orbit-rotate)) scale(var(--orbit-scale));transition:transform .68s var(--ease-out),opacity .36s ease-out;pointer-events:none;will-change:transform,opacity}.package-card.is-interactive{pointer-events:auto}.package-card__button{position:relative;display:grid;width:100%;height:100%;cursor:pointer;place-items:center;padding:0;background:transparent;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.package-card__button:disabled{cursor:default}.package-card__visual{position:relative;display:block;width:100%;aspect-ratio:1;filter:var(--package-filter);perspective:1100px;transition:transform .28s var(--ease-out)}.package-card__body,.package-card__top{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}.package-card__body{z-index:3;clip-path:polygon(0 21.5%,5% 22.2%,10% 21.4%,15% 22.4%,20% 21.5%,25% 22.2%,30% 21.5%,35% 22.4%,40% 21.4%,45% 22.2%,50% 21.5%,55% 22.4%,60% 21.4%,65% 22.2%,70% 21.5%,75% 22.4%,80% 21.4%,85% 22.2%,90% 21.5%,95% 22.4%,100% 21.5%,100% 100%,0 100%)}.package-card__top{z-index:4;clip-path:polygon(0 0,100% 0,100% 22.3%,95% 23.2%,90% 22.3%,85% 23%,80% 22.2%,75% 23.2%,70% 22.3%,65% 23%,60% 22.2%,55% 23.2%,50% 22.3%,45% 23%,40% 22.2%,35% 23.2%,30% 22.3%,25% 23%,20% 22.3%,15% 23.2%,10% 22.2%,5% 23%,0 22.3%);opacity:1;transform-origin:86% 22%;transition:transform .26s var(--ease-out);will-change:transform}.package-card.is-active:not(.is-open) .package-card__button:focus-visible .package-card__top,.package-card.is-active:not(.is-open) .package-card__button:hover .package-card__top{transform:perspective(1100px) translate3d(0,-1px,2px) rotateX(1.2deg) rotate(.7deg)}.package-card.is-active.is-open .package-card__button .package-card__top{animation:package-top-tear-open .46s both;transform-origin:86% 22%}@keyframes package-top-tear-open{0%{transform:perspective(1100px) translate3d(0,-1px,2px) rotateX(1.2deg) rotate(.7deg);animation-timing-function:cubic-bezier(.22,.76,.24,1)}16%{transform:perspective(1100px) translate3d(1px,-16px,5px) rotateX(3deg) rotate(1.6deg);animation-timing-function:cubic-bezier(.2,.72,.24,1)}78%{transform:perspective(1100px) translate3d(27px,-114px,10px) rotateX(6.2deg) rotate(9.3deg);animation-timing-function:cubic-bezier(.22,.61,.36,1)}to{transform:perspective(1100px) translate3d(24px,-106px,8px) rotateX(5deg) rotate(8.5deg)}}.showcase.is-case-transitioning{z-index:999999;overflow:visible;cursor:progress}.case-fade-overlay,.showcase.is-case-transitioning .package-card__button{pointer-events:none}.case-fade-overlay{position:fixed;z-index:100;inset:0;background:#090909;opacity:0;animation:case-home-fade-out .48s cubic-bezier(.5,0,.82,.42) both;will-change:opacity}@keyframes case-home-fade-out{0%{opacity:0}to{opacity:1}}@view-transition{navigation:auto}::view-transition-old(root){animation:case-route-hold .72s linear both}::view-transition-new(root){animation:case-route-in .72s cubic-bezier(.22,1,.36,1) both}@keyframes case-route-hold{0%,to{opacity:1}}@keyframes case-route-in{0%{opacity:0;transform:translate3d(0,18px,0) scale(.986)}22%{opacity:.08}to{opacity:1;transform:translateZ(0) scale(1)}}.contact-sheet{display:contents}.contacts{position:relative;z-index:20;display:flex;grid-column:1;grid-row:4;padding:var(--column-gap) 16px 0;flex-direction:column;gap:12px;background:var(--color-canvas)}.contacts,.contacts__label{font-size:14px;line-height:20px}.contacts__label{margin:0;color:var(--color-text-muted);font-weight:400}.contacts__list{display:flex;flex-direction:column;gap:8px;font-size:18px;font-style:normal;line-height:26px}.column-footer{position:relative;z-index:20;display:flex;grid-column:1;grid-row:5;padding:var(--column-gap) 16px var(--column-tail);align-items:flex-start;gap:16px;background:var(--color-canvas)}.column-footer__reveal{position:relative;display:flex;flex-shrink:0}.column-footer__reveal:focus-visible{outline:2px solid var(--color-primary);outline-offset:5px}.column-footer__mark{width:37px;height:auto;flex-shrink:0}.column-footer__portrait{display:none}@media (min-width:901px) and (max-height:1100px),(min-width:901px) and (max-width:1600px){.biography__middle{display:none}.column-footer__portrait{position:absolute;bottom:calc(100% + 12px);left:0;display:block;width:183px;overflow:hidden;border-radius:2px;opacity:0;background:var(--color-canvas);box-shadow:0 18px 48px rgba(0,0,0,.28);pointer-events:none;transform:translateY(8px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.column-footer__reveal:focus-visible .column-footer__portrait,.column-footer__reveal:hover .column-footer__portrait{opacity:1;transform:translateY(0)}.experience,.experience__list{gap:12px}.biography__body,.column-footer,.contacts,.experience{padding-right:0}.contacts{gap:10px}.contacts__list{font-size:14px;line-height:20px}}@media (prefers-reduced-motion:reduce){.column-footer__portrait{transition:none}}@media (min-width:901px) and (max-height:1297px){.experience__item:last-child{display:none}}@media (min-width:901px) and (max-height:850px){.biography__header h1{font-size:56px}}@media (max-width:1199px){.case-preview{top:auto;right:24px;bottom:24px;left:24px;width:auto;border-radius:2px;background:rgba(22,22,22,.96);box-shadow:0 -24px 48px 0 rgba(22,22,22,.56);transform:none}.case-preview__content{display:grid;grid-template-columns:124px minmax(0,1fr);gap:8px 12px;align-items:start}.case-preview__media{grid-row:1/span 2}.case-preview__description{font-size:16px;line-height:22px}.case-preview__meta{font-size:14px;line-height:20px}.showcase{--package-centre:50%}.package-card{top:36%}}@media (max-width:900px){.portfolio-home{display:flex;height:auto;min-height:100svh;flex-direction:column;gap:22px;--page-inline:16px;padding:22px var(--page-inline) var(--column-tail);overflow:visible}.biography__header{grid-column:auto;grid-row:auto;padding:0;margin-bottom:10px}.biography__header h1{font-size:clamp(48px,15vw,74px)}.biography__body{grid-column:auto;grid-row:auto;padding:0;margin-top:0;gap:22px}.biography__middle{display:grid;grid-template-columns:minmax(0,1fr) clamp(120px,37%,151px);gap:14px;align-items:stretch}.biography__middle p{grid-area:1/1}.biography__portrait{grid-area:1/2;width:100%;max-width:none;height:100%}.biography__intro,.biography__middle p{text-align:left}.column-footer,.contacts,.experience{grid-column:auto;grid-row:auto;padding:0;overflow-y:visible}.contact-sheet{display:flex;margin:0 calc(-1 * var(--page-inline)) calc(-1 * var(--column-tail));padding:16px var(--page-inline);flex-direction:column;gap:10px;border-radius:24px 24px 0 0;background:#ffffff}.column-footer,.contacts{background:none}.contacts{gap:10px;color:var(--color-border-subtle)}.contacts__list{padding-bottom:16px;color:inherit;font-size:14px;line-height:20px}.column-footer{color:var(--color-canvas)}.column-footer__mark{filter:invert(1)}.column-footer a{color:inherit}.column-footer a:focus-visible{--tw-ring-color:var(--color-canvas)}.column-footer__reveal:focus-visible{outline-color:var(--color-canvas)}.showcase{grid-column:auto;grid-row:auto;height:555px;touch-action:pan-y}.orbit-stage{top:16px}.package-card{top:60.44%;left:50%;width:calc(100% - 32px)}.case-preview{top:0;right:0;bottom:auto;left:0}.case-preview__content{grid-template-rows:44px 20px}.case-preview__description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}}@media (prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation-duration:1ms!important}*,:after,:before{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.portfolio-page{min-height:100dvh}