#portfolio-uiux{--white: #ffffff;--linen: #efe1d4;--clay: #d29a84;--cacao: #58433b;--black: #3D2E28;--accent-light: #E4BBA8;--accent-dark: #B8806A;--text-muted: #7A6459;--text-light: #9C8A80;--card-bg: #FAF6F2;--shadow-color: 88, 67, 59;--accent-rgb: 210, 154, 132;--bg: var(--linen);--surface: var(--card-bg);--ink: var(--cacao);--ink-strong: #3D2E28;--muted: color-mix(in oklab, var(--ink) 70%, var(--linen));--cap: color-mix(in oklab, var(--ink) 55%, var(--linen));--border: color-mix(in oklab, var(--ink) 18%, #fff);--border-strong: color-mix(in oklab, var(--ink) 28%, #fff);--radius-xl: 24px;--radius-md: 12px;--shadow: 0 12px 30px rgba(var(--shadow-color), .08);--shadow-hover: 0 18px 46px rgba(var(--shadow-color), .12);--focus: var(--clay);--padX: 24px;--sectionY: 110px;--step--1: clamp(.88rem, .36vw + .8rem, .98rem);--step-0: clamp(1rem, .45vw + .9rem, 1.06rem);--step-1: clamp(1.1rem, .65vw + .95rem, 1.2rem);--step-2: clamp(1.25rem, 1vw + 1rem, 1.45rem);--step-3: clamp(1.45rem, 1.4vw + 1.05rem, 1.75rem);--max-ch: 68ch;--badge-size: 30px;--badge-top-offset: -12px;--accent-gap: 26px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.23, 1, .32, 1)}#portfolio-uiux.portfolio{color:var(--ink);padding:var(--sectionY) var(--padX);background:var(--bg);position:relative}#portfolio-uiux.portfolio:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(280px,40vw);height:1px;background:linear-gradient(90deg,transparent,var(--clay),transparent);opacity:.5}#portfolio-uiux.portfolio:after{content:"";position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);width:6px;height:6px;background:var(--clay);border-radius:50%;opacity:.4}#portfolio-uiux .portfolio__skip{position:absolute;left:-9999px;top:16px;z-index:10000;background:var(--card-bg);color:var(--ink-strong);border:2px solid var(--clay);border-radius:999px;padding:12px 20px;font-weight:600;font-size:.9rem;text-decoration:none;transition:left .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}#portfolio-uiux .portfolio__skip:focus{left:16px;box-shadow:0 0 0 4px rgba(var(--accent-rgb),.2),0 8px 24px rgba(var(--shadow-color),.15);outline:none}#portfolio-uiux .portfolio__skip:focus:hover{transform:translateY(-2px);background:var(--clay);color:#fff}#portfolio-uiux .ux-section-title{width:min(1200px,92vw);margin:0 auto 48px;text-align:center;position:relative}#portfolio-uiux .ux-section-title__text{margin:0;font-family:"PT Serif",Georgia,serif;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--ink);line-height:1;position:relative;display:inline-block;opacity:0;transform:translateY(12px);animation:ux-title-reveal 1.2s cubic-bezier(.23,1,.32,1) .2s forwards;will-change:opacity,transform}@keyframes ux-title-reveal{to{opacity:1;transform:translateZ(0)}}#portfolio-uiux .ux-section-title__flourish{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;opacity:0;transform:translateY(8px);animation:ux-title-reveal 1s cubic-bezier(.23,1,.32,1) .5s forwards;will-change:opacity,transform}#portfolio-uiux .ux-section-title__flourish:before,#portfolio-uiux .ux-section-title__flourish:after{content:"";width:32px;height:1px;background:linear-gradient(90deg,transparent,var(--clay))}#portfolio-uiux .ux-section-title__flourish:after{background:linear-gradient(90deg,var(--clay),transparent)}#portfolio-uiux .ux-section-title__flourish-icon{width:6px;height:6px;background:var(--clay);border-radius:50%;opacity:.8}#portfolio-uiux .ux-section-title__sub{display:block;margin-top:20px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.125rem;font-weight:400;font-style:italic;letter-spacing:.02em;color:var(--muted);opacity:0;transform:translateY(6px);animation:ux-title-reveal 1s cubic-bezier(.23,1,.32,1) .7s forwards;will-change:opacity,transform}@media(max-width:600px){#portfolio-uiux .ux-section-title{margin-bottom:32px}#portfolio-uiux .ux-section-title__text{font-size:clamp(1.25rem,6vw,2rem)}#portfolio-uiux .ux-section-title__flourish{gap:10px;margin-top:14px}#portfolio-uiux .ux-section-title__flourish:before,#portfolio-uiux .ux-section-title__flourish:after{width:20px}#portfolio-uiux .ux-section-title__flourish-icon{width:4px;height:4px}#portfolio-uiux .ux-section-title__sub{margin-top:14px;font-size:.9375rem}}@media(max-width:400px){#portfolio-uiux .ux-section-title{margin-bottom:24px}#portfolio-uiux .ux-section-title__text{font-size:1.25rem}#portfolio-uiux .ux-section-title__sub{font-size:.875rem}}#portfolio-uiux .portfolio__header{position:sticky;top:0;z-index:3;backdrop-filter:saturate(125%) blur(6px);background:color-mix(in oklab,var(--linen) 82%,#fff);border-bottom:1px solid var(--border);margin:-24px calc(var(--padX) * -1) 18px;padding:14px var(--padX);padding-top:calc(14px + env(safe-area-inset-top,0px))}#portfolio-uiux .portfolio__header-inner{display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:min(1200px,92vw);margin:0 auto}#portfolio-uiux .portfolio__title{margin:0;font-weight:750;letter-spacing:.005em;color:var(--ink-strong);font-size:clamp(1.25rem,1.3vw + 1rem,1.7rem)}#portfolio-uiux .portfolio__count{font-size:.9rem;color:var(--muted);padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#fff}#portfolio-uiux .portfolio__about{width:min(1200px,92vw);margin:6px auto 16px}#portfolio-uiux .portfolio__about-inner{color:var(--ink);max-width:var(--max-ch)}#portfolio-uiux .about__lead{margin:0 0 8px;color:var(--ink-strong);font-weight:760;font-size:clamp(1.15rem,1.2vw + .9rem,1.6rem)}#portfolio-uiux .portfolio__about-inner p{margin:0 0 10px;color:var(--muted);line-height:1.7}#portfolio-uiux .portfolio__filters{width:min(1200px,92vw);margin:8px auto 20px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-inline:var(--padX);margin-inline:calc(var(--padX) * -1);padding-block:8px;mask-image:linear-gradient(to right,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%)}@media(min-width:901px){#portfolio-uiux .portfolio__filters{mask-image:none;-webkit-mask-image:none}}#portfolio-uiux .pill{appearance:none;border:1px solid var(--border);background:#fff;color:var(--ink-strong);padding:12px;border-radius:999px;cursor:pointer;font-weight:600;line-height:1;transition:transform .18s,background .18s,border-color .18s,color .18s;scroll-snap-align:start;white-space:nowrap;flex:0 0 auto;min-height:44px}#portfolio-uiux .pill:hover{transform:translateY(-1px)}#portfolio-uiux .pill.is-active{background:var(--ink-strong);color:#fff;border-color:var(--ink-strong);box-shadow:0 2px 10px rgba(var(--shadow-color),.12)}#portfolio-uiux .portfolio__wrap{display:grid;gap:64px;width:min(1200px,92vw);margin:0 auto}#portfolio-uiux #projects-list.portfolio__wrap{grid-template-columns:1fr}#portfolio-uiux .btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-weight:650;font-size:.95rem;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);min-height:44px}#portfolio-uiux .btn:focus-visible{outline:2px solid color-mix(in oklab,var(--clay) 70%,#fff);outline-offset:3px;transform:translateY(-2px)}#portfolio-uiux .btn:active{transform:scale(.97);transition-duration:.1s}#portfolio-uiux .btn--primary{background:var(--ink-strong);color:#fff;border-color:var(--ink-strong);letter-spacing:.01em;box-shadow:0 2px 8px rgba(var(--shadow-color),.15)}#portfolio-uiux .btn--primary:after{content:"↗";font-size:1rem;transform:translateY(-1px);transition:transform .25s var(--ease)}#portfolio-uiux .btn--primary:hover{background:var(--clay);border-color:var(--clay);box-shadow:0 4px 16px rgba(var(--accent-rgb),.3);transform:translateY(-2px)}#portfolio-uiux .btn--primary:hover:after{transform:translate(2px,-3px)}#portfolio-uiux .btn--ghost{background:var(--card-bg);color:var(--ink-strong);border:1px solid var(--border);box-shadow:0 1px 2px rgba(var(--shadow-color),.04)}#portfolio-uiux .btn--ghost:hover{background:#fff;border-color:rgba(var(--accent-rgb),.3);box-shadow:0 4px 12px rgba(var(--shadow-color),.08);transform:translateY(-2px)}#portfolio-uiux .project{--accent: var(--clay)}#portfolio-uiux .project__accent{height:3px;border-radius:999px;margin-bottom:var(--accent-gap);background:linear-gradient(90deg,color-mix(in oklab,var(--accent) 92%,#fff),color-mix(in oklab,var(--accent) 60%,#fff));position:relative;z-index:0}#portfolio-uiux .project__card{position:relative;z-index:1;border-radius:var(--radius-xl);background:var(--surface);border:1px solid rgba(var(--shadow-color),.06);box-shadow:0 1px 2px rgba(var(--shadow-color),.04),0 4px 16px rgba(var(--shadow-color),.06);padding:clamp(18px,2.1vw,28px);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}#portfolio-uiux .project__card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.5) 0%,transparent 60%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none;z-index:1;overflow:hidden}@media(hover:hover){#portfolio-uiux .project__card:hover{transform:translate3d(0,-6px,0);box-shadow:0 8px 24px rgba(var(--shadow-color),.08),0 16px 48px rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.2)}#portfolio-uiux .project__card:hover:before{opacity:1}}#portfolio-uiux .project__card:has(:focus-visible){box-shadow:0 0 0 3px rgba(var(--accent-rgb),.3),0 8px 24px rgba(var(--shadow-color),.08);border-color:var(--clay)}@supports not selector(:has(*)){#portfolio-uiux .project__card:focus-within{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.3),0 8px 24px rgba(var(--shadow-color),.08);border-color:var(--clay)}}#portfolio-uiux .project__card:active{transform:scale(.995);transition-duration:.1s}#portfolio-uiux .portfolio__wrap{counter-reset:proj}#portfolio-uiux .project{counter-increment:proj}#portfolio-uiux .project__card:after{content:counter(proj,decimal-leading-zero);position:absolute;top:var(--badge-top-offset);left:16px;display:grid;place-items:center;width:var(--badge-size);height:var(--badge-size);font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--ink-strong);background:var(--card-bg);border:1px solid var(--border);border-radius:999px;box-shadow:0 0 0 4px var(--card-bg),0 4px 12px rgba(var(--shadow-color),.08);z-index:3;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}#portfolio-uiux .project__grid{display:grid;grid-template-columns:1fr 1.12fr;gap:36px;align-items:stretch}#portfolio-uiux .project__text{position:relative;z-index:1;opacity:0;transform:translate3d(0,16px,0);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);max-width:65ch;display:flex;flex-direction:column}#portfolio-uiux .project__title{margin:0 0 10px;font-family:"PT Serif",Georgia,serif;font-weight:400;color:var(--ink-strong);letter-spacing:.01em;font-feature-settings:"liga" on,"ss01" on,"cv01" on;font-size:clamp(1.35rem,1.6vw + .8rem,2.05rem)}#portfolio-uiux .project__sub{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;color:var(--muted);line-height:1.75;margin:0 0 16px;max-width:560px}#portfolio-uiux .project__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;position:relative;padding-top:0}#portfolio-uiux .project__meta{margin-bottom:14px}#portfolio-uiux .badge{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--ink-strong);background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 12px;box-shadow:0 1px rgba(var(--shadow-color),.04)}#portfolio-uiux .badge:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent)}#portfolio-uiux .project__frame{position:relative;width:100%;padding-bottom:71.1%;border-radius:22px;overflow:hidden;background:var(--card-bg);border:1px solid rgba(var(--shadow-color),.06);box-shadow:0 4px 16px rgba(var(--shadow-color),.06),0 12px 40px rgba(var(--shadow-color),.08);opacity:0;transform:translate3d(0,24px,0) scale(.98);transition:opacity .7s var(--ease-out) .15s,transform .7s var(--ease-out) .15s,box-shadow .4s var(--ease);align-self:start;justify-self:stretch;min-width:0;margin:0;box-sizing:border-box}#portfolio-uiux .project__frame.is-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--shadow-color),.03),rgba(var(--shadow-color),.06) 40%,rgba(var(--shadow-color),.03) 60%,rgba(var(--shadow-color),.02));background-size:200% 100%;animation:ux-frame-shimmer 1.5s var(--ease) infinite;z-index:2;pointer-events:none}@keyframes ux-frame-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}#portfolio-uiux .project__frame.is-loading .project__iframe{opacity:0}#portfolio-uiux .project__frame.is-loaded .project__iframe{opacity:1;transition:opacity .4s var(--ease)}#portfolio-uiux .project__frame.is-loaded:after{opacity:0;transition:opacity .3s var(--ease)}#portfolio-uiux .project__frame:before{content:"";position:absolute;inset:0;border-radius:22px;box-shadow:inset 0 0 0 1px rgba(var(--shadow-color),.06);background:color-mix(in oklab,var(--clay) 5%,transparent);opacity:0;transition:opacity .3s var(--ease);pointer-events:none;z-index:1}@media(hover:hover){#portfolio-uiux .project__frame:hover:before{opacity:1}#portfolio-uiux .project__frame:hover{box-shadow:0 8px 24px rgba(var(--shadow-color),.1),0 20px 60px rgba(var(--accent-rgb),.12)}}#portfolio-uiux .proto-chip{position:absolute;inset:auto 12px 12px auto;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;font-weight:500;letter-spacing:.02em;line-height:1;color:#fff;background:rgba(var(--shadow-color),.55);border:1px solid rgba(255,255,255,.15);border-radius:999px;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 4px 16px rgba(var(--shadow-color),.2),inset 0 1px #ffffff1a;cursor:pointer;transition:opacity .3s var(--ease),transform .3s var(--ease),background .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}#portfolio-uiux .proto-chip:hover{background:rgba(var(--accent-rgb),.85);border-color:#ffffff40;box-shadow:0 6px 20px rgba(var(--accent-rgb),.35),inset 0 1px #ffffff26;transform:translateY(-2px)}#portfolio-uiux .proto-chip:focus-visible{outline:2px solid color-mix(in oklab,var(--clay) 70%,#fff);outline-offset:3px}#portfolio-uiux .proto-chip:active{transform:scale(.96);transition-duration:.1s}#portfolio-uiux .proto-chip__icon{display:inline-block;transform:translateY(1px);transition:transform .25s var(--ease)}#portfolio-uiux .proto-chip:hover .proto-chip__icon{transform:translateY(1px) scale(1.1)}@keyframes ux-chip-pulse{0%,to{box-shadow:0 4px 16px rgba(var(--shadow-color),.2),inset 0 1px #ffffff1a}50%{box-shadow:0 4px 20px rgba(var(--accent-rgb),.25),inset 0 1px #ffffff26}}#portfolio-uiux .project.is-inview .proto-chip{animation:ux-chip-pulse 3s var(--ease) 2s infinite}#portfolio-uiux .proto-chip:hover,#portfolio-uiux .proto-chip:focus{animation:none}@media(hover:hover){#portfolio-uiux .project__frame:hover .proto-chip{opacity:0;transform:translateY(6px)}}#portfolio-uiux .project__frame:focus-within .proto-chip{opacity:0;transform:translateY(6px)}#portfolio-uiux .project__iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;transition:transform .5s var(--ease);will-change:transform;backface-visibility:hidden;transform:scale(1.002)}@media(hover:hover){#portfolio-uiux .project__frame:hover .project__iframe{transform:scale(1.015)}}#portfolio-uiux .project.is-inview .project__text,#portfolio-uiux .project.is-inview .project__frame{opacity:1;transform:translateZ(0) scale(1)}#portfolio-uiux .project{opacity:0;transform:translate3d(0,32px,0);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}#portfolio-uiux .project.is-inview{opacity:1;transform:translateZ(0)}#portfolio-uiux .project:nth-child(1){transition-delay:.1s}#portfolio-uiux .project:nth-child(2){transition-delay:.2s}#portfolio-uiux .project:nth-child(3){transition-delay:.3s}#portfolio-uiux .project:nth-child(4){transition-delay:.4s}#portfolio-uiux .project:nth-child(5){transition-delay:.5s}#portfolio-uiux .project:nth-child(n+6){transition-delay:.6s}#portfolio-uiux .project__cap{text-align:center;color:var(--cap);font-size:.92rem;margin:12px auto 0;max-width:80ch}#portfolio-uiux .project__divider{position:relative;width:min(1100px,90vw);height:18px;margin:34px auto 0;border:0;background:none}#portfolio-uiux .project__divider:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;transform:translateY(-50%);background:linear-gradient(90deg,transparent,var(--border-strong),transparent)}#portfolio-uiux .project__divider:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:var(--clay);box-shadow:0 0 0 6px #fff,0 0 0 1px var(--border-strong),0 6px 18px rgba(var(--shadow-color),.08)}#portfolio-uiux .portfolio-modal[hidden]{display:none}#portfolio-uiux .portfolio-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;isolation:isolate}#portfolio-uiux .portfolio-modal__backdrop{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(var(--shadow-color),.6),rgba(var(--shadow-color),.85));backdrop-filter:blur(12px) saturate(120%);cursor:pointer;animation:ux-backdrop-in .3s var(--ease)}@keyframes ux-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes ux-backdrop-out{0%{opacity:1}to{opacity:0}}#portfolio-uiux .portfolio-modal__backdrop:active{background:radial-gradient(circle at center,rgba(var(--shadow-color),.65),rgba(var(--shadow-color),.9))}#portfolio-uiux .portfolio-modal__dialog{position:relative;width:min(1100px,92vw);max-height:min(88dvh,820px);background:var(--card-bg);color:var(--ink-strong);border-radius:18px;border:1px solid rgba(var(--shadow-color),.08);box-shadow:0 24px 64px rgba(var(--shadow-color),.25),0 8px 24px rgba(var(--shadow-color),.15);overflow:hidden;display:flex;flex-direction:column;animation:ux-modal-in .4s var(--ease-out)}@keyframes ux-modal-in{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ux-modal-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(10px)}}#portfolio-uiux .portfolio-modal.is-closing .portfolio-modal__backdrop{animation:ux-backdrop-out .25s var(--ease) forwards}#portfolio-uiux .portfolio-modal.is-closing .portfolio-modal__dialog{animation:ux-modal-out .25s var(--ease) forwards}#portfolio-uiux .portfolio-modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px 12px 16px;border-bottom:1px solid var(--border)}#portfolio-uiux .portfolio-modal__title{font-size:1.05rem;margin:0}#portfolio-uiux .portfolio-modal__actions{display:flex;align-items:center;gap:12px}#portfolio-uiux .portfolio-modal__open{font-size:.95rem;text-decoration:underline;color:var(--ink-strong)}#portfolio-uiux .portfolio-modal__close{appearance:none;border:1px solid var(--border);background:var(--card-bg);color:var(--ink-strong);border-radius:10px;padding:8px 16px;cursor:pointer;font-weight:650;min-height:44px;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}#portfolio-uiux .portfolio-modal__close:hover{background:var(--clay);color:#fff;border-color:var(--clay);box-shadow:0 4px 12px rgba(var(--accent-rgb),.3)}#portfolio-uiux .portfolio-modal__close:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.4),0 4px 12px rgba(var(--accent-rgb),.2);border-color:var(--clay)}#portfolio-uiux .portfolio-modal__close:active{transform:scale(.95);transition-duration:.1s}#portfolio-uiux .portfolio-modal__frame{position:relative;width:100%;padding-bottom:71.1%;background:color-mix(in oklab,#fff 70%,var(--linen));overflow:hidden}#portfolio-uiux .portfolio-modal.is-loading .portfolio-modal__frame:after{content:"";position:absolute;top:0;left:0;height:3px;width:30%;background:linear-gradient(90deg,var(--clay),var(--accent-light));border-radius:0 2px 2px 0;animation:ux-progress 1.5s var(--ease) infinite}@keyframes ux-progress{0%{width:0%;left:0}50%{width:60%;left:20%}to{width:0%;left:100%}}@media(max-width:600px){#portfolio-uiux .portfolio-modal__dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:none}#portfolio-uiux .portfolio-modal__frame{padding-bottom:0;flex:1;height:auto}#portfolio-uiux .portfolio-modal__iframe{position:relative;height:100%}#portfolio-uiux .portfolio-modal__header{padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px 16px}#portfolio-uiux .portfolio-modal__close{min-width:44px;min-height:44px}}#portfolio-uiux .portfolio-modal__iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}#portfolio-uiux .portfolio-modal__frame:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--shadow-color),.04),rgba(var(--shadow-color),.06) 35%,rgba(var(--shadow-color),.04) 65%,rgba(var(--shadow-color),.03));background-size:200% 100%;animation:ux-shimmer 1.4s linear infinite;opacity:0;pointer-events:none}#portfolio-uiux .portfolio-modal.is-loading .portfolio-modal__frame:before{opacity:1}@keyframes ux-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}#portfolio-uiux .portfolio-modal__spinner{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .25s ease}#portfolio-uiux .portfolio-modal.is-loading .portfolio-modal__spinner{opacity:1}#portfolio-uiux .portfolio-modal__spinner:after{content:"";width:28px;height:28px;border-radius:50%;border:3px solid rgba(var(--shadow-color),.15);border-top-color:var(--clay);animation:ux-spin .9s linear infinite}@keyframes ux-spin{to{transform:rotate(360deg)}}#portfolio-uiux .portfolio-modal__fallback{padding:12px 16px;color:var(--muted)}#portfolio-uiux.no-scroll,html.no-scroll{overflow:hidden}@media(min-width:901px){#portfolio-uiux .project__frame{position:sticky;top:80px}}@media(max-width:900px){#portfolio-uiux .project__grid{grid-template-columns:1fr;gap:20px}#portfolio-uiux .project__text{text-align:left}#portfolio-uiux .project__actions{gap:10px}#portfolio-uiux .portfolio__wrap{gap:48px}#portfolio-uiux .project__card{border-radius:20px}#portfolio-uiux .btn{width:100%;justify-content:center}}@media(max-width:600px){#portfolio-uiux{--badge-size: 26px;--badge-top-offset: -10px;--accent-gap: 24px}#portfolio-uiux .project__divider{margin-top:18px;height:14px}#portfolio-uiux .project__card:after{box-shadow:0 0 0 3px #fff,0 8px 16px rgba(var(--shadow-color),.1)}}@media(max-width:420px){#portfolio-uiux .project__card{border-radius:16px}#portfolio-uiux .portfolio__title,#portfolio-uiux .project__title{font-size:var(--step-3)}#portfolio-uiux .proto-chip{inset:auto 10px 10px auto;font-size:.82rem;padding:7px 10px}}@media(prefers-contrast:more){#portfolio-uiux .portfolio__header{backdrop-filter:none}#portfolio-uiux .project__card{box-shadow:none;border:2px solid var(--ink-strong)}#portfolio-uiux .btn{border-width:2px}#portfolio-uiux .btn--primary{background:var(--ink-strong);border-color:var(--ink-strong)}#portfolio-uiux .proto-chip{background:var(--ink-strong);border:2px solid #fff}#portfolio-uiux .project__frame{border:2px solid var(--ink-strong)}#portfolio-uiux *:focus-visible{outline:3px solid var(--ink-strong)!important;outline-offset:3px!important}}@media(prefers-reduced-motion:reduce){#portfolio-uiux .ux-section-title__text,#portfolio-uiux .ux-section-title__flourish,#portfolio-uiux .ux-section-title__sub,#portfolio-uiux .project__text,#portfolio-uiux .project__frame,#portfolio-uiux .btn,#portfolio-uiux .project__card{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}}@media(pointer:coarse){#portfolio-uiux .btn,#portfolio-uiux .pill,#portfolio-uiux .proto-chip{min-height:44px;min-width:44px}#portfolio-uiux .btn,#portfolio-uiux .pill,#portfolio-uiux .proto-chip,#portfolio-uiux .project__card{-webkit-tap-highlight-color:transparent;touch-action:manipulation}#portfolio-uiux .btn:active,#portfolio-uiux .pill:active{transform:scale(.96);transition-duration:.08s}#portfolio-uiux .proto-chip:active{transform:scale(.94);transition-duration:.08s}#portfolio-uiux .project__card:hover,#portfolio-uiux .project__frame:hover,#portfolio-uiux .btn:hover{transform:none}#portfolio-uiux .project__card:active{transform:scale(.985);transition-duration:.1s}#portfolio-uiux .proto-chip{opacity:1!important}#portfolio-uiux .project__frame:hover .proto-chip{opacity:1;transform:none}#portfolio-uiux .proto-chip{padding:12px 16px;font-size:.9rem}#portfolio-uiux .portfolio-modal__close{min-width:48px;min-height:48px;padding:12px 20px}}#portfolio-uiux{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){#portfolio-uiux{scroll-behavior:auto}}#projects-list{scroll-margin-top:84px}#portfolio-uiux .ux-section-title{transition:opacity .3s var(--ease)}#portfolio-uiux.is-scrolled .ux-section-title{opacity:.6}#portfolio-uiux .project__title{overflow-wrap:anywhere}#portfolio-uiux .btn,#portfolio-uiux .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}#portfolio-uiux{padding:80px 40px}.portfolio__filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px;justify-content:center}.pill{padding:8px 20px;background:#f0f0f0;border:none;border-radius:20px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;color:#333}.pill:hover{background:#e0e0e0;transform:translateY(-2px)}.pill.is-active,.pill[aria-pressed=true]{background:#111;color:#fff}#projects-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px}.project{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.project.is-inview{opacity:1;transform:translateY(0)}.portfolio-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:#000000e6;backdrop-filter:blur(4px)}.portfolio-modal__backdrop{position:absolute;inset:0;cursor:pointer}.portfolio-modal__dialog{position:relative;width:100%;max-width:1400px;max-height:90vh;background:#fff;border-radius:12px;display:flex;flex-direction:column;z-index:1;box-shadow:0 20px 60px #0000004d}.portfolio-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e0e0e0}.portfolio-modal__title{font-size:1.5rem;font-weight:700;margin:0;color:#111}.portfolio-modal__actions{display:flex;align-items:center;gap:16px}.portfolio-modal__open{color:#ff8a42;text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s ease}.portfolio-modal__open:hover{color:#ff6a00}.portfolio-modal__close{background:transparent;border:none;font-size:1.5rem;color:#666;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .2s ease,color .2s ease}.portfolio-modal__close:hover,.portfolio-modal__close:focus{background:#f0f0f0;color:#111;outline:none}.portfolio-modal__body{flex:1;overflow:hidden;position:relative}.portfolio-modal__frame{position:relative;width:100%;height:100%;min-height:400px}.portfolio-modal__spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:4px solid #f0f0f0;border-top-color:#ff8a42;border-radius:50%;animation:spin .8s linear infinite}.portfolio-modal.is-loading .portfolio-modal__spinner{display:block}.portfolio-modal:not(.is-loading) .portfolio-modal__spinner{display:none}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.portfolio-modal__iframe{width:100%;height:100%;border:none;display:block}.portfolio-modal__fallback{padding:40px;text-align:center;color:#666}.portfolio-modal__fallback a{color:#ff8a42;text-decoration:none}.portfolio-modal__fallback a:hover{text-decoration:underline}.no-scroll{overflow:hidden}@media(max-width:768px){#portfolio-uiux{padding:40px 20px}.portfolio-modal__dialog{max-height:95vh}.portfolio-modal__header{padding:16px 20px}.portfolio-modal__title{font-size:1.2rem}}#portfolio-uiux{margin-top:clamp(56px,8vw,80px)}#portfolio-uiux .portfolio__count{width:fit-content;justify-self:center;margin-inline:auto}
