@font-face{font-family:Inter;src:url('./fonts/Inter-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('./fonts/Inter-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('./fonts/Inter-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--paper:#fbfaff;--ink:#19172c;--muted:#716e84;--violet:#7d67d7;--line:#e8e3f2;--ease:cubic-bezier(.2,.65,.3,1);font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.75rem}body{margin:0;background:radial-gradient(ellipse 65% 26.875rem at 74% 13.125rem,#eee8fb88,transparent),linear-gradient(#faf8ff 0,#fcfbff 48.75rem,#fcfbff 100%)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:0.1875rem solid #7d67d7;outline-offset:0.3125rem;border-radius:0.25rem}img,video{max-width:100%;display:block}h1,h2,h3,p,figure,blockquote{margin:0}svg{display:block}::selection{background:#e2d8ff;color:#19172c}.container{width:calc(100% - 7rem);max-width:87.5rem;margin-inline:auto}.skip-link{position:fixed;top:-6.25rem;left:1.25rem;z-index:20;background:var(--ink);color:white;padding:0.75rem 1.25rem;border-radius:0.5rem}.skip-link:focus{top:0.75rem}
.site-header{height:5.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:flex;align-items:center;gap:0.3125rem;font-size:1.0625rem;letter-spacing:-.55px;font-weight:700;white-space:nowrap}.brand-dot{width:0.3125rem;height:0.3125rem;align-self:flex-end;margin-bottom:0.25rem;border-radius:50%;background:#9179eb}.site-header nav{display:flex;align-items:center;gap:2.125rem;font-size:0.8125rem}.site-header nav a{display:flex;align-items:center;gap:0.4375rem;padding-block:0.625rem}.site-header nav svg{width:0.9375rem;height:0.9375rem;transform:rotate(-45deg)}.site-header nav a:hover,.text-link:hover{color:var(--violet)}
.hero{display:grid;grid-template-columns:.9fr 1.22fr;gap:0;align-items:center;min-height:26.875rem;padding-top:0.3125rem;padding-bottom:0.625rem}.hero-copy{position:relative;z-index:1;padding-bottom:1.25rem}.eyebrow{font-size:0.75rem;line-height:1.6;letter-spacing:.025em;color:var(--muted)}h1{font-size:clamp(2.625rem,4.45vw,4.25rem);line-height:1.055;letter-spacing:-0.2rem;font-weight:600;margin-top:1.375rem;margin-bottom:1.375rem}.hero-description{max-width:22.5rem;color:var(--muted);font-size:1rem;line-height:1.75}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.75rem;background:#252135;color:#fff;font-size:0.8125rem;font-weight:600;padding:0.9375rem 1.1875rem;border-radius:0.5625rem;margin-top:1.75rem;box-shadow:0 0.25rem 0.75rem #211a3710;transition:background .2s,transform .2s}.button:hover{background:#46365c;transform:translateY(-0.125rem)}.button svg,.text-link svg{width:1.125rem;height:1.125rem}.hero-art{position:relative;aspect-ratio:960/520;margin-right:-1.875rem;margin-left:-2.1875rem;min-width:0;isolation:isolate}.hero-poster{width:100%;height:100%;object-fit:contain}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s;pointer-events:none}.hero-art.is-playing .hero-video{opacity:1}
.projects-section{padding-top:1.75rem;padding-bottom:4.6875rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.section-heading h2{font-size:1.375rem;line-height:1.4;font-weight:600;letter-spacing:-.65px}.section-aside{font-size:0.6875rem;color:var(--muted)}.projects-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.375rem}.project{min-width:0;display:flex;flex-direction:column}.project-visual{position:relative;display:block;overflow:hidden;aspect-ratio:640/500;border-radius:0.8125rem;background:#ece7fa;isolation:isolate}.project-visual img{width:100%;height:100%;object-fit:cover}.project-category{font-size:0.625rem;line-height:1.5;color:var(--muted);margin:1.25rem 0 0.375rem}.project h3{font-size:1.125rem;font-weight:600;letter-spacing:-.5px}.project h3 a{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}.project h3 svg{width:1.1875rem;height:1.1875rem;color:#625874}.project-description{font-size:0.75rem;line-height:1.75;color:#686479;margin-top:0.625rem;min-height:0}.tags{display:flex;flex-wrap:wrap;gap:0.375rem;list-style:none;padding:0.75rem 0 0;margin:auto 0 0}.tags li{font-size:0.5625rem;line-height:1.5;padding:0.25rem 0.4375rem;border:1px solid #e7e1f1;border-radius:0.3125rem;color:#726b85;background:#f7f4fc}
.work-section{padding:4rem 0 4.25rem;background:#f3eff9;border-block:1px solid var(--line)}.work-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:6.25rem}.work-copy{max-width:26.25rem}.work-copy h2{font-size:2.3125rem;line-height:1.18;font-weight:600;letter-spacing:-0.0875rem;margin:0.9375rem 0 1.25rem}.work-copy>p:not(.eyebrow){font-size:0.8125rem;line-height:1.9;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:0.75rem;font-size:0.75rem;font-weight:600;margin-top:1.625rem}.work-steps{display:flex;flex-direction:column;gap:1.5625rem;padding-top:0.1875rem}.work-step{display:grid;grid-template-columns:1.9375rem 1fr;gap:1.125rem}.step-number{display:flex;align-items:center;justify-content:center;border:1px solid #ded5ed;border-radius:0.5rem;width:1.875rem;height:1.875rem;font-size:0.625rem;color:#8a75bd;background:#f9f6ff}.work-step h3{font-size:0.875rem;line-height:1.6;font-weight:600;letter-spacing:-.2px}.work-step p{font-size:0.75rem;line-height:1.85;color:var(--muted);margin-top:0.3125rem;max-width:29.375rem}
.about-section{display:grid;grid-template-columns:1fr 1.05fr;gap:6.25rem;padding-block:4rem}.about-heading{display:flex;align-items:center;gap:1.4375rem;align-self:start;padding-top:0.3125rem}.avatar{flex-shrink:0;width:5.25rem;height:5.25rem;border-radius:50%;display:grid;place-items:center;background:radial-gradient(ellipse at 35% 30%,#f1eaff,transparent),linear-gradient(135deg,#dfd2f5,#b5a3d6);color:#71618d;box-shadow:inset 0 0 0 1px #cdbfe81f;overflow:hidden}.avatar span{font-size:2.625rem;letter-spacing:-0.25rem;font-weight:600;padding-right:0.25rem}.about-heading h2{font-size:1.6875rem;letter-spacing:-.9px;font-weight:600;margin-top:0.5rem}.about-copy p{font-size:0.8125rem;line-height:1.9;color:var(--muted)}.about-copy p+p{margin-top:0.875rem}.reflections-section{border-top:1px solid var(--line);padding-top:1.75rem;padding-bottom:3.5rem}.reflections-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1.25rem;margin-bottom:1.375rem}.reflections-heading h2{font-size:0.8125rem;font-weight:600;letter-spacing:-.2px}.reflections-heading p{font-size:0.625rem;line-height:1.6;color:var(--muted)}.reflections-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.375rem}.reflection{background:#f5f1fb;border:1px solid #ebe4f6;border-radius:0.75rem;padding:1.375rem 1.625rem}.reflection figcaption{display:flex;align-items:center;gap:0.625rem}.model-mark{display:grid;place-items:center;width:1.625rem;height:1.625rem;border-radius:0.4375rem;background:#e9e0f7;color:#7e659e;font-size:0.75rem;font-weight:600}.reflection figcaption strong{font-size:0.625rem;display:block;font-weight:600}.reflection-context{font-size:0.5625rem;display:block;color:var(--muted);margin-top:0.25rem}.reflection blockquote{font-size:0.8125rem;color:#5c536e;line-height:1.8;margin-top:0.9375rem;max-width:28.75rem}
.contact-section{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2.375rem 0 3rem;border-top:1px solid var(--line)}.contact-section h2{font-size:1.75rem;line-height:1.3;letter-spacing:-1px;font-weight:600;margin-top:0.5625rem}.contact-section p:not(.eyebrow){font-size:0.75rem;line-height:1.8;color:var(--muted);margin-top:0.625rem}.email-link{display:flex;align-items:center;gap:1.75rem;font-size:1.4375rem;letter-spacing:-.7px;white-space:nowrap;padding:0.75rem 0;border-bottom:1px solid #c6b5e9}.email-link svg{width:1.5rem;height:1.5rem;transform:rotate(-45deg);color:var(--violet)}.email-link:hover{color:var(--violet)}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1.25rem;padding-block:1.5rem;color:#817a90;font-size:0.625rem;line-height:1.8}.site-footer a:hover{color:var(--ink)}.not-found{max-width:50rem;padding:6.25rem 1.5rem;margin:auto}
@media(min-width:1600px){.hero{min-height:28.75rem}}
@media(max-width:1099px){.container{width:calc(100% - 4.5rem)}.site-header{height:5.25rem}.hero{grid-template-columns:1fr 1.13fr;min-height:23.75rem}.hero-art{margin-right:-1.5rem;margin-left:-2.1875rem}h1{font-size:3.0625rem;letter-spacing:-0.1625rem}.hero-description{font-size:0.875rem;max-width:18.75rem}.eyebrow{font-size:0.625rem}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.5rem}.project-description{min-height:0}.project-visual{aspect-ratio:640/450}.project-description{font-size:0.75rem}.work-layout,.about-section{gap:3.4375rem}.work-copy h2{font-size:2rem}.reflections-heading{align-items:start}.section-aside{font-size:0.625rem}.contact-section h2{font-size:1.5rem}.email-link{font-size:1.25rem}}
@media(max-width:800px) and (min-width:640px){.hero{grid-template-columns:1fr 1fr;min-height:23.4375rem}.hero-art{margin-left:-1.25rem;margin-right:-1.375rem}h1{font-size:2.5rem;letter-spacing:-0.125rem}.hero-description{font-size:0.75rem}.button{font-size:0.6875rem;padding:0.8125rem 0.9375rem;gap:1rem}.brand{font-size:0.9375rem}.site-header nav{gap:1.125rem;font-size:0.75rem}.work-layout,.about-section{gap:2rem}.work-copy h2{font-size:1.75rem}.reflections-heading{display:block}.reflections-heading p{margin-top:0.5rem}.reflection{padding:1.125rem}.contact-section{gap:1.25rem}.contact-section h2{font-size:1.375rem}}
@media(max-width:639px){.container{width:calc(100% - 2.5rem)}.site-header{height:auto;min-height:6.75rem;flex-direction:column;align-items:flex-start;justify-content:center;gap:0.8125rem;padding-top:1.3125rem;padding-bottom:0.8125rem}.brand{font-size:1rem;letter-spacing:-.5px}.site-header nav{width:100%;gap:1.5625rem;font-size:0.75rem}.site-header nav a{padding-block:0.375rem}.site-header nav a:last-child{margin-left:auto}.hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding-top:2.4375rem;padding-bottom:0.8125rem}.hero-copy{padding-bottom:0}.eyebrow{font-size:0.625rem}h1{font-size:clamp(2.75rem,11vw,3.9375rem);letter-spacing:-0.15625rem;margin-top:1.1875rem;margin-bottom:1.125rem}.hero-description{font-size:0.875rem;max-width:19.375rem}.button{font-size:0.75rem;padding:0.875rem 1.0625rem;gap:1.5625rem;margin-top:1.4375rem}.hero-art{margin:0.5rem -0.75rem -0.4375rem;aspect-ratio:960/520}.projects-section{padding-top:0.8125rem;padding-bottom:2.8125rem}.section-heading{display:block;margin-bottom:1.1875rem}.section-heading h2{font-size:1.25rem;letter-spacing:-.6px}.section-aside{display:block;margin-top:0.4375rem;font-size:0.625rem}.projects-grid{grid-template-columns:1fr;gap:2.125rem}.project-visual{aspect-ratio:640/450}.project-category{margin-top:1rem}.project h3{font-size:1.25rem}.project-description{font-size:0.8125rem;margin-top:0.5rem}.tags{padding-top:0.75rem}.tags li{font-size:0.625rem}.work-section{padding-block:2.625rem}.work-layout{grid-template-columns:1fr;gap:2.0625rem}.work-copy h2{font-size:2.0625rem;margin-top:0.75rem}.work-copy>p:not(.eyebrow){font-size:0.8125rem}.work-step p{font-size:0.75rem}.work-steps{gap:1.5rem}.about-section{grid-template-columns:1fr;gap:1.5rem;padding-block:2.6875rem}.about-heading{gap:1.0625rem}.avatar{width:4.125rem;height:4.125rem}.avatar span{font-size:2.125rem}.about-heading h2{font-size:1.5625rem}.about-copy p{font-size:0.8125rem}.reflections-section{padding-top:1.5rem;padding-bottom:2.1875rem}.reflections-heading{display:block;margin-bottom:1.125rem}.reflections-heading p{margin-top:0.5rem;font-size:0.625rem;max-width:18.125rem}.reflections-grid{grid-template-columns:1fr;gap:0.75rem}.reflection{padding:1.25rem}.reflection blockquote{font-size:0.75rem}.contact-section{align-items:flex-start;flex-direction:column;gap:1.0625rem;padding-top:1.875rem;padding-bottom:2.1875rem}.contact-section h2{font-size:1.625rem;max-width:17.5rem}.email-link{font-size:1.375rem;gap:1.5rem;padding-top:0}.site-footer{flex-wrap:wrap;gap:0.625rem 1.375rem;font-size:0.5625rem;padding-block:1.25rem}.site-footer>span:nth-child(2){order:3;flex-basis:100%}.site-footer>a{margin-left:auto}}
@media(prefers-reduced-motion:no-preference){.js-reveal .reveal-pending{animation:enter .45s var(--ease) both;animation-delay:var(--delay,0ms)}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-video{display:none}.button:hover{transform:none}}

/* A full-width desk scene forms the entire masthead. */
.site-header{position:absolute;inset:0 0 auto;z-index:5}
.hero-masthead{width:100%;height:82svh;min-height:40.625rem;max-height:61.25rem;position:relative;overflow:hidden;background:#f6f3fb}
.hero-masthead .hero{position:relative;z-index:2;height:100%;min-height:0;padding-top:5.25rem;padding-bottom:0;display:flex;align-items:center;pointer-events:none}
.hero-copy{max-width:27.5rem;pointer-events:auto;padding-bottom:1.25rem}
.hero-copy h1{font-size:clamp(2.625rem,4.25vw,4.25rem);letter-spacing:-0.18125rem}
.hero-masthead .hero-art{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;z-index:0}
.hero-masthead .hero-poster,.hero-masthead .hero-video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-masthead::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#faf8fff2 0%,#faf8ffdb 26%,#faf8ff00 49%)}
/* Full-bleed product shots. Tilt is reserved for the native HUD within MCC. */
.project-visual{aspect-ratio:16/10;isolation:isolate;background:#eeeaf4}
.app-primary{position:absolute;display:block;inset:0;width:100%;height:100%;overflow:hidden;border-radius:inherit}
.app-primary img{width:100%;height:100%;object-fit:cover;object-position:center}
.mcc .app-primary img{object-position:center bottom}
/* Trim only the outer homepage margins; preserve the header and main product illustration. */
.lumiko .app-primary img{object-position:center top}
.bridge .app-primary img{object-position:center}
.inkmeadow .app-primary img{object-position:center bottom}
.app-layer{position:absolute;display:block;pointer-events:none}
.ink-link{width:34%;right:4%;bottom:8%;transform:rotate(-3deg);filter:drop-shadow(0 .5rem .75rem #30213338)}
.ink-link img{display:block;width:100%;height:auto;object-fit:contain}
.reflections-section{padding-top:3.25rem;padding-bottom:3.75rem;--topic-0:#9982c4;--topic-1:#b09acc;--topic-2:#c2afd7;--topic-3:#d3c3e4;--topic-4:#e2d9ed}
.reflections-heading{align-items:flex-end;margin-bottom:1.875rem}
.reflections-heading h2{font-size:2.25rem;letter-spacing:-0.08125rem;margin-top:0.625rem}
.reflections-heading>p{font-size:0.75rem;max-width:24.375rem;line-height:1.9}
.reflection-overview{display:grid;grid-template-columns:1.15fr 1fr;gap:3.75rem;padding:1.875rem;background:#f1ecf8;border:1px solid #e8e0f0;border-radius:0.9375rem;margin-bottom:1.25rem}
.source-badge{font-size:0.625rem;color:#8b729f;background:#e8def3;padding:0.375rem 0.5625rem;border-radius:0.3125rem;display:inline-block}
.reflection-overview h3{font-size:1.3125rem;font-weight:600;letter-spacing:-.6px;margin:1.125rem 0 0.75rem}
.reflection-overview>div>p{font-size:0.75rem;line-height:1.9;color:var(--muted)}
.reflection-overview .reflection-context{font-size:0.5625rem;margin-top:1.125rem}
.conversation-topics>p{font-size:0.625rem!important}
.topic-bar{display:flex;height:0.8125rem;border-radius:0.625rem;overflow:hidden;gap:0.1875rem;margin:0.8125rem 0 1.0625rem}
.topic-bar>span{flex:var(--share);background:var(--topic-color)}
.conversation-topics ul{padding:0;margin:0;list-style:none;display:grid;gap:0.6875rem}
.conversation-topics li{display:grid;grid-template-columns:0.4375rem 1fr auto;align-items:center;gap:0.5625rem;font-size:0.625rem;color:#7d6b8c}
.topic-dot{width:0.4375rem;height:0.4375rem;border-radius:50%}
.reflections-grid{gap:1.125rem}
.reflection{padding:1.625rem;background:#faf7fd}
.reflection-label{display:flex;align-items:center;gap:0.5625rem;color:#a18bb6}
.reflection-label>span{font-size:1rem}.reflection-label h3{font-size:0.625rem;text-transform:uppercase;letter-spacing:.08em;font-weight:400}
.reflection blockquote{font-size:1.0625rem;line-height:1.55;color:#544164;font-weight:400;margin:1.0625rem 0 0.8125rem}
.reflection>p{font-size:0.6875rem;line-height:1.9;color:var(--muted)}
.reflection-disclosure{font-size:0.5625rem;line-height:1.8;color:#91829f;margin-top:1rem}
@media(max-width:1099px){.hero-masthead{min-height:38.75rem;max-height:52.5rem}.hero-copy{max-width:24.375rem}.hero-copy h1{font-size:3.0625rem}.reflection-overview{gap:1.875rem;padding:1.5625rem}}
@media(max-width:800px) and (min-width:640px){.hero-copy{max-width:20.625rem}.hero-copy h1{font-size:2.5625rem}.hero-masthead .hero-art{left:15%;width:110%}.reflection-overview{gap:1.5rem;grid-template-columns:1fr 1fr}.reflections-heading h2{font-size:1.875rem}.reflection blockquote{font-size:0.9375rem}}
@media(max-width:639px){.hero-masthead{height:auto;min-height:0;max-height:none;padding-top:7.375rem;display:flex;flex-direction:column}.hero-masthead .hero{height:auto;min-height:0;padding-top:1.5625rem;display:block}.hero-copy{max-width:100%;padding-bottom:0}.hero-copy h1{font-size:clamp(2.4375rem,10.5vw,3.5625rem);letter-spacing:-0.15rem}.hero-masthead .hero-art{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.2;margin-top:0.3125rem;overflow:hidden}.hero-masthead .hero-poster,.hero-masthead .hero-video{object-position:70% 50%}.hero-masthead::after{display:none}.projects-section{padding-top:1.875rem}.reflections-section{padding-top:2.1875rem;padding-bottom:2.1875rem}.reflections-heading{display:block}.reflections-heading h2{font-size:1.9375rem}.reflections-heading>p{max-width:none;margin-top:0.8125rem}.reflection-overview{grid-template-columns:1fr;gap:1.625rem;padding:1.375rem}.reflection-overview h3{font-size:1.25rem}.reflection{padding:1.375rem}.reflection blockquote{font-size:1rem}.reflections-grid{grid-template-columns:1fr}}

@media(max-width:639px){
  .hero-masthead .hero-art{aspect-ratio:16/9}
  .hero-masthead .hero-poster,.hero-masthead .hero-video{object-fit:contain;object-position:center}
}
@media(min-width:640px) and (max-width:899px){
  .hero-masthead{height:auto;min-height:0;max-height:none;padding-top:5.9375rem;display:flex;flex-direction:column}
  .hero-masthead .hero{height:auto;min-height:0;padding-top:1.875rem;display:block}
  .hero-masthead .hero-copy{max-width:28.75rem;opacity:1;pointer-events:auto;padding-bottom:0}
  .hero-copy h1{font-size:3rem}
  .hero-masthead .hero-art{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9;margin:1.375rem 0 0}
  .hero-masthead .hero-poster,.hero-masthead .hero-video{object-fit:contain;object-position:center}
  .hero-masthead::after{display:none}
}

/* The portrait follows the desktop biography height; the crop leaves room around the face. */
.about-heading{align-self:stretch;padding-top:0;min-width:0}
.avatar{position:relative;width:auto;height:100%;aspect-ratio:1;flex:0 0 auto;background:#ece6f5}
/* Square character artwork fills the portrait without the old photo crop. */
.avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:1099px){.about-heading{align-self:start}.avatar{width:6.875rem;height:6.875rem}}
@media(max-width:639px){.avatar{width:6rem;height:6rem}}

/* Scale the complete composition beyond its 1440px reference, capped at 16:7. */
@media(min-width:1440px){
  :root{--wide-frame:min(100vw,228.571429svh);font-size:max(100%,min(1.111111vw,2.539683svh))}
  body{position:relative;width:100%;max-width:var(--wide-frame);margin-inline:auto}
  .hero-masthead{height:max(82svh,calc(var(--wide-frame) * .4375));min-height:max(40.625rem,calc(var(--wide-frame) * .4375));max-height:none}
}

/* A closing invitation to the complete collection. */
.all-products{padding-bottom:3rem}
.products-closing{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:3rem;padding:4rem;border:1px solid #cfc0e7;border-radius:1.75rem;background:linear-gradient(120deg,#d8cbea,#cbb9e2);color:#292039}
.products-closing::before{content:"";position:absolute;z-index:-1;left:39%;bottom:-8rem;width:17rem;height:17rem;border:1px solid #a58bbd66;border-radius:50%;box-shadow:0 0 0 2.5rem #b7a0ce22,0 0 0 5rem #b7a0ce16;pointer-events:none}
.products-closing-copy .eyebrow{color:#635174;font-size:.6875rem;letter-spacing:.13em;text-transform:uppercase}
.products-closing-copy h2{font-size:3.25rem;font-weight:600;line-height:1.08;letter-spacing:-.12rem;margin:1.125rem 0 1.5rem}
.products-closing-copy>p:last-child{font-size:.875rem;line-height:1.7;color:#5e4c70;max-width:22rem}
.products-destination{display:flex;flex-direction:column;gap:1rem;min-width:0;padding:2rem;background:#fcfaff;border:1px solid #fff9;border-radius:1.125rem;box-shadow:0 .375rem 0 #9276aa66;transition:background .2s}
.products-destination:hover{background:#fff}
.products-destination-label{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:#7c668e}
.products-destination-address{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:2.25rem;font-weight:600;letter-spacing:-.08rem}
.products-destination-address svg{width:1.875rem;height:1.875rem;transform:rotate(-45deg);color:#7b5c9b;flex-shrink:0}
.products-destination-note{font-size:.75rem;color:#8a769a}
@media(max-width:1099px){.products-closing{padding:2.5rem;gap:2rem}.products-closing-copy h2{font-size:2.5rem}.products-destination{padding:1.5rem}}
@media(max-width:639px){.products-closing{grid-template-columns:1fr;padding:1.75rem;gap:1.75rem;border-radius:1.25rem}.products-closing-copy h2{font-size:2.125rem;letter-spacing:-.075rem;margin-bottom:1rem}.products-destination{padding:1.5rem}.products-destination-address{font-size:2rem}.all-products{padding-bottom:2rem}}

/* Contact action: a tactile lavender envelope-sized link. */
.email-link{gap:2rem;padding:1.125rem 1.25rem 1.125rem 1.5rem;border:1px solid #dacdec;border-radius:1.125rem;background:#eee7f7;box-shadow:0 .25rem 0 #d8c9e8,0 .625rem 1.5rem #49346009;letter-spacing:-.04rem;transition:background .2s,box-shadow .2s}
.email-label{display:flex;flex-direction:column;gap:.375rem}.email-kicker{font-size:.625rem;line-height:1.4;letter-spacing:.035em;color:#847293}.email-arrow{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid #d7c7e9;border-radius:50%;background:#faf7ff;flex-shrink:0}.email-link .email-arrow svg{width:1.125rem;height:1.125rem;color:#79579c;transition:transform .2s}.email-link:hover{background:#e8ddf4;color:var(--ink);box-shadow:0 .25rem 0 #cdb9e2,0 .75rem 1.75rem #49346012}.email-link:hover .email-arrow svg{transform:translate(.1rem,-.1rem) rotate(-45deg)}
@media(max-width:639px){.email-link{width:100%;justify-content:space-between;padding:1rem 1.125rem;gap:1rem;font-size:1.375rem}.email-arrow{width:2.5rem;height:2.5rem}}
@media(prefers-reduced-motion:reduce){.email-link:hover .email-arrow svg{transform:rotate(-45deg)}}

.footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem}.footer-links a{padding-block:.375rem}

/* GitHub is a small follow-on to the biography, independent of portrait sizing. */
.about-section{row-gap:1rem}
.about-github{grid-column:2;min-width:0}
.about-github p{font-size:.8125rem;line-height:1.9;color:var(--muted)}
.github-button{display:inline-flex;align-items:center;gap:.75rem;margin-top:.875rem;padding:.875rem 1.125rem;border:1px solid #cdbce7;border-radius:.6875rem;background:#e9dff5;color:#342645;font-size:.8125rem;font-weight:600;line-height:1.5;box-shadow:0 .1875rem 0 #cfbde2;transition:background .2s,border-color .2s}
.github-button svg{width:1.125rem;height:1.125rem;flex-shrink:0}
.github-button .github-icon{width:1.375rem;height:1.375rem}
.github-button>svg:last-child{margin-left:.5rem;transform:rotate(-45deg)}
.github-button:hover{background:#ddcdec;border-color:#b69bd5}
.github-button:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
@media(max-width:639px){.about-github{grid-column:1}}
