html[data-palette=coastal]{--background:#f0ebd8;--surface:#fbf9f2;--surface-soft:#e5e8e8;--surface-hover:#d9e0e5;--text-primary:#1d2d44;--text-secondary:#3e5c76;--text-muted:#506a83;--border:#c4ced4;--border-hover:#748cab;--primary:#1d2d44;--primary-hover:#3e5c76;--primary-foreground:#f0ebd8;--cta-background:#1d2d44;--cta-hover:#3e5c76;--cta-text:#f0ebd8}html[data-palette=coastal][data-theme=dark]{--background:#0d1321;--surface:#1d2d44;--surface-soft:#283f58;--surface-hover:#3e5c76;--text-primary:#f0ebd8;--text-secondary:#c2cddd;--text-muted:#a7b9ce;--border:#3e5c76;--border-hover:#748cab;--primary:#f0ebd8;--primary-hover:#fff9e8;--primary-foreground:#0d1321;--cta-background:#f0ebd8;--cta-hover:#fff9e8;--cta-text:#0d1321;--positive:#95c8b0}html[data-palette=noir]{--grain-opacity:.10;--background:#eaf0f8;--surface:#fff;--surface-soft:#e6edf7;--surface-hover:#dbe6f5;--text-primary:#102b50;--text-secondary:#3e5779;--text-muted:#526a89;--border:#cedaec;--border-hover:#819bbd;--primary:#245fa8;--primary-hover:#174980;--primary-foreground:#fff;--cta-background:#102b50;--cta-hover:#254f83;--cta-text:#fff;--positive:#102b50;--page-gradient:linear-gradient(125deg,#f7faff,#eaf0f8 58%,#dce7f7)}html[data-palette=noir][data-theme=dark]{--background:#0c1422;--surface:#152238;--surface-soft:#203149;--surface-hover:#2b405d;--text-primary:#f5f9ff;--text-secondary:#cedcf0;--text-muted:#acc2df;--border:#2b405d;--border-hover:#6985aa;--primary:#a9d3ff;--primary-hover:#fff;--primary-foreground:#0c1422;--cta-background:#f5f9ff;--cta-hover:#fff;--cta-text:#0c1422;--positive:#e0e4ec;--page-gradient:linear-gradient(125deg,#09101c,#0c1729 58%,#14253f)}html[data-palette=noir],html[data-palette=noir] body{background-image:var(--page-gradient);background-attachment:fixed}@property --glass-edge-angle{syntax:"<angle>";inherits:false;initial-value:-75deg}html[data-buttons=glass]{--glass-fill:color-mix(in srgb,var(--cta-background) 90%,transparent);--glass-foreground:var(--cta-text);--glass-highlight:rgb(255 255 255/.15);--glass-edge:color-mix(in srgb,var(--cta-text) 30%,transparent)}html[data-buttons=glass][data-theme=dark]{--glass-fill:color-mix(in srgb,var(--cta-background) 86%,transparent);--glass-highlight:rgb(255 255 255/.5);--glass-edge:color-mix(in srgb,var(--cta-text) 24%,transparent)}html[data-buttons=glass] :is(.button,.resume-link){position:relative;isolation:isolate;border-radius:var(--radius-md);background:linear-gradient(-75deg,transparent,var(--glass-highlight),transparent),var(--glass-fill);color:var(--glass-foreground);box-shadow:none;text-shadow:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:transform .4s cubic-bezier(.25,1,.5,1),background-color .4s ease}html[data-buttons=glass] :is(.button,.resume-link):after,html[data-buttons=glass] :is(.button,.resume-link):before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}html[data-buttons=glass] :is(.button,.resume-link):before{padding:1px;background:conic-gradient(from var(--glass-edge-angle),var(--glass-edge),transparent 5% 40%,var(--glass-edge) 50%,transparent 60% 95%,var(--glass-edge)),linear-gradient(var(--glass-highlight),var(--glass-highlight));-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;transition:--glass-edge-angle .5s ease}html[data-buttons=glass] :is(.button,.resume-link):after{z-index:-1;background:linear-gradient(-45deg,transparent 30%,var(--glass-highlight) 45%,transparent 58%);background-size:200% 200%;background-position:0 50%;transition:background-position .5s cubic-bezier(.25,1,.5,1)}@media (hover:hover){html[data-buttons=glass] :is(.button,.resume-link):hover{transform:scale(.985);color:var(--glass-foreground)}html[data-buttons=glass] :is(.button,.resume-link):hover:before{--glass-edge-angle:-125deg}html[data-buttons=glass] :is(.button,.resume-link):hover:after{background-position:25% 50%}}html[data-buttons=glass] :is(.button,.resume-link):active{transform:translateY(1px) scale(.985)}@supports not (backdrop-filter:blur(3px)){html[data-buttons=glass] :is(.button,.resume-link){background-color:var(--cta-background)}}@media (forced-colors:active){html[data-buttons=glass] :is(.button,.resume-link){background:ButtonFace;color:ButtonText;border:1px solid ButtonText}html[data-buttons=glass] :is(.button,.resume-link):after,html[data-buttons=glass] :is(.button,.resume-link):before{display:none}}@keyframes resume-sheen{0%,to{background-position:0 50%;opacity:.25}50%{background-position:100% 50%;opacity:.45}}@media (prefers-reduced-motion:no-preference){html[data-buttons=glass] .resume-link:after{animation:resume-sheen 12s ease-in-out infinite}}