.App{min-height:100vh;display:flex;flex-direction:column}.footer{margin-top:auto;padding:1.5rem 2rem 2rem;background:linear-gradient(180deg,#24153ff0,#1b102ffa);color:#ffffffbd;text-align:center;border-top:1px solid rgba(255,255,255,.08)}.footer p{margin:0;font-size:.94rem;letter-spacing:.03em}.logo-art{font-family:monospace;white-space:pre;line-height:1.2;font-size:.65em;display:inline-block}.logo-text{margin-left:1rem}.navbar{background:#faf7f0c2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 32px #351f5914;position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--color-border-soft);transition:transform .3s ease,box-shadow .3s ease}.navbar.navbar-hidden{transform:translateY(-100%)}.nav-container{width:min(1120px,calc(100% - 1.5rem));margin:0 auto;padding:.85rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem}.logo{font-size:1.65rem;font-weight:900;color:var(--color-primary);text-decoration:none;letter-spacing:-.04em;transition:transform .2s ease,color .2s ease;position:relative;display:flex;align-items:center;gap:.65rem}.logo:hover{transform:translateY(-1px)}.logo:focus-visible{outline:3px solid var(--color-accent-gold-30);outline-offset:6px;border-radius:16px}.logo:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:3px;background:var(--bg-gradient-accent);transition:width .4s cubic-bezier(.4,0,.2,1);border-radius:2px}.logo:hover:after{width:100%}.nav-menu{display:flex;gap:.45rem;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap}.nav-menu li{margin:0}.nav-menu__link{min-width:auto;box-shadow:none}.nav-menu__link:before{content:"";position:absolute;bottom:.45rem;left:50%;transform:translate(-50%);width:0;height:2px;background:var(--bg-gradient-accent);transition:width .35s cubic-bezier(.4,0,.2,1);border-radius:2px}.nav-menu__link:hover:before,.nav-menu__link.action-link-secondary:before{width:55%}.nav-menu__link.action-link-secondary:before{background:var(--color-secondary)}.nav-menu__link.action-link{min-height:2.55rem;padding:.55rem .8rem;border-radius:12px;background:transparent}.nav-menu__link.action-link:hover{box-shadow:none}.nav-menu__link.action-link-secondary{background:#4b2e8314;border-color:#4b2e831a;box-shadow:none}.nav-menu__link.action-link-secondary:hover{background:#4b2e831a;border-color:#4b2e831f}@media(max-width:768px){.nav-container{width:min(100%,calc(100% - 1.25rem));padding:.75rem 0}.nav-menu{gap:.25rem}.nav-menu__link{min-width:5.5rem}.logo{font-size:1.4rem}}@media(max-width:640px){.nav-container{width:min(100%,calc(100% - 1rem))}.nav-menu{gap:.2rem}.nav-menu__link{min-width:5.1rem}.logo{font-size:1.3rem}}@media(max-width:500px){.navbar{box-shadow:0 8px 24px #4b2e8314}.nav-container{gap:.65rem}.nav-menu{gap:.15rem}.nav-menu__link{min-width:auto}.logo{font-size:1rem;gap:.4rem}.logo:after{height:2px}}@media(max-width:360px){.logo{font-size:1.15rem}}.scroll-to-top{position:fixed!important;top:auto!important;right:1.5rem!important;bottom:1.5rem!important;left:auto!important;margin:0!important;opacity:0;visibility:hidden;transform:translateY(18px) scale(.96);transition:transform .25s ease,opacity .25s ease,visibility .25s ease;z-index:1200}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.scroll-to-top:hover{transform:translateY(-2px) scale(1.015)}.scroll-to-top:active{transform:translateY(-1px) scale(.98)}.scroll-to-top.action-link{isolation:isolate;overflow:visible;padding:0;border-color:#4a2e8377;background:linear-gradient(180deg,#fffffffa,#f8f5fbf5);color:var(--color-primary);box-shadow:0 12px 28px #1f172b24,inset 0 1px #ffffffc7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.scroll-to-top.action-link:before{content:"";position:absolute;top:-.2rem;right:-.2rem;bottom:-.2rem;left:-.2rem;border-radius:24px;opacity:0;transform:scale(.92);transition:opacity .25s ease,transform .25s ease;pointer-events:none;z-index:-1}.scroll-to-top.action-link:hover{border-color:#4b2e83e6;background:linear-gradient(180deg,#fff,#f4effafa);color:var(--color-primary);box-shadow:0 0 5px #1f172b80,0 0 5px #4b2e8380}.scroll-to-top.action-link:hover:before{opacity:.65;transform:scale(1)}.scroll-to-top svg,.scroll-to-top .svg-inline--fa{width:1rem;height:1rem;transition:transform .25s ease,color .25s ease}.scroll-to-top:hover svg,.scroll-to-top:hover .svg-inline--fa{transform:translateY(-1px);color:#35205f}@supports (right: calc(1rem + env(safe-area-inset-right))){.scroll-to-top{right:calc(1.5rem + env(safe-area-inset-right))!important;bottom:calc(1.5rem + env(safe-area-inset-bottom))!important}}@media(max-width:768px){.scroll-to-top{right:1.25rem!important;bottom:1.25rem!important}.scroll-to-top.action-link-icon{width:3rem;min-width:3rem;height:3rem}}@media(max-width:768px){@supports (right: calc(1rem + env(safe-area-inset-right))){.scroll-to-top{right:calc(1.25rem + env(safe-area-inset-right))!important;bottom:calc(1.25rem + env(safe-area-inset-bottom))!important}}}@media(max-width:480px){.scroll-to-top{right:1rem!important;bottom:1rem!important}.scroll-to-top.action-link-icon{width:2.8rem;min-width:2.8rem;height:2.8rem}}@media(max-width:480px){@supports (right: calc(1rem + env(safe-area-inset-right))){.scroll-to-top{right:calc(1rem + env(safe-area-inset-right))!important;bottom:calc(1rem + env(safe-area-inset-bottom))!important}}}.tag-list{display:flex;flex-wrap:wrap;gap:.7rem}.tag-list__item{display:inline-flex;align-items:center;justify-content:center;min-height:2.4rem;padding:.5rem .95rem;border:1px solid transparent;border-radius:999px;font-size:.9rem;font-weight:600;letter-spacing:.01em}.tag-list-surface .tag-list__item{background:#ffffffd6;color:var(--color-primary);border-color:var(--color-border-soft);box-shadow:inset 0 1px #fff9}.tag-list-inverted .tag-list__item{background:#ffffff29;color:var(--color-white);border-color:#ffffff47;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.home{flex:1;color:var(--color-text-dark)}.home-shell{width:min(1120px,calc(100% - 2rem));margin:0 auto}.home-eyebrow{display:inline-flex;align-items:center;padding:.45rem .9rem;border-radius:999px;background:#ffffffa8;border:1px solid var(--color-border-soft);color:var(--color-primary);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.home-hero{position:relative;overflow:hidden;padding:clamp(5rem,7vw,7rem) 0 4.5rem}.home-hero:before{content:"";position:absolute;left:-10%;bottom:8%;width:30rem;height:30rem;border-radius:50%;background:radial-gradient(circle,var(--color-accent-gold-20) 0%,transparent 70%)}.home-hero:after{content:"";position:absolute;right:-8%;top:-8%;width:32rem;height:32rem;border-radius:50%;background:radial-gradient(circle,var(--color-accent-purple-10) 0%,transparent 72%)}.home-hero__layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:clamp(2.5rem,4vw,4.5rem);align-items:center}.home-hero__copy h1{margin-top:.75rem;font-size:clamp(3rem,6vw,5rem);line-height:1.02;max-width:11ch}.home-highlight{background:var(--text-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-hero__tagline{margin-top:1rem;font-size:clamp(1.08rem,2vw,1.38rem);color:var(--color-text-medium);font-weight:600}.home-hero__summary{margin-top:1.1rem;max-width:38rem;color:var(--color-text-medium);line-height:1.85;font-size:1.04rem}.home-hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}.home-hero__visual{display:grid;gap:1rem}.home-portrait-card{padding:1rem;border-radius:34px;background:var(--bg-gradient-panel);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.home-portrait-card__image-wrap{padding:.85rem;border-radius:28px;background:var(--bg-gradient-accent-showcase)}.home-portrait-card__image{width:100%;aspect-ratio:1 / 1.04;object-fit:contain;border-radius:24px;box-shadow:0 20px 50px #190e2c2e}.home-portrait-card__details{padding:1rem .35rem .15rem}.home-portrait-card__details p{color:var(--color-text-medium);line-height:1.7;font-size:.98rem}.home-hero__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.home-stat{padding:1rem 1.05rem;border-radius:22px;background:#ffffffb8;border:1px solid var(--color-border-soft);box-shadow:0 16px 36px #4b2e8314;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.home-stat__value{display:block;color:var(--color-primary);font-size:1.75rem;font-weight:800}.home-stat__label{display:block;margin-top:.35rem;color:var(--color-text-light);font-size:.88rem;line-height:1.4}.home-story,.home-skills,.home-contact{position:relative;padding:1rem 0 5rem}.home-section-heading{max-width:720px;margin-bottom:2.25rem}.home-section-heading--compact{max-width:640px}.home-section-heading h2{margin-top:.75rem;font-size:clamp(2rem,4vw,3rem);line-height:1.08}.home-section-heading p{margin-top:1rem;color:var(--color-text-medium);line-height:1.85}.home-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.home-pillar{padding:1.55rem;border-radius:28px;background:var(--bg-gradient-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-card)}.home-pillar h3{font-size:1.25rem}.home-pillar p{margin-top:.8rem;color:var(--color-text-medium);line-height:1.7}.home-skills{padding-top:0}.home-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.home-skill-card{padding:1.55rem;border-radius:28px;background:var(--bg-gradient-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-card)}.home-skill-card__header h3{font-size:1.2rem}.home-skill-card__header p{margin-top:.75rem;color:var(--color-text-medium);line-height:1.75}.home-skill-card .tag-list{margin-top:1.15rem}.home-skill-card .tag-list__item{background:var(--bg-gradient-tech-tag)}.home-contact{padding-bottom:6rem}.home-contact__panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.9rem;border-radius:32px;background:linear-gradient(135deg,#24153ffa,#4b2e83f0 54%,#b7a57aeb);color:var(--color-white);box-shadow:var(--shadow-showcase)}.home-contact__copy .home-eyebrow{color:#ffffffc2;background:#ffffff1f;border-color:#ffffff2e}.home-contact__copy h2{margin-top:.75rem;font-size:clamp(2rem,4vw,2.8rem);line-height:1.08}.home-contact__copy p{margin-top:1rem;max-width:35rem;color:#ffffffe0;line-height:1.8}.home-contact__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.85rem}.home-contact__actions .action-link-primary{box-shadow:0 10px 22px #1f123633}@media(max-width:1024px){.home-hero__layout,.home-contact__panel{grid-template-columns:1fr}.home-hero__visual{width:100%}.home-portrait-card{width:min(100%,40rem);margin:0 auto}.home-hero__copy h1{max-width:none}.home-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.home-contact__actions{justify-content:flex-start}}@media(max-width:768px){.home-shell{width:min(100%,calc(100% - 1.5rem))}.home-hero{padding-top:4.5rem}.home-hero__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.home-pillars,.home-skill-grid{grid-template-columns:1fr}.home-contact__panel{padding:1.5rem}}@media(max-width:540px){.home-shell{width:min(100%,calc(100% - 1rem))}.home-hero__actions .action-link,.home-contact__actions .action-link{width:100%}.home-hero__stats{grid-template-columns:1fr}.home-contact__actions{flex-direction:column}}.project-detail{min-height:100vh;background:var(--bg-gradient-page);color:var(--color-text-dark)}.project-detail-header{position:relative;overflow:hidden;padding:clamp(4.5rem,6vw,6rem) 0 2.8rem;background:var(--bg-gradient-header);color:var(--color-white)}.project-detail-header:before{content:"";position:absolute;left:-8%;top:-8%;width:28rem;height:28rem;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 72%)}.project-detail-header .container,.project-content .container{width:min(1120px,calc(100% - 2rem));margin:0 auto;position:relative;z-index:1}.project-detail__back-link{background:#ffffff24;color:var(--color-white);border-color:#ffffff38;box-shadow:none}.project-detail__back-link:hover{background:#ffffff38;color:var(--color-white);border-color:#ffffff4d;box-shadow:none}.project-detail-header h1{margin-top:1rem;font-size:clamp(2.4rem,4.5vw,4rem);line-height:1.03;max-width:14ch}.project-tagline{margin-top:1rem;max-width:42rem;font-size:1.08rem;line-height:1.8;color:#ffffffe0}.project-detail__tags{margin-top:1.4rem}.project-content{padding:3rem 0 5rem}.project-showcase{border-radius:30px;overflow:hidden;background:var(--bg-gradient-card);box-shadow:var(--shadow-showcase);border:1px solid var(--color-border-soft)}.showcase-image{width:100%;max-height:34rem;object-fit:contain;background:var(--bg-gradient-preview)}.project-info{margin-top:2rem;padding:2rem;border-radius:28px;background:var(--bg-gradient-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-info)}.project-info h2{font-size:1.9rem;background:var(--text-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.long-description{margin-top:1rem;font-size:1.05rem;line-height:1.85;color:var(--color-text-medium)}.project-actions{display:flex;flex-wrap:wrap;gap:.85rem;justify-content:center;margin-top:2rem}.project-actions__action{width:100%}.project-actions .action-link,.project-actions .unavailable-action{flex:1 1 240px}.project-actions .action-link,.project-actions .unavailable-action .action-link{width:100%;justify-content:center}.project-actions .unavailable-action{width:auto;display:flex}@media(max-width:768px){.project-detail-header .container,.project-content .container{width:min(100%,calc(100% - 1.5rem))}.project-showcase{border-radius:24px}.project-info{padding:1.5rem}}@media(max-width:520px){.project-detail-header .container,.project-content .container{width:min(100%,calc(100% - 1rem))}.project-detail-header h1{font-size:1.95rem}.project-tagline,.long-description{font-size:1rem}.project-actions{flex-direction:column}}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ 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);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.projects{min-height:100vh;position:relative;overflow:hidden;color:var(--color-text-dark)}.projects:before{content:"";position:absolute;left:-12%;top:12%;width:28rem;height:28rem;border-radius:50%;background:radial-gradient(circle,var(--color-accent-purple-08) 0%,transparent 72%)}.projects:after{content:"";position:absolute;right:-10%;bottom:8%;width:30rem;height:30rem;border-radius:50%;background:radial-gradient(circle,var(--color-accent-gold-18) 0%,transparent 72%)}.projects-shell{width:min(1200px,calc(100% - 2rem));margin:0 auto;position:relative;z-index:1}.projects-header{padding:clamp(5rem,7vw,6.5rem) 0 2rem}.projects-header__layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:2rem;align-items:end}.projects-eyebrow{display:inline-flex;align-items:center;padding:.45rem .9rem;border-radius:999px;background:#ffffffa8;border:1px solid var(--color-border-soft);color:var(--color-primary);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.projects-header h1{margin-top:.75rem;font-size:clamp(2.6rem,5vw,4.25rem);line-height:1.02;max-width:14ch}.projects-header p{margin-top:1rem;max-width:42rem;color:var(--color-text-medium);line-height:1.8;font-size:1.05rem}.projects-header__stats{display:grid;gap:.9rem}.projects-stat{padding:1.2rem 1.3rem;border-radius:24px;background:#ffffffb8;border:1px solid var(--color-border-soft);box-shadow:0 18px 36px #4b2e8314;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.projects-stat__value{display:block;font-size:1.9rem;font-weight:800;color:var(--color-primary)}.projects-stat__label{display:block;margin-top:.35rem;color:var(--color-text-light);font-size:.9rem}.projects-header__hint{margin-top:1.5rem;color:var(--color-text-medium);font-size:.98rem;letter-spacing:.01em}.projects-carousel-section{padding:.5rem 0 5.5rem}.projects-carousel-container{overflow:visible}.swiper-carousel{padding:1.8rem 0 4.2rem;overflow:visible}.swiper-slide{width:min(820px,88vw);display:flex;align-items:stretch}.project-pane{width:100%;display:flex;flex-direction:column;background:var(--bg-gradient-card);border:1px solid var(--color-border-soft);border-radius:30px;overflow:hidden;box-shadow:var(--shadow-card);transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.swiper-slide-active .project-pane{transform:translateY(-10px);box-shadow:var(--shadow-card-active);border-color:var(--color-border-strong)}.project-preview{position:relative;overflow:hidden;min-height:22rem;background:var(--bg-gradient-preview)}.project-preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#fff0,#ffffff0a);pointer-events:none}.project-image{width:100%;height:100%;object-fit:contain;pointer-events:none}.preview-placeholder{min-height:22rem;display:grid;place-items:center;padding:2rem;text-align:center;background:var(--bg-gradient-placeholder)}.preview-placeholder__label{font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary)}.preview-placeholder__title{margin-top:.85rem;font-size:1.5rem;font-weight:800;color:var(--color-text-dark)}.project-pane__content{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1.6rem 1.75rem}.project-pane__status-row{display:flex;flex-wrap:wrap;gap:.65rem}.project-status{display:inline-flex;align-items:center;justify-content:center;min-height:2.1rem;padding:.35rem .8rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.project-status-available{background:#b7a57a29;color:var(--color-primary);border:1px solid rgba(183,165,122,.25)}.project-status-private{background:#4b2e8314;color:var(--color-primary);border:1px solid rgba(75,46,131,.14)}.project-status-secondary{background:#ffffffbd;color:var(--color-text-medium);border:1px solid var(--color-border-soft)}.project-pane h3{font-size:clamp(1.65rem,2.6vw,2.2rem);line-height:1.08}.project-description{color:var(--color-text-medium);line-height:1.75}.project-tech-list{margin-top:.2rem}.project-tech-list .tag-list__item{background:var(--bg-gradient-tech-tag);box-shadow:inset 0 1px #ffffffb3}.project-links{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:.15rem}.project-links__action{width:100%}.project-links .action-link,.project-links .unavailable-action{flex:1 1 220px}.project-links .action-link,.project-links .unavailable-action .action-link{width:100%;justify-content:center}.project-links .unavailable-action{width:auto;display:flex}@media(max-width:1024px){.projects-header__layout{grid-template-columns:1fr}.projects-header__stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:768px){.projects-shell{width:min(100%,calc(100% - 1.25rem))}.projects-header__stats{grid-template-columns:1fr}.project-preview,.preview-placeholder{min-height:18rem}.project-pane__content{padding:1.25rem}}@media(max-width:520px){.projects-shell{width:min(100%,calc(100% - .75rem))}.projects-header h1{font-size:2rem}.project-preview,.preview-placeholder{min-height:14rem}.project-links{flex-direction:column}.project-links .action-link,.project-links .unavailable-action{flex-basis:auto}.swiper-carousel{padding-bottom:3.4rem}}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.resume{flex:1;background:var(--bg-gradient-page)}.resume-shell{width:min(1120px,calc(100% - 2rem));margin:0 auto}.resume-eyebrow{display:inline-flex;align-items:center;padding:.45rem .9rem;border-radius:999px;background:#ffffff24;border:1px solid rgba(255,255,255,.22);color:#ffffffe6;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.resume-eyebrow-surface{background:#ffffffb8;border-color:var(--color-border-soft);color:var(--color-primary)}.resume-header{background:var(--bg-gradient-header);color:var(--color-white);padding:clamp(4.5rem,6vw,6rem) 0 3rem;position:relative;overflow:hidden}.resume-header:before{content:"";position:absolute;left:-10%;top:-5%;width:26rem;height:26rem;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 72%)}.resume-header__layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:end}.resume-header h1{margin-top:.75rem;font-size:clamp(2.6rem,4.5vw,4.2rem);line-height:1.04;max-width:11ch}.resume-header p{margin-top:1rem;max-width:40rem;font-size:1.05rem;line-height:1.8;color:#ffffffdb}.resume-header__actions{display:flex;justify-content:flex-end}.resume-header__actions .action-link{min-width:11.25rem}.resume-viewer-section{padding:3rem 0 5rem}.resume-viewer__intro{max-width:42rem;margin-bottom:1.5rem}.resume-viewer__intro h2{margin-top:.75rem;font-size:clamp(2rem,3.8vw,2.8rem);line-height:1.08}.resume-viewer__intro p{margin-top:1rem;color:var(--color-text-medium);line-height:1.8}.pdf-document{background:linear-gradient(180deg,#22143af0,#2f1c4efa);border-radius:28px;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-showcase);padding:1.5rem;max-width:1800px;margin:0 auto}.pdf-pages-single{display:flex;flex-direction:column;align-items:center;gap:2rem}.pdf-pages-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;justify-items:center}.pdf-page-wrapper{display:flex;justify-content:center;box-shadow:0 16px 38px #0b061447;border-radius:18px;overflow:hidden}.pdf-page canvas{display:block;max-width:100%;height:auto!important}.pdf-loading{text-align:center;color:#ffffffb8;font-size:1.1rem;padding:2rem}.pdf-fallback{text-align:center;padding:2.5rem 2rem;background:var(--bg-gradient-card);border-radius:28px;border:1px solid var(--color-border-soft);box-shadow:var(--shadow-info);max-width:600px;margin:0 auto}.pdf-fallback p{font-size:1.1rem;color:var(--color-text-medium);margin-bottom:1.5rem}.resume-instructions{padding:3rem 2rem;background:var(--color-white)}.resume-instructions h2{font-size:2rem;margin-bottom:2rem;text-align:center;color:var(--color-text-dark)}.instructions-list{max-width:700px;margin:0 auto 2rem;padding-left:1.5rem}.instructions-list li{font-size:1.1rem;line-height:2;color:var(--color-text-medium);margin-bottom:1rem}.instructions-list code{background:#f0f0f0;padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.95rem;color:var(--color-primary)}.note{max-width:700px;margin:2rem auto 0;padding:1.5rem;background:#fff9e6;border-left:4px solid var(--color-secondary);border-radius:4px}.note p{margin:0;color:var(--color-text-light);line-height:1.6}.note code{background:var(--color-accent-purple-10);padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;color:var(--color-primary)}@media(max-width:768px){.resume-shell{width:min(100%,calc(100% - 1.5rem))}.resume-header__layout,.pdf-pages-grid{grid-template-columns:1fr}.pdf-page-wrapper{max-width:100%}.instructions-list{padding-left:1rem}.instructions-list li{font-size:1rem}}@media(max-width:480px){.resume-shell{width:min(100%,calc(100% - 1rem))}.pdf-document{padding:1rem}.resume-header h1{font-size:2.1rem}}:root{--font-body: "Avenir Next", "Segoe UI Variable", "Segoe UI", sans-serif;--font-display: "Avenir Next", "Segoe UI Variable Display", "Segoe UI", sans-serif;--color-primary: #4b2e83;--color-secondary: #b7a57a;--color-purple-light: #7b63ad;--color-purple-dark: #24153f;--color-gold-light: #d9ca9f;--color-gold-dark: #7c6d46;--color-white: #ffffff;--color-surface: #fcfaf6;--color-surface-elevated: rgba(255, 255, 255, .84);--color-surface-muted: #f5efe5;--color-text-dark: #1f172b;--color-text-medium: #5a5368;--color-text-light: #796f8c;--color-border-soft: rgba(75, 46, 131, .12);--color-border-strong: rgba(75, 46, 131, .22);--color-accent-purple-06: rgba(75, 46, 131, .06);--color-accent-purple-08: rgba(75, 46, 131, .08);--color-accent-purple-10: rgba(75, 46, 131, .1);--color-accent-purple-12: rgba(75, 46, 131, .12);--color-accent-purple-15: rgba(75, 46, 131, .15);--color-accent-purple-20: rgba(75, 46, 131, .2);--color-accent-purple-25: rgba(75, 46, 131, .25);--color-accent-purple-30: rgba(75, 46, 131, .3);--color-accent-purple-35: rgba(75, 46, 131, .35);--color-accent-purple-40: rgba(75, 46, 131, .4);--color-accent-purple-45: rgba(75, 46, 131, .45);--color-accent-purple-100: rgba(75, 46, 131, 1);--color-accent-gold-08: rgba(183, 165, 122, .08);--color-accent-gold-12: rgba(183, 165, 122, .12);--color-accent-gold-18: rgba(183, 165, 122, .18);--color-accent-gold-20: rgba(183, 165, 122, .2);--color-accent-gold-30: rgba(183, 165, 122, .3);--color-accent-gold-35: rgba(183, 165, 122, .35);--color-accent-gold-40: rgba(183, 165, 122, .4);--bg-gradient-page: linear-gradient( 180deg, #faf7f0 0%, #f3edf8 48%, #faf6ea 100% );--bg-gradient-header: linear-gradient( 135deg, #22133c 0%, #5c4394 48%, #c2ab74 100% );--bg-gradient-card: linear-gradient( 145deg, rgba(255, 255, 255) 0%, rgba(248, 244, 236) 100% );--bg-gradient-preview: linear-gradient(135deg, #f0ebf8 0%, #f6efe1 100%);--bg-gradient-panel: linear-gradient( 145deg, rgba(255, 255, 255, .9) 0%, rgba(246, 240, 230, .94) 100% );--bg-gradient-tech-tag: linear-gradient( 135deg, rgba(255, 255, 255, .96) 0%, rgba(247, 242, 233, .96) 100% );--bg-gradient-placeholder: linear-gradient( 135deg, var(--color-accent-purple-08) 0%, var(--color-accent-gold-12) 100% );--bg-gradient-primary: linear-gradient( 135deg, #2f1b52 0%, #5f4798 56%, #baa266 100% );--bg-gradient-secondary: linear-gradient( 135deg, rgba(255, 255, 255, .92) 0%, rgba(246, 240, 231, .94) 100% );--bg-gradient-button-tech-hover: linear-gradient( 135deg, var(--color-primary) 0%, var(--color-secondary) 100% );--bg-gradient-accent: linear-gradient( 90deg, var(--color-primary) 0%, #8366b7 50%, var(--color-secondary) 100% );--bg-gradient-accent-showcase: linear-gradient( 135deg, var(--color-primary) 0%, #7258aa 52%, var(--color-secondary) 100% );--bg-gradient-subtle: linear-gradient( 135deg, rgba(255, 255, 255, .72) 0%, rgba(245, 239, 229, .92) 100% );--text-gradient-primary: linear-gradient( 135deg, #2d184d 0%, #6c51a5 55%, #b7a57a 100% );--shadow-card: 0 18px 48px rgba(42, 25, 71, .14);--shadow-card-active: 0 24px 64px rgba(42, 25, 71, .2);--shadow-panel: 0 28px 70px rgba(42, 25, 71, .16);--shadow-button-primary: 0 8px 20px rgba(75, 46, 131, .28);--shadow-button-primary-hover: 0 14px 34px rgba(75, 46, 131, .36);--shadow-button-secondary-hover: 0 12px 30px rgba(183, 165, 122, .28);--shadow-tech-tag-hover: 0 10px 24px rgba(75, 46, 131, .18);--shadow-showcase: 0 30px 80px rgba(54, 33, 91, .16);--shadow-info: 0 18px 48px rgba(75, 46, 131, .1);--shadow-button-large: 0 12px 30px rgba(55, 33, 94, .3);--shadow-button-large-hover: 0 18px 40px rgba(55, 33, 94, .38);--shimmer-gold: var(--color-accent-gold-30)}.action-link{--action-link-bg: rgba(255, 255, 255, .92);--action-link-color: var(--color-primary);--action-link-border: rgba(75, 46, 131, .14);--action-link-shadow: 0 8px 20px rgba(31, 23, 43, .08);--action-link-hover-bg: rgba(255, 255, 255, .98);--action-link-hover-color: var(--color-primary);--action-link-hover-border: rgba(75, 46, 131, .2);--action-link-hover-shadow: 0 12px 24px rgba(31, 23, 43, .12);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3.15rem;padding:.8rem 1.15rem;border-radius:18px;border:1px solid var(--action-link-border);background:var(--action-link-bg);color:var(--action-link-color);box-shadow:var(--action-link-shadow);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-decoration:none;font-family:var(--font-body);font-size:.95rem;font-weight:600;letter-spacing:0;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease,color .25s ease,opacity .25s ease}.action-link:hover{transform:translateY(-1px);border-color:var(--action-link-hover-border);background:var(--action-link-hover-bg);color:var(--action-link-hover-color);box-shadow:var(--action-link-hover-shadow)}.action-link:focus-visible{outline:3px solid var(--color-accent-gold-30);outline-offset:3px}.action-link__icon{display:inline-flex;align-items:center;justify-content:center;font-size:1rem}.action-link__label{line-height:1}.action-link-primary{--action-link-bg: linear-gradient(180deg, #40256f 0%, #4b2e83 100%);--action-link-color: var(--color-white);--action-link-border: rgba(64, 37, 111, .55);--action-link-shadow: 0 10px 22px rgba(47, 27, 82, .22);--action-link-hover-bg: linear-gradient(180deg, #37205f 0%, #472a7c 100%);--action-link-hover-color: var(--color-white);--action-link-hover-border: rgba(55, 32, 95, .62);--action-link-hover-shadow: 0 14px 26px rgba(47, 27, 82, .26)}.action-link-secondary{--action-link-bg: rgba(255, 255, 255, .94);--action-link-color: var(--color-primary);--action-link-border: rgba(75, 46, 131, .14);--action-link-shadow: 0 6px 18px rgba(31, 23, 43, .06);--action-link-hover-bg: rgba(255, 255, 255, 1);--action-link-hover-color: var(--color-primary);--action-link-hover-border: rgba(75, 46, 131, .18);--action-link-hover-shadow: 0 10px 22px rgba(31, 23, 43, .1)}.action-link-quiet{--action-link-bg: transparent;--action-link-color: var(--color-text-medium);--action-link-border: transparent;--action-link-shadow: none;--action-link-hover-bg: rgba(75, 46, 131, .06);--action-link-hover-color: var(--color-primary);--action-link-hover-border: rgba(75, 46, 131, .08);--action-link-hover-shadow: none}.action-link-inverted{--action-link-bg: rgba(255, 255, 255, .1);--action-link-color: var(--color-white);--action-link-border: rgba(255, 255, 255, .2);--action-link-shadow: 0 8px 18px rgba(22, 13, 39, .12);--action-link-hover-bg: rgba(255, 255, 255, .16);--action-link-hover-color: var(--color-white);--action-link-hover-border: rgba(255, 255, 255, .24);--action-link-hover-shadow: 0 12px 22px rgba(22, 13, 39, .18)}.action-link-compact{min-height:2.6rem;padding:.6rem .9rem;gap:.5rem;border-radius:14px;font-size:.9rem}.action-link-icon{min-width:3.25rem;width:3.25rem;height:3.25rem;padding:0;border-radius:18px;gap:0}.action-link-icon .action-link__icon{font-size:.95rem}.action-link-disabled{opacity:.62;cursor:not-allowed;box-shadow:none}.action-link-disabled:hover{transform:none;border-color:var(--action-link-border);background:var(--action-link-bg);color:var(--action-link-color);box-shadow:none}.unavailable-action{position:relative;display:inline-flex;width:max-content}.unavailable-action:focus-visible{outline:3px solid var(--color-accent-gold-30);outline-offset:3px;border-radius:18px}.unavailable-action__tooltip{position:absolute;left:50%;top:0;min-width:12rem;max-width:18rem;padding:.7rem .85rem;border-radius:16px;background:#24153ff5;color:var(--color-white);box-shadow:0 18px 40px #120b1f4d;font-size:.88rem;line-height:1.5;text-align:center;transform:translate(-50%,calc(-100% - .85rem));visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:5}.unavailable-action:hover .unavailable-action__tooltip,.unavailable-action:focus-visible .unavailable-action__tooltip{visibility:visible;opacity:1}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg-gradient-page)}body{min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--color-text-dark);line-height:1.5;background:var(--bg-gradient-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}a,button,input,textarea,select{font:inherit}img,svg,video{display:block;max-width:100%}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.03em}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}
