/* Selected original homepage CSS, with selectors adapted to local markup.
 * Header uses cubic-bezier(.4,0,.1,1); editorial/Footer uses (.35,0,0,1).
 * Source: https://lusion.co/_astro/hoisted.CUO_IjfL.js + deployed stylesheet. */
.homepage-dom-ready{--dom-menu-ease:cubic-bezier(.4,0,.1,1);--dom-editorial-ease:cubic-bezier(.35,0,0,1)}
.homepage-dom-ready .reveal[data-dom-motion]{opacity:1;transform:none;transition:none}
.homepage-dom-ready .reveal[data-dom-motion=cta]{transform:none;transition:none}
.homepage-dom-ready .hero-title{animation:none;overflow:hidden;grid-column:4/span 5;font-size:2.5vw;line-height:1.1;max-width:none;margin:0}
.homepage-dom-ready .hero-visual{margin-top:calc(clamp(30px,4vw,50px) * .6)}
.homepage-dom-ready .project-image{aspect-ratio:100/65}
.dom-word,.dom-char{position:relative;display:inline-block;will-change:transform}
.dom-word{white-space:nowrap}
.dom-line-clip{display:block;position:relative;overflow:hidden}
.dom-line{display:block;position:relative}
.homepage-dom-ready .work-heading h2{overflow:hidden;padding:.15em 0 .08em;margin:-.15em 0 -.08em}
.homepage-dom-ready .intro-title>span{overflow:hidden;padding:.1em 0;margin:-.1em 0}
.homepage-dom-ready .intro-title>.intro-first{padding-left:17%}
.homepage-dom-ready .intro-copy p{position:relative}
.homepage-dom-ready .header-actions>.pill.dark,.homepage-dom-ready .dom-original-cta{translate:none}
/* The frame loop owns header entry; CSS transform transitions would trail it. */
.homepage-dom-ready .header-actions>.pill{transition-property:background,color,box-shadow}
.homepage-dom-ready .header-actions>.pill.dark>span:first-child{transition:transform .3s var(--dom-menu-ease)}
.homepage-dom-ready .header-actions>.pill.dark>.dot{transition:transform .1s var(--dom-menu-ease)}
.homepage-dom-ready .header-actions>.pill.dark>.pill-arrow{position:absolute;left:1.2em;right:auto;top:50%;transform:translate3d(-2.5em,-50%,0);transition:transform .3s var(--dom-menu-ease)}
@media(hover:hover){.homepage-dom-ready .header-actions>.pill.dark:hover>span:first-child{transform:translate3d(1.5em,0,0)}.homepage-dom-ready .header-actions>.pill.dark:hover>.dot{transform:scale(0)}.homepage-dom-ready .header-actions>.pill.dark:hover>.pill-arrow{transform:translate3d(0,-50%,0)}}
.homepage-dom-ready .dom-original-cta{position:relative;overflow:hidden;gap:1em;padding:1em 1.5em 1em 1.625em;height:3.375em;min-height:0;border-radius:5.3125em;color:#000;background:#fff;box-shadow:0 6px 10px #0000000a,0 2px 4px #0000000a;transition:background .2s var(--dom-editorial-ease)}
.dom-original-cta .dot{z-index:1;flex-shrink:0;width:.5em;height:.5em;background:#000;transition:background .5s var(--dom-editorial-ease),transform .4s var(--dom-editorial-ease)}
.dom-original-cta .dom-cta-text{position:relative;z-index:1;transition:color .5s var(--dom-editorial-ease),transform .4s var(--dom-editorial-ease)}
.dom-original-cta .pill-arrow{position:absolute;z-index:2;right:1em;left:auto;top:50%;width:1.2em;height:1.2em;display:flex;align-items:center;justify-content:center;opacity:1;transform:translate3d(3em,-50%,0);transition:transform .4s cubic-bezier(.4,0,0,1);font-size:1em}
.dom-original-cta .pill-arrow svg{width:100%;height:100%;transition:color .5s}
@media(hover:hover){.homepage-dom-ready .dom-original-cta:hover{color:#fff;background:#1a2ffb;transition:background .5s .3s var(--dom-editorial-ease)}.homepage-dom-ready .dom-original-cta:hover .dot{opacity:1;transform:translate3d(3em,0,0) scale(20);background:#1a2ffb}.dom-original-cta:hover .dom-cta-text{transform:translate3d(-1.5em,0,0)}.dom-original-cta:hover .pill-arrow{transform:translate3d(0,-50%,0)}}
.dom-menu-backdrop{position:fixed;inset:0 0 0 50%;background:linear-gradient(270deg,#0b0b1280,#0b0b1200);opacity:0;transition:opacity .4s .4s;pointer-events:none;z-index:-1}
.menu-open .dom-menu-backdrop{opacity:.2;transition:opacity .4s;pointer-events:auto}
.homepage-dom-ready .menu-overlay{width:310px;max-height:calc(100svh - 130px);overflow:auto;overscroll-behavior:contain;scrollbar-width:none;top:60px;display:flex;flex-direction:column;gap:10px;padding-bottom:18px}
.homepage-dom-ready .menu-overlay::-webkit-scrollbar{display:none}
.homepage-dom-ready .menu-panel,.homepage-dom-ready .menu-talk,.homepage-dom-ready .menu-about{opacity:0;transform:translate3d(0,7.75em,0) rotate(-3.5deg);transition:transform .5s var(--close-delay) var(--dom-menu-ease),opacity .5s var(--close-delay) var(--dom-menu-ease);margin:0;border-radius:10px;flex-shrink:0}
.homepage-dom-ready .menu-panel{transform:translate3d(0,5.5em,0) rotate(3.5deg);padding:16px 5px}
.homepage-dom-ready .menu-close{display:none}
.homepage-dom-ready .menu-open .menu-panel,.homepage-dom-ready .menu-open .menu-talk,.homepage-dom-ready .menu-open .menu-about{opacity:1;transform:translateZ(0);transition:transform .5s var(--open-delay) var(--dom-menu-ease),opacity .5s var(--open-delay) var(--dom-menu-ease)}
.homepage-dom-ready .menu-panel>.dom-menu-link{display:block;position:relative;overflow:hidden;width:100%;padding:16px 26px;line-height:1;text-transform:uppercase;font-size:24px;color:#000;border-radius:100px;background:transparent;transition:color .4s}
.dom-menu-link::before{content:"";position:absolute;inset:0;border-radius:100px;background:#1a2ffb;opacity:0;transform:scale(.85);transition:opacity .3s,transform .4s var(--dom-menu-ease)}
.dom-menu-link::after{content:"";position:absolute;top:calc(50% - 4px);right:32px;width:8px;height:8px;background:#000;border-radius:100%;transform:scale(0);transition:transform .3s var(--dom-menu-ease)}
.dom-menu-link.dom-menu-active::after{transform:scale(1)}
.dom-roll-text{display:block;position:relative;overflow:hidden;line-height:1.2}
.dom-roll-label{display:inline-block;position:relative;transition:color .4s,transform .4s var(--dom-menu-ease)}
.dom-roll-clone{position:absolute;left:0;top:0;transform:translate3d(0,100%,0)}
.homepage-dom-ready .menu-panel>.dom-menu-link>span:last-child:not(.dom-roll-text){position:absolute;right:26px;top:calc(50% - .5em);transform:scale(0);transition:transform .2s var(--dom-menu-ease)}
@media(hover:hover){.homepage-dom-ready .menu-panel>.dom-menu-link:hover{background:transparent;color:#1a2ffb}.dom-menu-link:hover::before{opacity:.1;transform:scale(1)}.dom-menu-link:hover::after{transform:scale(0)}.dom-menu-link:hover .dom-roll-label{transform:translate3d(0,-100%,0)}.dom-menu-link:hover .dom-roll-clone{transform:translateZ(0)}.homepage-dom-ready .menu-panel>.dom-menu-link:hover>span:last-child:not(.dom-roll-text){transform:scale(1);transition:transform .2s .2s var(--dom-menu-ease)}}
.homepage-dom-ready .menu-talk{display:none}
.homepage-dom-ready .menu-about{position:relative;overflow:hidden;padding:20px 30px;background:#000;color:#fff;gap:24px;font-size:inherit}
.homepage-dom-ready .menu-about>.dom-roll-text{flex-grow:1;font-size:24px;text-transform:uppercase}
@media(hover:hover){.menu-about:hover .dom-roll-label{transform:translate3d(0,-100%,0)}.menu-about:hover .dom-roll-clone{transform:translateZ(0)}}
.homepage-dom-ready .menu-open .menu-button{background:#fff;color:#000}
/* Both labels size one shared track; the longer CLOSE stays inside the roll mask. */
.dom-menu-label-wrap{position:relative;display:grid;grid-template-columns:max-content;flex-shrink:0;overflow:hidden;line-height:1.2em;text-align:center}
.dom-menu-label-wrap .menu-label{display:block;grid-area:1/1;transition:transform .3s var(--dom-menu-ease)}
.dom-menu-close-label{position:static;grid-area:1/1;transform:translate3d(0,100%,0);transition:transform .3s var(--dom-menu-ease)}
.homepage-dom-ready .menu-button:hover>.dom-menu-label-wrap{transform:none}
.menu-open .dom-menu-label-wrap .menu-label{transform:translate3d(0,-100%,0)}
.menu-open .dom-menu-close-label{transform:translateZ(0)}
.homepage-dom-ready .two-dots{transform:rotate(180deg);transition:transform .4s var(--dom-menu-ease)}
.homepage-dom-ready .menu-button:hover .two-dots,.homepage-dom-ready .menu-open .two-dots{transform:translateY(-.1em) rotate(270deg)}
.homepage-dom-ready .project-meta h3{position:relative;overflow:hidden;padding-bottom:.12em;line-height:1.1}
/* Clip one rolling line while leaving room for caps and the hover's side shift. */
.homepage-dom-ready .project-meta h3 .project-title-button>.dom-word{display:inline-flex;align-items:flex-start;height:1em;clip-path:inset(-.3em -2em 0 -2em)}
.dom-project-title-track{position:relative;display:flex;flex-direction:column;flex-shrink:0;will-change:transform}
.dom-project-title-track>.dom-char{display:block;flex-shrink:0}
.dom-motion-reduced .dom-project-title-track{transform:none!important}
.dom-project-title-arrow{display:block;position:absolute;width:.8em;height:.8em;top:.1em;left:-1em;background:url('./assets/icons/arrow-right.svg') no-repeat center/contain;pointer-events:none}

/* EndSection: original 350vh sticky contact composition. */
.homepage-dom-ready .contact-section{height:350svh;min-height:0;padding:0;position:relative;display:block;background:#000;color:#fff;font-size:clamp(.875rem,1vw,2rem)}
@media(min-width:813px){
  .homepage-dom-ready:not(.dom-motion-reduced) .contact-section{height:100svh;margin-top:var(--journey-contact-overlap,0px)}
}
.dom-contact-stage{position:sticky;top:0;width:100%;height:100svh;overflow:hidden}
.dom-contact-content{position:absolute;left:50%;top:calc(50% - 3em);width:100%;text-align:center;transform:translate(-50%,-50%)}
.dom-contact-crosses{--dom-cross-size:clamp(.875rem,1vw,2rem);position:absolute;width:60vw;height:calc(100% + 10vh);left:calc(50% - 30vw);pointer-events:none}
.dom-contact-crosses>span{position:absolute;width:var(--dom-cross-size);height:var(--dom-cross-size)}
.dom-contact-crosses>span::before,.dom-contact-crosses>span::after{position:absolute;content:"";width:var(--dom-cross-size);height:calc(.125 * var(--dom-cross-size));left:0;top:calc(.5 * var(--dom-cross-size));background:currentColor}
.dom-contact-crosses>span::after{transform:rotate(90deg)}
.dom-contact-crosses>span:nth-child(1){left:0;top:0}.dom-contact-crosses>span:nth-child(2){right:0;top:0}.dom-contact-crosses>span:nth-child(3){left:0;bottom:0}.dom-contact-crosses>span:nth-child(4){right:0;bottom:0}
@media(min-width:813px){
  /* Move the heading and its four corner markers together over the chest.
   * Compensate for the capital letters sitting above their em-box center. */
  .homepage-dom-ready .dom-contact-content{top:calc(48% + 1vw)}
  .dom-contact-crosses{top:-5vh}
}
.dom-contact-subtitle{position:relative;overflow:hidden;line-height:1.4;font-size:1em;text-transform:uppercase;will-change:transform}
.homepage-dom-ready .contact-section .dom-contact-title{position:relative;width:fit-content;margin:0 auto;line-height:1;font-size:10vw;letter-spacing:-.02em;will-change:transform}
.homepage-dom-ready .contact-section .dom-contact-heading{display:block;position:relative;cursor:default}
.dom-contact-line{position:relative;display:block;height:1em;overflow:hidden}
.dom-contact-line:last-child{bottom:.02em}
.dom-contact-line .dom-word{position:relative;overflow:hidden;height:.95em}
.dom-char-roll{position:relative;display:inline-block;top:-.16em;height:1em;will-change:transform}
.dom-char-roll .dom-char{float:left;display:inline-block;position:relative;height:1em}
.dom-char-roll .dom-char-clone{clear:both}
.dom-contact-continue{position:absolute;left:50%;bottom:7vh;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:1em;width:15em;height:3.375em;text-align:center;background:#fff;color:#000;border-radius:100px;font-size:1.1em;box-shadow:0 6px 10px #0000000a,0 2px 4px #0000000a;overflow:hidden}
.dom-continue-arrow{position:relative;overflow:hidden;height:1em;width:1em;flex-shrink:0;line-height:1em}
.dom-continue-arrow>span{display:block;position:relative;left:0;width:1em;height:1em;background:url('./assets/icons/arrow-down.svg') center/cover no-repeat;animation:dom-arrow-animation 3s infinite cubic-bezier(.1,0,.1,1)}
.dom-continue-arrow>span:last-child{position:absolute;top:-1em}
.dom-continue-arrow:last-child>span{animation-delay:.3s}
.dom-continue-text{position:relative;overflow:hidden;font-size:.75em;line-height:1.5em;height:1.5em;white-space:nowrap}
.dom-continue-text>span{display:block;position:relative;animation:dom-text-animation 3s .2s infinite cubic-bezier(.1,0,.1,1)}
.dom-continue-text>span:last-child{position:absolute;left:0;top:-1.5em;width:100%}
@keyframes dom-arrow-animation{0%{transform:translateZ(0)}33%,100%{transform:translate3d(0,1em,0)}}
@keyframes dom-text-animation{0%{transform:translateZ(0)}33%,100%{transform:translate3d(0,1.5em,0)}}

/* FooterSection grid/hover styles directly reflect the deployed homepage. */
.homepage-dom-ready .footer-section{position:relative;display:flex;flex-direction:column;min-height:100svh;background:#fff;color:#000;font-size:clamp(.875rem,1vw,2rem);padding:0 var(--pad) 40px}
.dom-footer-top{position:relative;flex-grow:1;margin-top:5vh;min-height:23vh}
.dom-footer-middle{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.dom-footer-contact{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:var(--gap);grid-column:1/span 6;font-size:1.25em}
.dom-footer-address{grid-column:1/span 3;line-height:1.4;width:fit-content;will-change:transform}
.dom-footer-line-clip{position:relative;overflow:hidden;display:flex;flex-direction:column}
.dom-footer-address .dom-footer-line-clip{width:fit-content;transition:transform .6s var(--dom-editorial-ease)}
.dom-footer-address-line{display:block}
.dom-footer-socials{grid-column:4/span 3;will-change:transform}
.dom-footer-social-item{position:relative;display:block;overflow:hidden}
.dom-footer-socials>.dom-footer-line-clip:not(:first-child){margin-top:.3em}
.dom-footer-social-text{display:block}
.dom-footer-enquires,.dom-footer-business{margin-top:2.5em;grid-column:4/span 3;will-change:transform}
.dom-footer-email-text{display:block;position:relative;width:fit-content;padding-bottom:.2em}
.dom-footer-bottom>a::before{content:"";position:absolute;bottom:0;width:100%;height:.1em;background:#000;transform:scale3d(0,1,1);transform-origin:left;transition:transform .3s var(--dom-editorial-ease)}
.dom-footer-enquires>.dom-footer-line-clip:last-child,.dom-footer-business>.dom-footer-line-clip:last-child{margin-top:.3em}
.dom-footer-newsletter{grid-column:7/span 6}
.dom-footer-newsletter h3{font-size:3.375em;line-height:1.03;letter-spacing:-.02em}
.dom-footer-newsletter-line{display:block}
.homepage-dom-ready #newsletter-form{position:relative;margin-top:2em;height:4.375em;max-width:33.75em;background:transparent;font-size:inherit}
.dom-newsletter-bg{position:absolute;inset:0;border-radius:1.125em;background:#f0f1fa;transform-origin:left}
.homepage-dom-ready #newsletter-email{position:relative;width:100%;height:100%;font-size:1.25em;padding:.625em 3em .625em 1.25em;background:transparent}
.homepage-dom-ready #newsletter-email::placeholder{opacity:0;transition:opacity .5s .3s}
.homepage-dom-ready .dom-form-active #newsletter-email::placeholder{opacity:.3}
.homepage-dom-ready #newsletter-form button{position:absolute;right:1.25em;top:50%;font-size:1.7em;line-height:1;transform:translateY(-50%)}
.homepage-dom-ready #newsletter-status{margin:.5em 1em 0;font-size:.7em;min-height:1.2em}
.homepage-dom-ready .dom-footer-bottom{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center;font-size:1em;font-family:Aeonik,Arial,sans-serif;margin-top:7vh}
.dom-footer-bottom>span,.dom-footer-bottom>a{position:relative;overflow:hidden}
.dom-footer-bottom>span:first-child{grid-column:1/span 6}
.dom-footer-bottom>a{grid-column:7/span 3;padding-bottom:.1em;width:fit-content}
.dom-footer-bottom>span:nth-child(3){grid-column:10/span 2}
.homepage-dom-ready #back-top{display:flex;justify-content:center;align-items:center;position:absolute;right:0;bottom:-.5em;width:3.75em;height:3.75em;padding:0;border:0;background:#fff;color:#000;border-radius:100%;font-size:1em;overflow:hidden;text-shadow:none;box-shadow:none;transition:none}
.homepage-dom-ready #back-top svg{display:block;width:1.5em;height:1.5em;flex-shrink:0;pointer-events:none;transition:transform .4s var(--dom-editorial-ease)}
.homepage-dom-ready #back-top svg:last-child{position:absolute;transform:translate3d(0,3em,0)}
.homepage-dom-ready #back-top:focus-visible svg:first-child{transform:translate3d(0,-3em,0)}
.homepage-dom-ready #back-top:focus-visible svg:last-child{transform:translateZ(0)}
@media(hover:hover){.dom-footer-bottom>a:hover:before{transform:scale3d(1,1,1)}.homepage-dom-ready #back-top:hover{background:#fff;transform:none}.homepage-dom-ready #back-top:hover svg:first-child{transform:translate3d(0,-3em,0)}.homepage-dom-ready #back-top:hover svg:last-child{transform:translateZ(0)}}
/* The desktop footer becomes glass only while the journey canvas supplies
 * its live backdrop. Other presentations retain the original white footer. */
@media(min-width:813px){
  .homepage-dom-ready[data-footer-backdrop=true]:not(.dom-motion-reduced) .footer-section{
    z-index:3;background:rgba(24,28,40,.22);color:#fff;
    -webkit-backdrop-filter:blur(6px) saturate(1.1);backdrop-filter:blur(6px) saturate(1.1);
    box-shadow:inset 0 1px rgba(255,255,255,.18);text-shadow:0 1px 8px rgba(0,0,0,.55);
  }
  .homepage-dom-ready[data-footer-backdrop=true]:not(.dom-motion-reduced) .dom-footer-bottom>a::before{background:currentColor}
  .homepage-dom-ready[data-footer-backdrop=true]:not(.dom-motion-reduced) #back-top{
    background:#fff;color:#000;box-shadow:none;
  }
  .homepage-dom-ready[data-footer-backdrop=true]:not(.dom-motion-reduced) #back-top:hover{background:#fff}
  .homepage-dom-ready[data-footer-backdrop=true]:not(.dom-motion-reduced) .footer-section :is(a,button,input):focus-visible{outline-color:rgba(255,255,255,.85)}
}
@media(min-aspect-ratio:21/9){.homepage-dom-ready .contact-section .dom-contact-title{font-size:6.7vw}.homepage-dom-ready .hero-title{grid-column:4/span 3;font-size:1.7vw}}
@media(max-width:1000px){.dom-footer-middle{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:5em}.dom-footer-contact{grid-row:2;grid-column:1/span 6}.dom-footer-enquires{grid-column:1/span 3}.dom-footer-newsletter{grid-column:1/span 6}.homepage-dom-ready .dom-footer-bottom{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:2em}.dom-footer-bottom>span:first-child{grid-row:3}.dom-footer-bottom>a{grid-column:1/span 6}.dom-footer-bottom>span:nth-child(3){display:block;grid-column:1/span 6}.homepage-dom-ready #back-top{bottom:0}}
@media(max-width:812px){.homepage-dom-ready .hero-title{grid-column:1/-1;font-size:6vw}.homepage-dom-ready .hero-visual{margin-top:0}.dom-menu-backdrop{inset:0;background:#f0f1fa}.menu-open .dom-menu-backdrop{opacity:1}.homepage-dom-ready .menu-overlay{width:calc(100vw - var(--pad)*2);top:58px;max-height:calc(100svh - 112px)}.homepage-dom-ready .menu-talk{display:flex}.homepage-dom-ready .header-actions>.pill.dark{display:none}.homepage-dom-ready .menu-button{width:44px;padding:0;display:flex;justify-content:center}.dom-menu-label-wrap{display:none}.homepage-dom-ready .two-dots{font-size:24px;margin:0}.homepage-dom-ready .intro-title>.intro-first{padding-left:0}.homepage-dom-ready .footer-section{padding-bottom:28px}.dom-footer-top{min-height:12vh}.dom-footer-newsletter h3{font-size:3.375em}.dom-footer-bottom>span:first-child{font-size:.8em}.dom-footer-bottom>span:nth-child(3){font-size:.8em}}
@media(max-width:560px){.dom-contact-content{top:40%}.dom-contact-subtitle{font-size:1.2em;width:55%;margin:auto;text-align:center}.homepage-dom-ready .contact-section .dom-contact-title{width:100%;font-size:19.5vw}.dom-contact-crosses{width:calc(100% - var(--pad)*2);left:var(--pad)}.dom-decoration-top{left:.35em;width:calc(100% - .65em)}.dom-decoration-left{left:.55em}.dom-decoration-right{left:2.1em}.dom-contact-continue{bottom:7vh}.homepage-dom-ready .footer-section{font-size:14px}.dom-footer-contact{font-size:1.2em}.dom-footer-newsletter h3{font-size:3em}}
@media(max-width:380px){.homepage-dom-ready .footer-section{font-size:12px}.homepage-dom-ready .hero-title{font-size:7vw}}
.dom-motion-reduced .dom-word,.dom-motion-reduced .dom-char{transform:none!important;opacity:1!important}
.dom-motion-reduced .dom-contact-section,.dom-motion-reduced .contact-section{height:100svh}
.dom-motion-reduced .dom-continue-arrow>span,.dom-motion-reduced .dom-continue-text>span{animation:none}
@media(max-width:812px){:root.homepage-dom-ready{--pad:25px;--gap:4vw;--radius:10px}}
@media(max-width:400px){:root.homepage-dom-ready{--pad:15px}}

/* Personal footer: information sits above the centre of the live scene. */
.homepage-dom-ready .footer-section.footer-personal{
  display:grid;grid-template-rows:clamp(140px,29vh,460px) auto minmax(60px,1fr) auto;
  min-height:100svh;padding:0 var(--pad) 40px;
}
.footer-personal .dom-footer-middle{
  grid-row:2;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:0;
  min-height:0;align-items:center;
}
.footer-personal .footer-profile{grid-column:1/span 5;min-width:0}
.footer-personal .footer-personal-contact{grid-column:9/span 4;min-width:0;padding-top:0}
.footer-personal [data-footer-group]{font-size:clamp(17px,1.1vw,24px);line-height:1.5;will-change:transform}
.footer-personal [data-footer-line]{display:block;overflow:hidden;padding-block:.04em}
.footer-personal .footer-personal-name{
  font-size:clamp(44px,3.5vw,72px);line-height:1.18;font-weight:500;
  letter-spacing:.07em;margin:0 0 .42em;
}
.footer-personal .footer-personal-details{margin:0;user-select:text;-webkit-user-select:text}
.footer-personal .footer-personal-details dt,.footer-personal .footer-personal-details dd{margin:0;min-width:0}
.footer-personal .footer-education{font-size:clamp(15px,.9em,20px);line-height:1.65;opacity:.9;user-select:text;-webkit-user-select:text}
.footer-personal .footer-education p{margin:0}
.footer-personal .footer-education p+p{margin-top:.5em}
.footer-personal .footer-personal-details dt{opacity:.72;font-weight:400}
.footer-personal .footer-detail-note{font-size:.88em;opacity:.78}
.footer-personal .footer-contact-row+.footer-contact-row{margin-top:1.6em}
.footer-personal .footer-contact-row dt{font-size:.75em;letter-spacing:.08em;margin-bottom:.4em}
.footer-personal .footer-contact-value{
  font-size:1.2em;line-height:1.4;width:fit-content;max-width:100%;
}
.homepage-dom-ready .footer-personal .dom-footer-bottom{grid-row:4;margin-top:0;min-height:3.75em}
.homepage-dom-ready .footer-personal #back-top{bottom:0}
@media(min-width:813px) and (max-height:700px){
  .homepage-dom-ready .footer-section.footer-personal{
    grid-template-rows:clamp(110px,24vh,145px) auto minmax(12px,1fr) auto;padding-bottom:24px;
  }
  .footer-personal [data-footer-group]{font-size:16px}
  .footer-personal .footer-personal-name{font-size:clamp(36px,2.7vw,52px);margin-bottom:.4em}
  .footer-personal .footer-contact-row+.footer-contact-row{margin-top:1em}
}
@media(max-width:812px){
  .homepage-dom-ready .footer-section.footer-personal{
    grid-template-rows:clamp(132px,18vh,180px) auto minmax(32px,1fr) auto;padding-bottom:28px;
  }
  .footer-personal .dom-footer-middle{grid-template-columns:minmax(0,1fr);row-gap:2rem;align-items:start}
  .footer-personal .footer-profile,.footer-personal .footer-personal-contact{grid-column:1;grid-row:auto}
  .footer-personal [data-footer-group]{font-size:16px}
  .footer-personal .footer-personal-name{font-size:40px;margin-bottom:.6em}
  .footer-personal .footer-contact-value{font-size:1.125em}
  .footer-personal .footer-contact-row+.footer-contact-row{margin-top:1.2em}
}

@media(max-width:812px) and (max-height:700px){
  .homepage-dom-ready .footer-section.footer-personal{
    grid-template-rows:clamp(84px,20vh,132px) auto minmax(12px,1fr) auto;padding-bottom:20px;
  }
  .footer-personal .dom-footer-middle{row-gap:1.5rem}
  .footer-personal [data-footer-group]{font-size:15px}
  .footer-personal .footer-personal-name{font-size:36px}
  .footer-personal .footer-contact-row{display:grid;grid-template-columns:2em minmax(0,1fr);gap:1.2em;align-items:baseline}
  .footer-personal .footer-contact-row dt{margin-bottom:0}
  .footer-personal .footer-contact-row+.footer-contact-row{margin-top:.7em}
  .homepage-dom-ready .footer-personal .dom-footer-bottom{min-height:3em}
}
@media(min-width:600px) and (max-width:812px) and (max-height:700px){
  .footer-personal .dom-footer-middle{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
  .footer-personal .footer-profile{grid-column:1}
  .footer-personal .footer-personal-contact{grid-column:2}
}
