.cv-main{padding:0;box-sizing:border-box}.cv-main+.site-footer{margin-top:24px}.cv-panel{--cv-pad-x: 2.5rem;position:relative;z-index:1;padding:6rem var(--cv-pad-x) 2.25rem;border-radius:22px}.cv-panel:after{content:"";position:absolute;inset:0;z-index:5;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(155deg,rgba(var(--color-white-rgb),.4),rgba(var(--color-white-rgb),.06) 32%,rgba(var(--color-white-rgb),.03) 60%,rgba(var(--color-accent-rgb),.4));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}.cv-panel-glow{position:absolute;inset:0;z-index:0;border-radius:inherit;overflow:hidden;pointer-events:none}.cv-panel-glow:before{content:"";position:absolute;top:4rem;right:-8%;width:20rem;height:20rem;border-radius:50%;background:radial-gradient(circle,var(--color-accent) 0%,transparent 70%);opacity:.14;filter:blur(80px)}.cv-panel>*:not(.cv-panel-glow){position:relative;z-index:1}.cv-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.46fr);align-items:center;gap:2.5rem;margin:0 calc(-1 * var(--cv-pad-x));padding:0 var(--cv-pad-x);clip-path:inset(-100vh 0)}.cv-intro{position:relative;z-index:1;text-align:left}.cv-kicker{font-family:Inter,sans-serif;font-size:.86rem;line-height:1.4;color:var(--color-gray-low-opacity);margin:0 0 .55rem}.cv-title{--ink-guard: .15em;font-size:clamp(2.6rem,1.1rem + 5vw,4.6rem);font-weight:700;font-synthesis:weight;line-height:.85;display:block;box-sizing:content-box;margin:0 calc(-1 * var(--ink-guard)) 0 0;padding:var(--ink-guard) var(--ink-guard) 0;margin-top:calc(-1 * var(--ink-guard));margin-left:calc(-.06em - var(--ink-guard))}.cv-title>span{display:block;background:linear-gradient(180deg,#fff,#eef0f4 44%,#a6abb7);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.cv-title-last{box-sizing:content-box;padding:var(--ink-guard) var(--ink-guard) 0;margin:-.09em calc(-1 * var(--ink-guard)) 0 calc(-1 * var(--ink-guard))}.cv-role{margin:.7rem 0 0;font-family:Inter,sans-serif;font-size:.86rem;line-height:1.4;color:var(--color-gray-low-opacity)}.cv-role strong{color:rgba(var(--color-white-rgb),.9);font-weight:600}.cv-role-sep{color:rgba(var(--color-white-rgb),.35)}.cv-actions{margin-top:1.4rem;gap:.75rem;flex-wrap:wrap}.cv-actions .hero-cta-btn{flex:0 0 auto;width:auto;min-width:0;padding:.78rem 1.4rem;white-space:nowrap}.cv-visual{--floor-u: clamp(3.6rem, 1.6rem + 4.2vw, 5.6rem);--floor-w: 8;--floor-d: 4;--floor-persp: 5;--floor-tilt: 68deg;--floor-cell: .4;--floor-drop: .12;position:relative;display:grid;place-items:center;min-width:0}.cv-visual:before{content:"";position:absolute;top:50%;right:calc(-1 * var(--cv-pad-x));z-index:0;width:calc(var(--floor-u) * var(--floor-w));height:calc(var(--floor-u) * var(--floor-d));pointer-events:none;transform-origin:100% 0;transform:translateY(calc(var(--floor-u) * var(--floor-drop))) perspective(calc(var(--floor-u) * var(--floor-persp))) rotateX(var(--floor-tilt));background-image:linear-gradient(to right,rgba(var(--color-white-rgb),.6) 1px,transparent 1px),linear-gradient(to bottom,rgba(var(--color-white-rgb),.6) 1px,transparent 1px);background-size:calc(var(--floor-u) * var(--floor-cell)) calc(var(--floor-u) * var(--floor-cell));opacity:.22;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 32%,#000 62%,transparent 92%),linear-gradient(to left,#000 42%,transparent 92%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0%,#000 32%,#000 62%,transparent 92%),linear-gradient(to left,#000 42%,transparent 92%);mask-composite:intersect}.cv-sheet{font-size:clamp(.58rem,.2rem + .85vw,.76rem);position:relative;z-index:1;width:min(17em,78%);aspect-ratio:210 / 297;border-radius:.5em;transform:perspective(1100px) rotateX(7deg) rotateY(-14deg) rotate(1.2deg);transform-style:preserve-3d;background:linear-gradient(158deg,rgba(var(--color-white-rgb),.1),rgba(var(--color-white-rgb),.035) 42%,rgba(var(--color-white-rgb),.02));border:1px solid rgba(var(--color-white-rgb),.16);box-shadow:0 28px 60px -28px #000000f2,0 0 0 1px #00000059,inset 0 1px rgba(var(--color-white-rgb),.12);animation:cv-sheet-float 9s ease-in-out infinite}.cv-sheet:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translate3d(.9em,.75em,-1.6em);background:rgba(var(--color-white-rgb),.03);border:1px solid rgba(var(--color-white-rgb),.08)}.cv-sheet:after{content:"";position:absolute;top:-1px;right:-1px;width:1.7em;height:1.7em;border-top-right-radius:inherit;background:linear-gradient(225deg,#00000080 0 46%,rgba(var(--color-accent-rgb),.3) 46% 49%,rgba(var(--color-white-rgb),.11) 49% 100%);clip-path:polygon(0 0,100% 0,100% 100%)}.cv-sheet-face{position:absolute;inset:0;display:flex;flex-direction:column;gap:1.15em;padding:1.5em 1.9em 1.5em 1.4em;box-sizing:border-box;overflow:hidden;border-radius:inherit}.cv-sheet-head{display:flex;align-items:center;gap:.75em}.cv-sheet-mark{flex:0 0 auto;width:2.5em;height:2.5em;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(var(--color-accent-rgb),.3),rgba(var(--color-white-rgb),.05) 70%);border:1px solid rgba(var(--color-accent-rgb),.4)}.cv-sheet-rules{display:flex;flex-direction:column;gap:.45em;flex:1 1 auto;min-width:0}.cv-sheet-rule{height:.5em;border-radius:999px;background:rgba(var(--color-white-rgb),.34)}.cv-sheet-rule--title{width:78%;height:.7em;background:rgba(var(--color-white-rgb),.5)}.cv-sheet-rule--sub{width:52%;background:rgba(var(--color-white-rgb),.2)}.cv-sheet-block{display:flex;flex-direction:column;gap:.38em}.cv-sheet-tag{width:3.4em;height:.42em;margin-bottom:.3em;border-radius:999px;background:rgba(var(--color-white-rgb),.45)}.cv-sheet-tag--accent{width:4.6em;background:var(--color-accent);box-shadow:0 0 12px rgba(var(--color-accent-rgb),.45)}.cv-sheet-line{width:var(--w, 100%);height:.3em;border-radius:999px;background:rgba(var(--color-white-rgb),.16)}.cv-sheet-block--cols{flex-direction:row;flex-wrap:wrap;gap:.4em .6em}.cv-sheet-block--cols .cv-sheet-line{flex:0 1 var(--w, 40%);width:auto}.cv-sheet-chips{display:flex;gap:.4em;margin-top:auto}.cv-sheet-chip{height:1.05em;border-radius:999px;background:rgba(var(--color-white-rgb),.06);border:1px solid rgba(var(--color-white-rgb),.14)}.cv-sheet-chip:nth-child(1){width:3.2em}.cv-sheet-chip:nth-child(2){width:2.4em}.cv-sheet-chip:nth-child(3){width:3.8em}@keyframes cv-sheet-float{0%,to{transform:perspective(1100px) rotateX(7deg) rotateY(-14deg) rotate(1.2deg) translateY(-.35em)}50%{transform:perspective(1100px) rotateX(5deg) rotateY(-11deg) rotate(.6deg) translateY(.35em)}}.cv-viewer{--cv-radius: 14px;margin-top:2rem;display:flex;flex-direction:column;min-width:0;border-radius:var(--cv-radius);background:#ffffff08;border:1px solid rgba(var(--color-white-rgb),.12);overflow:hidden}.cv-bar{position:sticky;top:0;z-index:3;background:#0e0e10d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(var(--color-white-rgb),.1);isolation:isolate}.cv-bar-fade{position:absolute;top:0;right:0;bottom:0;z-index:2;width:2.75rem;pointer-events:none;opacity:0;transition:opacity .2s ease;background:linear-gradient(to left,#0e0e10f2,#0e0e10b3 45%,#0e0e1000)}.cv-bar[data-scroll=more] .cv-bar-fade{opacity:1}.cv-bar-scroll{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.cv-bar-scroll::-webkit-scrollbar{display:none}.cv-group{display:flex;align-items:center;gap:.25rem;flex:0 0 auto}.cv-group--end{margin-left:auto}.cv-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-width:40px;min-height:40px;padding:0 .6rem;box-sizing:border-box;font-family:Inter,sans-serif;font-size:.86rem;font-weight:600;line-height:1;color:#ffffffd1;text-decoration:none;appearance:none;-webkit-appearance:none;background:#ffffff0d;border:1px solid rgba(var(--color-white-rgb),.1);border-radius:10px;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.cv-btn:hover:not(:disabled){background:#ffffff1a;border-color:rgba(var(--color-accent-rgb),.45);color:#fff}.cv-btn:active:not(:disabled){background:#ffffff24}.cv-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.cv-btn:disabled{opacity:.35;cursor:default}.cv-btn--num{min-width:4.5rem;font-variant-numeric:tabular-nums}.cv-count{margin:0;padding:0 .5rem;min-width:4.5rem;text-align:center;font-family:Inter,sans-serif;font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums;color:#ffffffb3;white-space:nowrap}.cv-btn--text{padding:0 .85rem}.cv-btn-label{white-space:nowrap}.cv-btn .cv-ico-close,.cv-viewer[data-fs=on] .cv-btn .cv-ico-open{display:none}.cv-viewer[data-fs=on] .cv-btn .cv-ico-close{display:inline-block}.cv-group[hidden]{display:none}.cv-stage{position:relative;overflow:auto;overscroll-behavior:contain auto;touch-action:pan-x pan-y;min-height:320px;max-height:clamp(360px,76svh,900px);scrollbar-gutter:stable;background:radial-gradient(ellipse at 50% 0%,rgba(var(--color-accent-rgb),.06),transparent 60%),#00000059}.cv-stage:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.cv-doc{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;min-width:min-content}.cv-stage[data-gesture=on] :is(.textLayer,.annotationLayer){display:none}.cv-page[data-soft=on] canvas{image-rendering:auto}.cv-page{--scale-factor: 1;--user-unit: 1;--total-scale-factor: calc(var(--scale-factor) * var(--user-unit));--scale-round-x: 1px;--scale-round-y: 1px;position:relative;flex:0 0 auto;background:#fff;border-radius:4px;box-shadow:0 18px 40px -18px #000000e6,0 0 0 1px #00000080;cursor:zoom-in}.cv-viewer[data-fs=on] .cv-page{cursor:default}.cv-page canvas{display:block;width:100%;height:100%;border-radius:inherit}.textLayer{color-scheme:only light;position:absolute;inset:0;z-index:2;overflow:clip;opacity:1;line-height:1;letter-spacing:normal;word-spacing:normal;text-align:initial;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;--min-font-size: 1;--text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv: calc(1 / var(--min-font-size))}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%;-webkit-user-select:text;user-select:text}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent){z-index:1;--font-height: 0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x: 1;--rotate: 0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.textLayer .markedContent{display:contents}.textLayer span[role=img]{-webkit-user-select:none;user-select:none;cursor:default}.textLayer ::selection{background:color-mix(in srgb,var(--color-accent),transparent 60%);color:transparent}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:0;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.annotationLayer{color-scheme:only light;position:absolute;top:0;left:0;z-index:3;pointer-events:none;transform-origin:0 0}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0;-webkit-user-select:none;user-select:none}.annotationLayer .linkAnnotation>a{position:absolute;top:0;left:0;width:100%;height:100%;font-size:1em}.annotationLayer .linkAnnotation>a:hover{background-color:rgba(var(--color-accent-rgb),.25);border-radius:2px}.annotationLayer .linkAnnotation>a:focus-visible{outline:2px solid var(--color-accent)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.cv-state{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;margin:0;padding:2rem 1.25rem;box-sizing:border-box;text-align:center;font-family:Inter,sans-serif;font-size:.92rem;color:#fff9;background:#00000080}.cv-state[hidden]{display:none}.cv-state i{color:var(--color-accent)}.cv-state--error i{color:#fbbf24}.cv-state-title{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1rem;font-weight:600;color:#ffffffe6}.cv-state-text{margin:0;max-width:46ch;line-height:1.55}.cv-state-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:.35rem;padding:.6rem 1rem;min-height:44px;box-sizing:border-box;font-weight:600;color:#fff;text-decoration:none;background:#ffffff0f;border:1px solid rgba(var(--color-accent-rgb),.4);border-radius:999px}.cv-state-link:hover{background:rgba(var(--color-accent-rgb),.16)}.cv-state-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.cv-viewer[data-fs=on]{position:fixed;inset:0;z-index:1200;margin:0;height:100dvh;max-height:none;border:0;border-radius:0;background:var(--color-bg)}.cv-viewer[data-fs=on] .cv-stage{flex:1 1 auto;max-height:none;overscroll-behavior:contain}.cv-viewer[data-fs=on] .cv-doc{min-height:100%}.cv-viewer[data-fs=on] .cv-page:only-child{margin-block:auto}body.cv-fs-open .cv-panel{animation:none;transform:none;opacity:1}body.cv-fs-open .portfolio-container{z-index:1200}body.cv-fs-open{overflow:hidden}html:has(body.cv-fs-open){--os-viewport-overflow-y: hidden}@media(prefers-reduced-motion:reduce){.cv-btn,.cv-stage,.cv-bar-fade{transition:none;scroll-behavior:auto}.cv-sheet{animation:none}}@media(max-width:1079px){.cv-panel{--cv-pad-x: 2rem}.cv-head{gap:1.75rem;grid-template-columns:minmax(0,1fr) minmax(0,.5fr)}}@media(max-width:760px){.cv-panel{--cv-pad-x: 1.5rem;padding-bottom:1.75rem}.cv-head{position:relative;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:0;clip-path:none}.cv-visual{--floor-u: 2.6rem;--floor-w: 11;--floor-d: 5;position:absolute;top:-6rem;left:calc(-1 * var(--cv-pad-x));right:calc(-1 * var(--cv-pad-x));z-index:0;padding-left:44%;display:flex;justify-content:center;align-items:flex-start;width:auto;height:22.25rem;pointer-events:none;opacity:.5;overflow:hidden}.cv-visual:before{left:auto;right:0;transform-origin:100% 0;transform:translateY(calc(var(--floor-u) * var(--floor-drop))) perspective(calc(var(--floor-u) * var(--floor-persp))) rotateX(var(--floor-tilt));-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 58%,transparent 88%),linear-gradient(to left,#000 40%,transparent 94%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 58%,transparent 88%),linear-gradient(to left,#000 40%,transparent 94%);mask-composite:intersect}.cv-sheet{margin-top:5.6rem;font-size:.44rem;width:11em;transform:perspective(700px) rotateX(4deg) rotateY(-12deg) rotate(2deg);animation:none}.cv-sheet-block:nth-child(2) .cv-sheet-line:last-child{display:none}.cv-intro{position:relative;z-index:1}.cv-actions{margin-top:1.35rem;flex-direction:column;align-items:stretch;gap:.6rem}.cv-actions .hero-cta-btn{flex:0 0 auto;width:100%;justify-content:center}.cv-viewer{position:relative;z-index:6;margin-inline:calc(var(--cv-pad-x) * -1);margin-top:1.75rem;border-radius:0;border-inline:0}.cv-doc{padding:.5rem;gap:.6rem}.cv-btn{min-width:44px;min-height:44px}.cv-btn-label{display:none}.cv-btn--text{padding:0 .6rem}.cv-count,.cv-btn--num{min-width:3.9rem}.cv-stage{max-height:clamp(320px,72svh,720px)}}@media(max-width:550px){.cv-visual{padding-left:75%}}@media(min-width:551px)and (max-width:760px){.cv-sheet{width:13em}}@media(max-width:400px){.cv-panel{--cv-pad-x: 1.25rem}.cv-bar-scroll{gap:.35rem;padding:.45rem .5rem}.cv-count{min-width:3.4rem;padding:0 .25rem}}
