/* Editorial faces: shared material, three distinct compositions. */
.prism-face{border-color:color-mix(in srgb,var(--accent) 17%,var(--line))}
.face-heading{position:relative;flex:none;min-width:0}
.face-heading:before{content:"";display:block;width:54px;height:3px;border-radius:4px;margin-bottom:clamp(8px,1.35svh,15px);background:linear-gradient(to left,var(--accent) 68%,transparent 68% 78%,var(--accent) 78% 88%,transparent 88% 95%,var(--accent) 95%)}
.prism-hero-heading:before{background:linear-gradient(to left,var(--accent) 68%,transparent 68% 78%,var(--accent) 78% 88%,transparent 88% 95%,var(--accent) 95%)}
.face-heading h2{margin:0;line-height:1.5}
.face-heading h2 span{background:linear-gradient(transparent 78%,color-mix(in srgb,var(--accent) 13%,transparent) 78%);padding-bottom:2px}
.face-icon{display:grid;place-items:center;flex:none;width:clamp(34px,3.7vw,49px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
.face-icon svg{width:52%;height:52%;display:block}
html[data-theme=light] .face-icon{color:color-mix(in srgb,var(--accent) 42%,#141a10)}

/* About: a signed story, with the practical details in a compact lower row. */
.prism-about{background:radial-gradient(ellipse at 8% 8%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 47%),linear-gradient(145deg,var(--surface-2),var(--surface) 70%)}
.prism-about:before{opacity:.18;background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 82%)}
.prism-about .prism-content{justify-content:flex-start;gap:clamp(11px,1.8svh,21px)}
.about-story{position:relative;display:flex;flex-direction:column;justify-content:center;flex:1 0 auto;min-width:0;min-height:min-content;gap:clamp(7px,1.2svh,14px);padding:clamp(15px,2.4vw,34px);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:clamp(16px,2vw,26px);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 6%,var(--surface)),var(--surface));box-shadow:0 16px 42px rgba(0,0,0,.08);overflow:hidden;isolation:isolate}
.about-story:before{content:"";position:absolute;right:0;top:clamp(15px,2.4vw,34px);bottom:clamp(15px,2.4vw,34px);width:3px;border-radius:4px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 12%,transparent));pointer-events:none}
.about-story-symbol{position:relative;z-index:1;height:clamp(20px,3.7svh,37px);font:700 clamp(45px,5vw,72px)/1 Georgia,serif;color:var(--accent);align-self:flex-start}
.about-story p{position:relative;z-index:1;max-width:59ch;margin:0;font-size:clamp(12px,1.2vw,17px);line-height:1.95;color:var(--text);overflow-wrap:anywhere}
.about-signature{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:clamp(5px,1svh,12px);padding-top:clamp(7px,1.2svh,13px);border-top:1px solid var(--line);color:var(--muted)}
.about-signature>span{font-size:19px;line-height:1;color:var(--accent)}
.about-signature strong{font-size:clamp(10px,.95vw,13px);font-weight:650;overflow-wrap:anywhere}
.about-story-orbit{position:absolute;width:clamp(110px,27%,220px);aspect-ratio:1;left:-8%;top:-12%;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:50%;pointer-events:none;transform:rotate(-18deg)}
.about-story-orbit:before,.about-story-orbit:after{content:"";position:absolute;inset:17%;border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:50%}
.about-story-orbit:after{inset:35%;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.prism-about-bottom{flex:none;display:flex;flex-direction:column;gap:clamp(8px,1.25svh,14px);min-width:0}
.about-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(7px,1.1vw,15px)}
.about-fact{display:flex;align-items:center;gap:clamp(8px,1.2vw,15px);min-width:0;padding:clamp(10px,1.35vw,18px);border:1px solid var(--line);border-radius:clamp(13px,1.5vw,19px);background:color-mix(in srgb,var(--surface) 78%,transparent)}
.about-fact .face-icon{width:clamp(29px,3vw,39px);border-radius:11px}
.about-fact>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.about-fact small{color:var(--muted);font-size:clamp(9px,.8vw,11px);line-height:1.5}
.about-fact strong{font-size:clamp(10px,.98vw,14px);font-weight:700;line-height:1.55;overflow-wrap:anywhere}
.face-resume-link{display:inline-flex;align-items:center;justify-content:space-between;align-self:flex-start;gap:clamp(18px,3vw,36px);padding:6px 7px 6px 14px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:100px;font-size:clamp(10px,.9vw,12px);font-weight:750;line-height:1.5;background:color-mix(in srgb,var(--accent) 8%,var(--surface));transition:background .25s,border-color .25s,color .25s}
.face-resume-link>span:last-child{display:grid;place-items:center;width:25px;aspect-ratio:1;border-radius:50%;background:var(--accent);color:#151712;font-size:17px;line-height:1}
.face-resume-link:hover,.face-resume-link:focus-visible{background:var(--accent);border-color:var(--accent);color:#151712}

/* Expertise: one featured card, two complementary cards, no decorative numbers. */
.prism-services{background:radial-gradient(ellipse at 98% 4%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 52%),linear-gradient(145deg,var(--surface),var(--bg))}
.prism-services:before{opacity:.2;background-size:48px 48px;mask-image:linear-gradient(to left,#000,transparent)}
.prism-services .prism-content{justify-content:flex-start;gap:clamp(12px,2svh,24px)}
.expertise-grid{display:grid;grid-template-columns:1.04fr .96fr;grid-template-rows:repeat(2,minmax(min-content,1fr));gap:clamp(9px,1.25vw,18px);flex:1 1 auto;min-width:0;min-height:0}
.expertise-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(9px,1.5svh,18px);min-width:0;min-height:min-content;padding:clamp(15px,1.9vw,27px);border:1px solid var(--line);border-radius:clamp(16px,2vw,25px);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 4%,var(--surface-2)),var(--surface));overflow:hidden;isolation:isolate;transition:border-color .3s,background .3s}
.expertise-card:after{content:"";position:absolute;left:-25px;top:-25px;width:90px;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 15%,transparent);border-radius:50%;pointer-events:none}
.expertise-card--design{grid-row:span 2;border-color:color-mix(in srgb,var(--accent) 33%,var(--line));background:radial-gradient(ellipse at 0 36%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%),linear-gradient(155deg,var(--surface-2),var(--surface))}
.expertise-card--design .face-icon{background:var(--accent);border-color:var(--accent);color:#151712}
.expertise-copy{position:relative;z-index:1;min-width:0;margin-top:auto}
.expertise-copy h3{font-size:clamp(14px,1.4vw,21px);font-weight:800;line-height:1.55;letter-spacing:-.035em;margin:0 0 clamp(4px,.7svh,9px);overflow-wrap:anywhere}
.expertise-copy p{font-size:clamp(10px,.94vw,13px);line-height:1.75;color:var(--muted);margin:0;overflow-wrap:anywhere}
.expertise-card--design .expertise-copy h3{font-size:clamp(16px,1.8vw,27px)}
.expertise-art{position:relative;display:block;flex:1 1 80px;min-height:35px;width:min(90%,240px);margin:clamp(5px,1svh,13px) auto;pointer-events:none;perspective:500px}
.expertise-art i{position:absolute;width:62%;height:72%;left:22%;top:9%;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:clamp(9px,1vw,15px);background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent);transform:rotate(-15deg) skewY(7deg);box-shadow:0 12px 28px rgba(0,0,0,.08);transition:transform .5s}
.expertise-art i:nth-child(2){transform:translate(-13px,10px) rotate(-15deg) skewY(7deg);opacity:.65}
.expertise-art i:nth-child(3){transform:translate(-26px,20px) rotate(-15deg) skewY(7deg);opacity:.35}
.expertise-card:hover{border-color:color-mix(in srgb,var(--accent) 56%,var(--line));background-color:var(--surface-2)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.expertise-card--design:hover .expertise-art i:first-child{transform:translate(6px,-4px) rotate(-10deg) skewY(7deg)}}

/* Contact: a bold phone strip and three quieter social cards. */
.prism-contact{background:radial-gradient(ellipse at 3% 25%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 50%),linear-gradient(155deg,var(--surface-2),var(--surface) 72%,var(--bg))}
.prism-contact:before{opacity:.14;background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}
.prism-contact .prism-content{justify-content:flex-start;gap:clamp(14px,2svh,24px)}
.contact-heading .prism-copy{max-width:52ch;margin:clamp(9px,1.45svh,17px) 0 0;font-size:clamp(12px,1.12vw,16px);line-height:1.85;color:var(--muted)}
.contact-methods{position:relative;z-index:1;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(12px,1.8svh,22px);min-width:0;min-height:min-content}
.contact-phone{position:relative;display:flex;align-items:center;gap:clamp(12px,1.8vw,24px);flex:1 0 auto;min-height:clamp(80px,15svh,140px);max-height:clamp(120px,26svh,230px);padding:clamp(16px,2.3vw,32px);border:1px solid color-mix(in srgb,var(--accent) 85%,#151712);border-radius:clamp(17px,2.2vw,28px);background:var(--accent);color:#151712;box-shadow:0 17px 48px color-mix(in srgb,var(--accent) 10%,transparent);overflow:hidden;isolation:isolate;transition:box-shadow .3s,border-color .3s}
.contact-phone:before{content:"";position:absolute;inset:auto -30px -95px auto;width:210px;aspect-ratio:1;border:1px solid rgba(21,23,18,.12);border-radius:50%;pointer-events:none;z-index:-1}
.contact-phone-icon{display:grid;place-items:center;flex:none;width:clamp(40px,5vw,64px);aspect-ratio:1;border:1px solid rgba(21,23,18,.2);border-radius:clamp(13px,1.5vw,20px);background:rgba(21,23,18,.06)}
.contact-phone-icon svg{width:50%;height:50%}
.contact-phone-copy{display:flex;flex-direction:column;gap:clamp(3px,.7svh,8px);min-width:0}
.contact-phone-copy small{font-size:clamp(10px,.95vw,13px);line-height:1.4;font-weight:600;color:rgba(21,23,18,.7)}
.contact-phone-copy strong{align-self:flex-start;max-width:100%;font-size:clamp(21px,2.65vw,39px);font-weight:800;line-height:1.35;letter-spacing:.01em;overflow-wrap:anywhere;unicode-bidi:isolate}
.contact-phone-arrow{margin-inline-start:auto;font-size:clamp(22px,3.4vw,44px);line-height:1;transition:transform .25s;flex:none}
.contact-phone:hover .contact-phone-arrow{transform:translate(-3px,-3px)}
.contact-phone:hover{box-shadow:0 22px 55px color-mix(in srgb,var(--accent) 17%,transparent)}
.contact-phone--empty .contact-phone-copy strong{font-size:clamp(11px,1.1vw,16px);font-weight:700;letter-spacing:0;line-height:1.6}
.prism-home .prism-contact .social-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(7px,1.1vw,15px);margin:0;width:100%}
.prism-home .prism-contact .social-link{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-width:0;min-height:clamp(86px,17svh,146px);gap:clamp(9px,1.3svh,15px);padding:clamp(11px,1.6vw,21px);border:1px solid var(--line);border-radius:clamp(14px,1.7vw,22px);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 6%,var(--surface)),var(--surface));font-size:clamp(10px,.98vw,14px);font-weight:750;line-height:1.5;transition:border-color .25s,background .25s}
.contact-social-icon{display:grid;place-items:center;width:clamp(31px,3.5vw,46px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 19%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));color:var(--accent)}
.prism-home .prism-contact .social-icon{width:52%;height:52%;display:block;color:inherit}
.prism-home .prism-contact .social-name{min-width:0;padding-inline-end:16px;overflow-wrap:anywhere}
.contact-social-arrow{position:absolute;left:clamp(10px,1.3vw,18px);bottom:clamp(11px,1.6vw,21px);font-size:19px;font-weight:400;line-height:1;color:var(--muted)}
.prism-home .prism-contact a.social-link:hover,.prism-home .prism-contact a.social-link:focus-visible{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--text)}
.prism-home .prism-contact .social-link.is-unset{opacity:.5;cursor:default}
html[data-theme=light] .contact-social-icon{color:color-mix(in srgb,var(--accent) 45%,#141a10)}
.contact-orbit{position:absolute;width:clamp(160px,30%,270px);aspect-ratio:1;left:-7%;top:8%;pointer-events:none;opacity:.15;transform:rotate(-24deg)}
.contact-orbit i{position:absolute;inset:10%;border:1px solid var(--accent);border-radius:50%;transform:scaleX(.5)}
.contact-orbit i:nth-child(2){transform:rotate(60deg) scaleX(.5)}
.contact-orbit i:nth-child(3){transform:rotate(120deg) scaleX(.5)}

/* Tablets and shorter desktops use compact rows for all three specialties. */
@media(max-width:1100px),(max-height:580px){
  .expertise-grid{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(min-content,1fr));gap:clamp(6px,1svh,11px)}
  .expertise-card{flex-direction:row;align-items:center;justify-content:flex-start;padding:clamp(9px,1.2svh,14px) clamp(12px,1.5vw,18px);gap:clamp(10px,1.5vw,17px)}
  .expertise-card--design{grid-row:auto}
  .expertise-art{display:none}
  .expertise-copy{margin-top:0}
  .expertise-copy h3,.expertise-card--design .expertise-copy h3{font-size:clamp(12px,1.45vw,17px);margin-bottom:3px}
  .expertise-copy p{font-size:clamp(10px,.95vw,12px);line-height:1.55}
}
@media(max-width:760px){
  .face-heading:before{width:39px;height:2px;margin-bottom:6px}
  .prism-about .prism-content,.prism-services .prism-content,.prism-contact .prism-content{gap:clamp(8px,1.25svh,13px)}
  .about-story{padding:clamp(10px,1.6svh,16px) 13px;gap:6px;border-radius:15px}
  .about-story-symbol{height:19px;font-size:44px}
  .about-story p{font-size:clamp(10px,2.8vw,12px);line-height:1.65}
  .about-signature{gap:7px;margin-top:3px;padding-top:6px}
  .about-signature>span{font-size:14px}
  .about-signature strong{font-size:10px}
  .prism-about-bottom{gap:6px}
  .about-facts{gap:6px}
  .about-fact{padding:8px;gap:6px;border-radius:12px}
  .about-fact .face-icon{width:26px;border-radius:8px}
  .about-fact small{font-size:8px}
  .about-fact strong{font-size:clamp(9px,2.5vw,11px);line-height:1.45}
  .face-resume-link{padding:4px 5px 4px 11px;font-size:10px;gap:18px}
  .face-resume-link>span:last-child{width:21px;font-size:14px}
  .expertise-card{padding:8px 10px;border-radius:14px;gap:9px}
  .expertise-card .face-icon{width:31px;border-radius:10px}
  .expertise-copy h3,.expertise-card--design .expertise-copy h3{font-size:clamp(11px,3.15vw,14px);line-height:1.45;margin-bottom:3px}
  .expertise-copy p{font-size:clamp(9px,2.55vw,11px);line-height:1.5}
  .contact-heading .prism-copy{margin-top:7px;font-size:clamp(10px,2.8vw,12px);line-height:1.6}
  .contact-methods{gap:10px}
  .contact-phone{min-height:78px;max-height:160px;gap:10px;padding:13px;border-radius:17px}
  .contact-phone-icon{width:36px;border-radius:11px}
  .contact-phone-copy small{font-size:9px}
  .contact-phone-copy strong{font-size:clamp(18px,5.2vw,27px)}
  .contact-phone--empty .contact-phone-copy strong{font-size:11px}
  .contact-phone-arrow{font-size:25px}
  .prism-home .prism-contact .social-links{gap:6px}
  .prism-home .prism-contact .social-link{min-height:clamp(69px,12svh,97px);padding:9px;gap:8px;border-radius:13px;font-size:10px}
  .contact-social-icon{width:28px;border-radius:9px}
  .contact-social-arrow{font-size:14px;left:8px;bottom:11px}
  .contact-orbit{width:150px;left:-46px;top:5%;opacity:.11}
}
@media(max-height:620px){
  .prism-about .prism-content,.prism-services .prism-content,.prism-contact .prism-content{gap:7px}
  .face-heading:before{height:2px;margin-bottom:5px}
  .about-story{padding:9px 12px;gap:4px}
  .about-story-symbol{height:15px;font-size:36px}
  .about-story p{font-size:11px;line-height:1.5}
  .about-signature{margin-top:2px;padding-top:4px}
  .about-fact{padding:6px 8px}
  .expertise-card{padding-block:6px}
  .contact-methods{gap:8px}
  .contact-phone{min-height:64px;max-height:110px;padding:10px 13px}
  .prism-home .prism-contact .social-link{min-height:66px;padding:8px;gap:5px}
  .contact-social-icon{width:26px;border-radius:9px}
  .contact-social-arrow{bottom:10px;left:9px;font-size:14px}
}
@media(max-width:380px){.about-fact{align-items:flex-start;gap:5px}.about-fact .face-icon{width:23px}.contact-phone{gap:8px}.contact-phone-icon{width:30px}.contact-phone-copy strong{font-size:19px}.contact-phone-arrow{font-size:21px}.prism-home .prism-contact .social-name{padding-inline-end:11px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.expertise-art i,.contact-phone-arrow{transition:none}.contact-phone:hover .contact-phone-arrow{transform:none}}
