/* ============================================================
   EXECUPROSE — The Art of Distinction
   Premium Design System v3 — Full Rewrite + Testimonials Fix
   Brand colors extracted from execuprose.art live site
   ============================================================ */

/* ---- Variables ---- */
:root {
  --gold: #CB9140;
  --gold-light: #E6C229;
  --gold-soft: #c9a96e;
  --gold-dim: rgba(201,169,110,0.18);
  --grey: #999999;
  --text: #4D5359;
  --dark: #222222;
  --dark-mid: #181818;
  --dark-text: #b0b0c0;
  --white: #FFFFFF;
  --bg: #FFFFFF;
  --font: 'Montserrat', sans-serif;
  --font-alt: 'Montserrat Alternates', sans-serif;
  --font-2: 'Poppins', sans-serif;
  --max: 1140px;
  --hh: 78px;
  --r: 10px;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ---- Reset ---- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--hh);-webkit-font-smoothing:antialiased}
body{font-family:var(--font);font-size:1rem;line-height:1.65;color:var(--text);background:var(--bg);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
strong{font-weight:700}
h1,h2,h3,h4{font-family:var(--font);font-weight:700;line-height:1.15}
::selection{background:var(--gold);color:#fff}
/* ============================================================
   PASSWORD GATE — Under Construction
   ============================================================ */
.gate{
  position:fixed;inset:0;z-index:999999;
  background:linear-gradient(135deg,#121212 0%,#1a1a1a 40%,#222222 70%,#121212 100%);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  /* Hidden by default once unlocked */
  transition:opacity 0.9s cubic-bezier(0.77,0,0.175,1),
             transform 0.9s cubic-bezier(0.77,0,0.175,1),
             visibility 0.9s;
}
.gate.unlocked{
  opacity:0;transform:scale(1.04);visibility:hidden;pointer-events:none;
}

/* Animated particle dots in background */
.gate__particles{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;
}
.gate-particle{
  position:absolute;border-radius:50%;
  background:var(--gold);opacity:0;
  animation:gateParticleFly 6s ease-in-out infinite;
}
@keyframes gateParticleFly{
  0%{opacity:0;transform:translateY(0) scale(0)}
  20%{opacity:0.4}
  80%{opacity:0.15}
  100%{opacity:0;transform:translateY(-120px) scale(0.5)}
}



/* The card */
.gate__card{
  position:relative;z-index:1;
  background:rgba(255,255,255,0.04);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(203,145,64,0.2);
  border-radius:20px;
  padding:52px 48px 44px;
  max-width:460px;width:100%;
  text-align:center;
  box-shadow:0 32px 80px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.04) inset;
  animation:gateCardIn 0.9s var(--ease) both;
}
.gate__card::before{
  content:'';position:absolute;top:0;left:40px;right:40px;height:1px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),transparent);
  opacity:0.5;
}
@keyframes gateCardIn{
  from{opacity:0;transform:translateY(32px) scale(0.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Logo row */
.gate__logo{
  display:flex;align-items:center;justify-content:center;
  gap:10px;margin-bottom:28px;
}
.gate__bird{
  width:48px;height:48px;object-fit:contain;
  animation:birdFloat 3.6s ease-in-out infinite;
  filter:drop-shadow(0 0 10px rgba(203,145,64,0.5));
}
.gate__wordmark{
  height:18px;width:auto;opacity:0.92;
}

/* "Under Construction" badge */
.gate__badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(203,145,64,0.12);border:1px solid rgba(203,145,64,0.3);
  border-radius:50px;padding:7px 18px;
  font-family:var(--font-alt);font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--gold-light);
  margin-bottom:26px;
}
.gate__badge-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--gold-light);
  box-shadow:0 0 8px rgba(230,194,41,0.7);
  animation:badgePulse 1.6s ease-in-out infinite;
  flex-shrink:0;
}
@keyframes badgePulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.4;transform:scale(0.7)}
}

/* Headline */
.gate__title{
  font-size:clamp(2rem,6vw,2.8rem);font-weight:800;
  color:#fff;line-height:1.1;
  letter-spacing:-0.02em;margin-bottom:16px;
}
.gate__title-accent{
  color:var(--gold);
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

.gate__sub{
  font-size:0.95rem;color:rgba(255,255,255,0.45);
  line-height:1.7;margin-bottom:36px;
  font-family:var(--font-alt);
}

/* Form */
.gate__form{width:100%}
.gate__input-wrap{
  display:flex;align-items:center;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(203,145,64,0.25);
  border-radius:12px;
  padding:0 6px 0 18px;
  gap:10px;
  transition:border-color 0.25s,box-shadow 0.25s;
  margin-bottom:14px;
}
.gate__input-wrap:focus-within{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(203,145,64,0.15);
}
.gate__input-wrap.shake{
  animation:gateShake 0.5s var(--ease);
  border-color:#e05555;box-shadow:0 0 0 3px rgba(224,85,85,0.15);
}
@keyframes gateShake{
  0%,100%{transform:translateX(0)}
  15%{transform:translateX(-8px)}
  30%{transform:translateX(8px)}
  45%{transform:translateX(-6px)}
  60%{transform:translateX(6px)}
  75%{transform:translateX(-3px)}
  90%{transform:translateX(3px)}
}
.gate__lock-icon{
  width:18px;height:18px;flex-shrink:0;
  color:rgba(255,255,255,0.3);
  transition:color 0.25s;
}
.gate__input-wrap:focus-within .gate__lock-icon{color:var(--gold)}
.gate__input{
  flex:1;background:transparent;border:none;outline:none;
  color:#fff;font-size:1rem;font-family:var(--font);
  padding:16px 0;letter-spacing:0.04em;
}
.gate__input::placeholder{color:rgba(255,255,255,0.25)}
.gate__submit{
  width:44px;height:44px;border-radius:10px;flex-shrink:0;
  background:var(--gold);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.25s,transform 0.2s;
}
.gate__submit:hover{background:var(--gold-light);transform:scale(1.06)}
.gate__submit svg{width:18px;height:18px;stroke:rgba(0,0,0,0.8)}

.gate__error{
  font-size:0.82rem;color:#e07070;
  font-family:var(--font-alt);letter-spacing:0.03em;
  margin-top:-4px;margin-bottom:0;text-align:center;
}

/* Footer */
.gate__footer{
  margin-top:36px;font-size:0.72rem;
  color:rgba(255,255,255,0.2);
  letter-spacing:0.12em;text-transform:uppercase;
  font-family:var(--font-alt);
}

/* Mobile gate */
@media(max-width:480px){
  .gate__card{padding:36px 24px 32px}
  .gate__title{font-size:2rem}
  .gate__bird{width:36px;height:36px}
  .gate__wordmark{height:28px}
}

/* ============================================================
   PAGE LOADER
   ============================================================ */
.page-loader{
  position:fixed;inset:0;background:var(--dark);
  z-index:99999;display:flex;align-items:center;justify-content:center;
  transition:opacity 0.7s var(--ease),visibility 0.7s;
}
.page-loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader__inner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}
.loader__logo{width:72px;height:72px;object-fit:contain;animation:loaderPulse 1.2s ease-in-out infinite}
@keyframes loaderPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.9)}}
.loader__bar{width:220px;height:2px;background:rgba(255,255,255,0.12);border-radius:2px;overflow:hidden}
.loader__fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:2px;transition:width 0.05s linear}
.loader__text{font-family:var(--font-alt);font-size:0.75rem;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.45)}

/* ============================================================
   CUSTOM CURSOR (desktop only)
   ============================================================ */
@media(pointer:fine){
  body{cursor:none}
  .cursor{
    position:fixed;width:10px;height:10px;background:var(--gold);border-radius:50%;
    pointer-events:none;z-index:99998;transform:translate(-50%,-50%);
    transition:transform 0.1s,opacity 0.2s,width 0.3s,height 0.3s;
    mix-blend-mode:normal;
  }
  .cursor-follower{
    position:fixed;width:36px;height:36px;border:1.5px solid var(--gold-soft);border-radius:50%;
    pointer-events:none;z-index:99997;transform:translate(-50%,-50%);
    transition:transform 0.18s var(--ease),opacity 0.2s,width 0.35s,height 0.35s,border-color 0.3s;
    opacity:0.6;
  }
  .cursor.hovered{width:6px;height:6px}
  .cursor-follower.hovered{width:56px;height:56px;border-color:var(--gold);opacity:0.3}
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--hh);
  background:rgba(255,255,255,0.88);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-bottom:1px solid transparent;
  transition:border-color 0.3s,box-shadow 0.3s,background 0.3s;
}
.site-header.scrolled{
  border-bottom-color:rgba(0,0,0,0.07);
  box-shadow:0 4px 30px rgba(0,0,0,0.07);
}
.header-inner{
  max-width:var(--max);margin:0 auto;padding:0 28px;
  display:flex;align-items:center;justify-content:space-between;height:100%;
}
/* Animated bird logo */
.header-logo{text-decoration:none}
.logo-wrap{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
}
.logo-text__img{height:17px;width:auto;transition:opacity 0.3s}

/* Bird container */
.logo-bird{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.logo-bird__img{
  width:36px;height:36px;
  object-fit:contain;
  /* Continuous gentle float */
  animation:birdFloat 3.6s ease-in-out infinite;
  transform-origin:center bottom;
  display:block;
  filter:drop-shadow(0 2px 6px rgba(203,145,64,0.25));
  transition:filter 0.3s;
}
/* Hover: take flight */
.header-logo:hover .logo-bird__img{
  animation:birdFly 0.7s var(--ease) forwards;
  filter:drop-shadow(0 4px 14px rgba(203,145,64,0.55));
}

@keyframes birdFloat{
  0%,100%{transform:translateY(0) rotate(-3deg) scaleX(1)}
  25%{transform:translateY(-5px) rotate(1deg) scaleX(1.04)}
  50%{transform:translateY(-8px) rotate(3deg) scaleX(0.97)}
  75%{transform:translateY(-4px) rotate(-1deg) scaleX(1.03)}
}
@keyframes birdFly{
  0%{transform:translateY(0) rotate(-3deg) scale(1)}
  30%{transform:translateY(-14px) rotate(8deg) scale(1.12)}
  60%{transform:translateY(-6px) rotate(-4deg) scale(1.08)}
  100%{transform:translateY(-10px) rotate(5deg) scale(1.1)}
}

/* Gold sparkle trail behind the bird */
.logo-bird__trail{
  position:absolute;
  width:5px;height:5px;
  border-radius:50%;
  background:var(--gold-light);
  opacity:0;
  pointer-events:none;
  animation:trailFade 3.6s ease-in-out infinite;
}
.logo-bird__trail--2{
  width:4px;height:4px;
  background:var(--gold);
  animation-delay:0.4s;
  animation-duration:3.6s;
}
.logo-bird__trail--3{
  width:3px;height:3px;
  background:rgba(230,194,41,0.7);
  animation-delay:0.8s;
  animation-duration:3.6s;
}
@keyframes trailFade{
  0%{opacity:0;transform:translate(4px,2px) scale(1)}
  25%{opacity:0.7;transform:translate(8px,6px) scale(0.8)}
  50%{opacity:0.4;transform:translate(12px,10px) scale(0.5)}
  75%{opacity:0.1;transform:translate(14px,13px) scale(0.3)}
  100%{opacity:0;transform:translate(16px,16px) scale(0)}
}
/* On hover trails fly along with the bird */
.header-logo:hover .logo-bird__trail{animation:trailHover 0.7s var(--ease) forwards}
@keyframes trailHover{
  0%{opacity:0;transform:translate(0,0)}
  40%{opacity:0.9;transform:translate(10px,-8px) scale(0.7)}
  100%{opacity:0;transform:translate(20px,-18px) scale(0)}
}

.header-nav{display:flex;align-items:center}
.nav-menu{display:flex;align-items:center;gap:4px}
.nav-link{
  font-size:0.83rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--text);padding:9px 14px;border-radius:6px;
  transition:color 0.25s,background 0.25s;
}
.nav-link:hover{color:var(--gold);background:rgba(203,145,64,0.07)}
.nav-link--cta{
  color:#fff;background:var(--gold);border:1.5px solid var(--gold);
  padding:9px 20px;border-radius:6px;font-weight:700;
  transition:background 0.25s,color 0.25s,box-shadow 0.25s,transform 0.2s;
}
.nav-link--cta:hover{
  background:transparent;color:var(--gold);
  box-shadow:0 6px 22px rgba(203,145,64,0.28);transform:translateY(-1px);
}

/* Hamburger */
.nav-toggle{
  display:none;flex-direction:column;gap:6px;
  background:none;border:none;cursor:none;padding:6px;z-index:1001;
}
.nav-toggle span{
  display:block;width:24px;height:2px;background:var(--text);border-radius:2px;
  transition:transform 0.35s var(--ease),opacity 0.3s;transform-origin:center;
}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Mobile drawer */
.nav-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:998;
  opacity:0;pointer-events:none;transition:opacity 0.35s;
}
.nav-overlay.active{opacity:1;pointer-events:all}
body.nav-open{overflow:hidden}

/* ============================================================
   SCROLL REVEAL ANIMATIONS
   ============================================================ */
.reveal-up,.reveal-left,.reveal-right,.reveal-split{
  opacity:0;transition:opacity 0.85s var(--ease),transform 0.85s var(--ease);
}
.reveal-up{transform:translateY(50px)}
.reveal-left{transform:translateX(-60px)}
.reveal-right{transform:translateX(60px)}
.reveal-split{transform:translateY(30px)}
.reveal-up.in,.reveal-left.in,.reveal-right.in,.reveal-split.in{
  opacity:1;transform:none;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font);font-size:0.9rem;font-weight:700;letter-spacing:0.05em;
  text-transform:uppercase;padding:15px 34px;border-radius:4px;border:2px solid transparent;
  cursor:none;transition:all 0.28s var(--ease);position:relative;overflow:hidden;
}
.btn::after{
  content:'';position:absolute;inset:0;background:rgba(255,255,255,0.12);
  transform:scaleX(0);transform-origin:left;transition:transform 0.35s var(--ease);
}
.btn:hover::after{transform:scaleX(1)}
.btn--primary{background:var(--gold);border-color:var(--gold);color:#fff}
.btn--primary:hover{background:var(--gold-light);border-color:var(--gold-light);transform:translateY(-3px);box-shadow:0 10px 30px rgba(203,145,64,0.38)}
.btn--ghost,.btn--outline{background:transparent;border-color:var(--gold);color:var(--gold)}
.btn--ghost:hover,.btn--outline:hover{background:var(--gold);color:#fff;transform:translateY(-3px);box-shadow:0 10px 30px rgba(203,145,64,0.38)}
.btn-arrow{width:18px;height:18px;flex-shrink:0;transition:transform 0.3s}
.btn:hover .btn-arrow{transform:translateX(4px)}

/* ============================================================
   SECTION SHARED
   ============================================================ */
#main-content{
  display:flex;
  flex-direction:column;
}
.hero{order:1}
.marquee-strip{order:2}
.competence{order:3}
.offerings{order:4}
.philosophy{order:5}
.about{order:6}
.testimonials{order:7}
.poetry{order:8}
.contact{order:9}
.section{position:relative;z-index:0;overflow:hidden}
.container{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 28px}
.kintsugi-thread{
  position:absolute;
  pointer-events:none;
  color:var(--gold);
  z-index:1;
}
.kintsugi-thread svg{width:100%;height:100%;display:block;overflow:visible}
.kintsugi-thread path{
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:920;
  stroke-dashoffset:920;
  opacity:0.58;
  filter:drop-shadow(0 0 7px rgba(230,194,41,0.35));
}
.kintsugi-thread path:nth-child(2){
  stroke-width:1.15;
  opacity:0.34;
}
.kintsugi-thread.in path{
  animation:kintsugiDraw 3.8s 0.2s var(--ease) forwards;
}
.kintsugi-thread.in path:nth-child(2){
  animation-delay:0.85s;
}
.kintsugi-thread--hero{
  z-index:1;
  top:12%;
  right:-4vw;
  width:min(58vw,720px);
  height:72%;
}
.kintsugi-thread--thesis{
  top:9%;
  left:-7vw;
  width:min(48vw,560px);
  height:70%;
  opacity:0.32;
}
.kintsugi-thread--philosophy{
  top:6%;
  right:-8vw;
  width:min(44vw,560px);
  height:78%;
  opacity:0.3;
}
.kintsugi-thread--contact{
  left:-5vw;
  bottom:4%;
  width:min(46vw,560px);
  height:62%;
  opacity:0.34;
}
@keyframes kintsugiDraw{
  to{stroke-dashoffset:0}
}
.section__eyebrow{
  font-family:var(--font-alt);font-size:0.75rem;font-weight:500;
  letter-spacing:4px;text-transform:uppercase;color:var(--gold);
  margin-bottom:14px;display:block;
}
.section__eyebrow--light{color:rgba(230,194,41,0.9)}
.section__title{
  font-size:clamp(2.1rem,4.5vw,3.2rem);font-weight:800;color:var(--gold);
  margin-bottom:18px;
}
.section__title--left{text-align:left}
.section__title--light{color:#fff}
.section__subtitle{
  font-size:1rem;line-height:1.7;color:var(--text);
  max-width:680px;margin:0 auto;
}
.section__header{text-align:center;margin-bottom:60px}

/* ============================================================
   HERO — Split layout
   ============================================================ */
.hero{
  min-height:100vh;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
.hero__bg-wrap{position:absolute;inset:0;z-index:0}
.hero__bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  transform:scale(1.08);will-change:transform;
}
.hero__overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(110deg,rgba(255,255,255,0.97) 0%,rgba(255,255,255,0.86) 52%,rgba(255,255,255,0.34) 100%),
    radial-gradient(circle at 78% 34%,rgba(230,194,41,0.18),transparent 30%);
}


/* Inner two-column grid */
.hero__inner{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:48px;
  min-height:100vh;
  padding-top:var(--hh);
  padding-bottom:60px;
}

/* LEFT: text column */
.hero__content{
  display:flex;flex-direction:column;align-items:flex-start;
  justify-content:center;
  padding:40px 0 40px;
}
.hero__eyebrow{
  display:flex;align-items:center;gap:14px;
  font-family:var(--font-alt);font-size:0.7rem;letter-spacing:4px;
  text-transform:uppercase;color:var(--text);margin-bottom:24px;
}
.eyebrow-line{flex:0 0 36px;height:1px;background:var(--gold-soft);opacity:0.6}
.eyebrow-text{white-space:nowrap}

.hero__title{
  font-size:clamp(2.6rem,6vw,5rem);font-weight:800;color:var(--dark);
  line-height:1.06;margin-bottom:24px;letter-spacing:-0.02em;
}
.hero__title-accent{color:var(--gold);display:inline-block;position:relative}
.hero__title-accent::after{
  content:'';position:absolute;bottom:4px;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:2px;
  transform:scaleX(0);transform-origin:left;transition:transform 0.7s 1.4s var(--ease);
}
.hero__title-accent.underlined::after{transform:scaleX(1)}

.hero__quote{
  font-size:clamp(0.95rem,1.8vw,1.12rem);color:var(--text);
  line-height:1.78;margin-bottom:36px;
}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}

/* Quiet discipline strip — inline under CTA */
.hero__stats{
  display:flex;align-items:center;gap:0;
  background:rgba(255,255,255,0.54);backdrop-filter:blur(14px);
  border:1px solid rgba(203,145,64,0.16);border-radius:var(--r);
  padding:14px 20px;
  box-shadow:0 8px 28px rgba(70,54,29,0.05);
  width:100%;max-width:520px;
}
.hero-stat{text-align:center;flex:1;padding:0 12px}
.hero-stat__row{display:none}
.hero-stat__num{font-size:2rem;font-weight:800;color:var(--gold);line-height:1}
.hero-stat__unit{font-size:1.2rem;font-weight:700;color:var(--gold);line-height:1}
.hero-stat__label{
  display:block;font-size:0.66rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(77,83,89,0.74);margin-top:0;
}
.hero-stat__divider{width:1px;height:28px;background:rgba(203,145,64,0.18);flex-shrink:0}

/* RIGHT: Portrait */
.hero__portrait{
  display:flex;align-items:center;justify-content:center;
  padding:40px 0;
}
.portrait__frame{
  position:relative;
  width:100%;
  max-width:400px;
  border-radius:var(--r);
  overflow:visible;
}

/* Gold corner brackets */
.portrait__corner{
  position:absolute;width:32px;height:32px;z-index:3;
  border-color:var(--gold);border-style:solid;
}
.portrait__corner--tl{top:-8px;left:-8px;border-width:2px 0 0 2px;border-radius:4px 0 0 0;animation:cornerDraw 0.8s 1.6s var(--ease) both}
.portrait__corner--tr{top:-8px;right:-8px;border-width:2px 2px 0 0;border-radius:0 4px 0 0;animation:cornerDraw 0.8s 1.8s var(--ease) both}
.portrait__corner--bl{bottom:-8px;left:-8px;border-width:0 0 2px 2px;border-radius:0 0 0 4px;animation:cornerDraw 0.8s 2.0s var(--ease) both}
.portrait__corner--br{bottom:-8px;right:-8px;border-width:0 2px 2px 0;border-radius:0 0 4px 0;animation:cornerDraw 0.8s 2.2s var(--ease) both}
@keyframes cornerDraw{from{opacity:0;transform:scale(0.6)}to{opacity:1;transform:scale(1)}}

.portrait__img{
  width:100%;height:auto;
  border-radius:var(--r);
  display:block;
  object-fit:cover;
  object-position:50% 15%;  /* Show upper face, not just nose */
  aspect-ratio:2/3;
  box-shadow:0 24px 80px rgba(0,0,0,0.18),0 8px 24px rgba(203,145,64,0.12);
  transition:transform 6s var(--ease);
}
.portrait__frame:hover .portrait__img{transform:scale(1.03)}

/* Gold ambient glow behind portrait */
.portrait__glow{
  position:absolute;inset:-30px;z-index:-1;border-radius:var(--r);
  background:radial-gradient(ellipse at 50% 60%,rgba(203,145,64,0.18) 0%,transparent 70%);
  animation:glowPulse 4s ease-in-out infinite;
}
@keyframes glowPulse{0%,100%{opacity:0.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}

/* Name badge at bottom of portrait */
.portrait__badge{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  background:rgba(26,26,46,0.88);backdrop-filter:blur(14px);
  border:1px solid rgba(203,145,64,0.3);border-radius:50px;
  display:flex;align-items:center;gap:12px;padding:12px 20px;
  box-shadow:0 8px 32px rgba(0,0,0,0.3);
  white-space:nowrap;z-index:4;
  animation:badgeRise 0.8s 2.4s var(--ease) both;
}
@keyframes badgeRise{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.portrait__badge img{width:30px;height:30px;object-fit:contain;border-radius:6px;flex-shrink:0}
.portrait__badge-text strong{
  display:block;font-size:0.9rem;font-weight:700;
  color:#ffffff!important;   /* Force white — never inherit dark bg */
  line-height:1.2;
}
.portrait__badge-text span{
  display:block;font-size:0.72rem;
  color:rgba(203,145,64,0.9)!important;
  font-family:var(--font-alt);letter-spacing:0.04em;
}

/* Scroll indicator */
.hero__scroll-indicator{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;z-index:3;
}
.scroll-label{font-size:0.62rem;letter-spacing:3px;text-transform:uppercase;color:var(--grey);opacity:0.6}
.scroll-line{width:1px;height:44px;background:rgba(0,0,0,0.1);border-radius:2px;overflow:hidden;position:relative}
.scroll-dot{width:1px;height:14px;background:var(--gold);border-radius:2px;animation:scrollDot 2s ease-in-out infinite}
@keyframes scrollDot{0%{transform:translateY(-100%)}100%{transform:translateY(400%)}}

/* ============================================================
   MARQUEE STRIP
   ============================================================ */
.marquee-strip{
  background:var(--dark);color:var(--gold-soft);
  padding:14px 0;overflow:hidden;white-space:nowrap;
  border-top:1px solid rgba(201,169,110,0.12);
  border-bottom:1px solid rgba(201,169,110,0.12);
}
.marquee-track{
  display:inline-flex;gap:32px;
  animation:marqueeScroll 30s linear infinite;
  font-size:0.72rem;letter-spacing:3.5px;text-transform:uppercase;
  font-family:var(--font-alt);
}
.marquee-dot{color:var(--gold);font-size:0.55rem;opacity:0.7}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============================================================
   POETRY SECTION
   ============================================================ */
.poetry{
  padding:100px 0;
  background:linear-gradient(160deg,#1a1a1a 0%,#151515 50%,#101010 100%);
  position:relative;overflow:hidden;
}
.poetry::before{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23cb9140' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.poetry__bg{display:none}

.poetry__header{text-align:center;margin-bottom:56px}
.poetry__title{
  font-size:clamp(2rem,4vw,3rem);font-weight:700;color:#fff;
  font-family:Georgia,serif;font-style:italic;letter-spacing:0.01em;
}

.poetry__flight{
  position:relative;
  max-width:720px;
  height:56px;
  margin:-28px auto 44px;
  pointer-events:none;
}
.poetry__flight-line{
  position:absolute;
  left:0;right:0;top:28px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(203,145,64,0.24),rgba(230,194,41,0.5),rgba(203,145,64,0.24),transparent);
}
.poetry__flight-line::before{
  content:'';
  position:absolute;
  inset:-18px 10% auto;
  height:40px;
  border-top:1px solid rgba(203,145,64,0.18);
  border-radius:50%;
  transform:translateY(10px);
}
.poetry__flight-bird{
  position:absolute;
  top:0;
  left:50%;
  width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,0.94);
  border:1px solid rgba(203,145,64,0.4);
  box-shadow:0 14px 36px rgba(0,0,0,0.28),0 0 28px rgba(203,145,64,0.2);
  transform:translateX(-50%);
  animation:poetryBirdHover 4.2s ease-in-out infinite;
}
.poetry__flight-bird::after{
  content:'';
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:1px solid rgba(230,194,41,0.18);
  animation:poetryBirdPulse 2.8s ease-in-out infinite;
}
.poetry__flight-bird img{
  width:34px;height:39px;object-fit:contain;
  filter:drop-shadow(0 3px 8px rgba(203,145,64,0.28));
}
.poetry__flight-spark{
  position:absolute;
  top:27px;
  width:5px;height:5px;border-radius:50%;
  background:var(--gold-light);
  box-shadow:0 0 12px rgba(230,194,41,0.75);
  opacity:0.75;
  animation:poetrySparkDrift 4.2s ease-in-out infinite;
}
.poetry__flight-spark--1{left:34%;animation-delay:0.2s}
.poetry__flight-spark--2{left:43%;width:4px;height:4px;animation-delay:0.8s}
.poetry__flight-spark--3{left:59%;width:3px;height:3px;animation-delay:1.4s}
@keyframes poetryBirdHover{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(-3deg)}
  50%{transform:translateX(-50%) translateY(-8px) rotate(5deg)}
}
@keyframes poetryBirdPulse{
  0%,100%{opacity:0.4;transform:scale(0.92)}
  50%{opacity:0.8;transform:scale(1.08)}
}
@keyframes poetrySparkDrift{
  0%,100%{opacity:0.15;transform:translate(0,0) scale(0.7)}
  40%{opacity:0.85;transform:translate(12px,-10px) scale(1)}
  75%{opacity:0.3;transform:translate(28px,-2px) scale(0.5)}
}

.poetry__showcase{
  display:grid;
  grid-template-columns:minmax(260px,0.78fr) minmax(0,1.22fr);
  gap:54px;
  align-items:center;
}
.poetry__portrait{
  margin:0;
  position:relative;
}
.poetry__portrait-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--r);
  aspect-ratio:4/5;
  background:#141414;
  border:1px solid rgba(203,145,64,0.26);
  box-shadow:0 28px 80px rgba(0,0,0,0.38),0 0 0 1px rgba(255,255,255,0.04) inset;
}
.poetry__portrait-frame::before{
  content:'';
  position:absolute;
  top:0;left:28px;right:28px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),transparent);
  z-index:2;
}
.poetry__portrait-frame::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(20,20,20,0) 48%,rgba(20,20,20,0.64) 100%);
  pointer-events:none;
  z-index:1;
}
.poetry__portrait-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:52% 18%;
  transform:scale(1.01);
  transition:transform 5s var(--ease),filter 0.5s var(--ease);
}
.poetry__portrait:hover .poetry__portrait-frame img{
  transform:scale(1.05);
  filter:saturate(1.08) contrast(1.04);
}
.poetry__bird-muse{
  position:absolute;
  top:18px;right:18px;
  width:62px;height:62px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(230,194,41,0.42);
  box-shadow:0 14px 34px rgba(0,0,0,0.34),0 0 26px rgba(203,145,64,0.2);
  z-index:4;
  transition:transform 0.45s var(--ease),box-shadow 0.45s var(--ease);
}
.poetry__bird-muse::before,
.poetry__bird-muse::after{
  content:'';
  position:absolute;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(230,194,41,0.55),transparent);
  height:1px;
  width:80px;
  right:42px;
  top:28px;
  transform:rotate(-16deg);
}
.poetry__bird-muse::after{
  width:54px;
  top:38px;
  opacity:0.55;
  transform:rotate(-4deg);
}
.poetry__bird-muse img{
  width:38px;height:44px;object-fit:contain;
  filter:drop-shadow(0 3px 8px rgba(203,145,64,0.28));
}
.poetry__portrait:hover .poetry__bird-muse{
  transform:translateY(-5px) rotate(4deg);
  box-shadow:0 18px 40px rgba(0,0,0,0.4),0 0 36px rgba(230,194,41,0.28);
}
.poetry__portrait-shine{
  position:absolute;
  inset:0;
  background:linear-gradient(125deg,transparent 0%,rgba(230,194,41,0.15) 38%,transparent 58%);
  mix-blend-mode:screen;
  opacity:0.75;
  pointer-events:none;
  z-index:3;
}
.poetry__caption{
  margin-top:18px;
  padding-left:18px;
  border-left:2px solid rgba(203,145,64,0.5);
}
.poetry__caption span{
  display:block;
  font-family:var(--font-alt);
  font-size:0.68rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:rgba(230,194,41,0.72);
  margin-bottom:6px;
}
.poetry__caption strong{
  display:block;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.1rem;
  line-height:1.35;
  color:rgba(255,255,255,0.84);
  font-style:italic;
  font-weight:400;
}
.poetry__content{min-width:0}
.poetry__signal{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:22px;
}
.poetry__signal span{
  border:1px solid rgba(203,145,64,0.22);
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.68);
  border-radius:999px;
  padding:8px 14px;
  font-family:var(--font-alt);
  font-size:0.68rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
}

/* Carousel viewport */
.poetry__carousel{position:relative;max-width:none;margin:0}
.poetry__track{
  overflow:hidden;
  border-radius:var(--r);
  position:relative;
}

/* Each slide */
.poetry__slide{
  display:none;
  padding:56px 64px 52px;
  background:rgba(255,255,255,0.04);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:var(--r);
  position:relative;
  animation:poetryFadeIn 0.7s var(--ease) both;
}
.poetry__slide.active{display:block}
@keyframes poetryFadeIn{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
.poetry__slide::before{
  content:'';position:absolute;top:0;left:40px;right:40px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),transparent);
  opacity:0.4;
}

/* Decorative ornament */
.poetry__ornament{
  font-size:2.8rem;color:var(--gold);opacity:0.5;
  line-height:1;margin-bottom:20px;display:block;
  font-family:Georgia,serif;
}

/* Verse text */
.poetry__verse{
  margin:0;
}
.poetry__verse p{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(1.05rem,2.2vw,1.22rem);
  line-height:1.85;
  color:rgba(255,255,255,0.88);
  font-style:italic;
  font-weight:400;
  margin-bottom:32px;
}

/* Attribution */
.poetry__attr{
  display:flex;flex-direction:column;gap:4px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.08);
}
.poetry__attr cite{
  font-style:normal;
  font-size:1rem;font-weight:700;
  color:var(--gold);letter-spacing:0.04em;
  font-family:var(--font);
}
.poetry__attr span{
  font-size:0.8rem;color:rgba(255,255,255,0.4);
  font-family:var(--font-alt);letter-spacing:0.03em;
}
.poetry__attr em{font-style:italic}

/* Controls */
.poetry__controls{
  display:flex;align-items:center;justify-content:center;
  gap:20px;margin-top:32px;
}
.poetry__btn{
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.14);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.6);cursor:pointer;
  transition:background 0.25s,color 0.25s,border-color 0.25s,transform 0.25s;
  flex-shrink:0;
}
.poetry__btn:hover{
  background:var(--gold);border-color:var(--gold);
  color:#fff;transform:scale(1.1);
}
.poetry__btn svg{width:18px;height:18px}

.poetry__dots{display:flex;gap:8px;align-items:center}
.poetry__dot{
  width:7px;height:7px;border-radius:50%;border:none;
  background:rgba(255,255,255,0.2);cursor:pointer;padding:0;
  transition:background 0.3s,width 0.35s,border-radius 0.35s;
}
.poetry__dot.active{background:var(--gold);width:24px;border-radius:4px}
.poetry__dot:hover:not(.active){background:rgba(255,255,255,0.45)}

/* ---- Shakespeare variant slides ---- */
.poetry__slide--shakespeare{
  background:rgba(203,145,64,0.07);
  border-color:rgba(203,145,64,0.18);
}
.poetry__slide--shakespeare::before{
  opacity:0.7;
}

/* Spinning star ornament for Shakespeare */
.poetry__ornament--quill{
  font-size:2.4rem;
  color:var(--gold-light);
  opacity:0.8;
  animation:quillSpin 8s linear infinite;
  display:inline-block;
}
@keyframes quillSpin{
  0%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(180deg) scale(1.15)}
  100%{transform:rotate(360deg) scale(1)}
}

/* Shakespeare byline label */
.poetry__shakespeare-label{
  font-family:Georgia,'Times New Roman',serif;
  font-size:0.72rem;
  letter-spacing:0.25em;
  text-transform:uppercase;
  color:rgba(203,145,64,0.6);
  margin-bottom:18px;
  margin-top:-8px;
  font-style:italic;
}

/* Shakespeare slides: verse gets a subtle left border accent */
.poetry__slide--shakespeare .poetry__verse p{
  border-left:2px solid rgba(203,145,64,0.25);
  padding-left:20px;
}
.poetry__slide--shakespeare .poetry__attr cite{
  font-size:1.05rem;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ============================================================
   COMPETENCE
   ============================================================ */
.competence{
  padding:110px 0;
  background:
    linear-gradient(135deg,rgba(255,255,255,0.94),rgba(246,241,232,0.94)),
    #f8f5ee;
}
.competence::before{
  content:'';
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23cb9140' stroke-opacity='0.045'%3E%3Cpath d='M0 40h80M40 0v80'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events:none;
}
.competence__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,0.95fr) minmax(320px,0.72fr);
  gap:64px;
  align-items:center;
}
.competence__inner{text-align:left;max-width:720px;margin:0}
.competence__title{
  font-size:clamp(1.85rem,4vw,3rem);font-weight:800;color:var(--gold);
  margin-bottom:32px;line-height:1.2;
}
.competence__text{font-size:1.05rem;line-height:1.8;color:var(--text)}
.competence__visual{
  margin:0;
  border-radius:var(--r);
  overflow:hidden;
  min-height:360px;
  position:relative;
  border:1px solid rgba(203,145,64,0.2);
  box-shadow:0 28px 70px rgba(46,37,25,0.16);
}
.competence__visual::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 46%,rgba(12,10,18,0.24));
  pointer-events:none;
}
.competence__visual img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  transition:transform 6s var(--ease);
}
.competence__visual:hover img{transform:scale(1.04)}

/* ============================================================
   OFFERINGS
   ============================================================ */
.offerings{padding:110px 0;position:relative}
.offerings__bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
}
.offerings__bg{filter:saturate(0.92)}
.offerings__overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,0.88) 0%,rgba(255,255,255,0.82) 100%),
    radial-gradient(circle at 50% 16%,rgba(230,194,41,0.14),transparent 38%);
}

.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:52px;
}
.service-card{
  background:#fff;border:1px solid rgba(203,145,64,0.14);border-radius:var(--r);
  padding:0 0 36px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform 0.4s var(--ease),box-shadow 0.4s var(--ease),border-color 0.3s;
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  transform:scaleX(0);transform-origin:left;transition:transform 0.4s var(--ease);
}
.service-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(0,0,0,0.12);border-color:var(--gold-soft)}
.service-card:hover::before{transform:scaleX(1)}

.service-card__visual{
  height:164px;
  margin:0 0 0;
  overflow:hidden;
  position:relative;
  background:#f4efe7;
}
.service-card__visual::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(10,8,18,0.02),rgba(10,8,18,0.24));
}
.service-card__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 5s var(--ease),filter 0.45s var(--ease);
}
.service-card:hover .service-card__visual img{
  transform:scale(1.06);
  filter:saturate(1.05) contrast(1.04);
}

.service-card__number{
  position:absolute;top:122px;right:24px;z-index:2;
  font-size:3.5rem;font-weight:800;color:rgba(203,145,64,0.06);
  line-height:1;letter-spacing:-2px;font-family:var(--font-alt);
  transition:color 0.4s;
}
.service-card:hover .service-card__number{color:rgba(203,145,64,0.12)}
.service-card__icon-wrap{
  width:56px;height:56px;background:var(--gold-dim);border-radius:12px;
  display:flex;align-items:center;justify-content:center;margin:-28px 32px 22px;
  position:relative;z-index:3;border:1px solid rgba(203,145,64,0.22);
  box-shadow:0 12px 32px rgba(0,0,0,0.12);
  transition:background 0.3s,transform 0.3s;
}
.service-card:hover .service-card__icon-wrap{background:var(--gold);transform:rotate(-6deg) scale(1.08)}
.service-card__icon{width:26px;height:26px;fill:var(--gold);transition:fill 0.3s}
.service-card:hover .service-card__icon{fill:#fff}

.service-card__title{
  font-family:var(--font-2);font-size:1.15rem;font-weight:700;color:var(--dark);
  margin:0 32px 14px;line-height:1.3;
}
.service-card:hover .service-card__title{color:var(--gold)}
.service-card__desc{
  font-size:0.94rem;line-height:1.8;color:#50575e;
  margin:0 32px 28px;flex:1;
}

.service-card__line{
  width:36px;height:2px;background:var(--gold-soft);margin:0 32px 20px;
  transition:width 0.4s var(--ease);
}
.service-card:hover .service-card__line{width:60px;background:var(--gold)}

.service-card__link{
  font-size:0.8rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--gold);transition:color 0.25s,letter-spacing 0.25s;
  margin:0 32px;
}
.service-card__link:hover{color:var(--gold-light);letter-spacing:0.1em}

.offerings__cta{text-align:center}

/* Typographic upgrades for Offerings section body text */
.offerings__subtitle {
  font-size: clamp(0.95rem, 2.5vw, 1.05rem);
  line-height: 1.85;
  color: #3e444a;
  max-width: 740px;
  margin: 0 auto;
}

.offerings__subtitle-lead {
  display: block;
  font-family: var(--font-2);
  font-size: clamp(1.15rem, 4vw, 1.25rem);
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 14px;
  letter-spacing: -0.015em;
  line-height: 1.45;
}

.offerings__highlight-text {
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: clamp(1.1rem, 4.5vw, 1.3rem);
  line-height: 1.6;
  color: var(--gold);
  margin: 36px auto 0;
  text-align: center;
  max-width: 620px;
  position: relative;
  padding-top: 26px;
}

.offerings__highlight-text::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* ============================================================
   PHILOSOPHY
   ============================================================ */
.philosophy{
  padding:110px 0;
  background:
    linear-gradient(180deg,#fff 0%,#f7f3ec 100%);
}
.philosophy__intro{
  font-size:1.1rem;color:var(--text);margin-top:8px;
}
.philosophy__intro em{color:var(--gold);font-weight:700;font-style:normal}

.philosophy__visuals{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,0.46fr);
  gap:24px;
  align-items:stretch;
  margin:-18px 0 52px;
}
.philosophy__image{
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:var(--r);
  min-height:230px;
  border:1px solid rgba(203,145,64,0.18);
  box-shadow:0 22px 60px rgba(35,28,20,0.12);
  background:#ede6da;
}
.philosophy__image::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(12,10,18,0.02),rgba(12,10,18,0.18));
  pointer-events:none;
}
.philosophy__image img{
  width:100%;
  height:100%;
  min-height:230px;
  object-fit:cover;
  transition:transform 6s var(--ease);
}
.philosophy__image:hover img{transform:scale(1.035)}
.philosophy__image--stones img{object-position:48% 50%}

.phil-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:52px;
}
.phil-card{
  background:var(--dark);border-radius:var(--r);padding:44px 28px 36px;
  text-align:center;position:relative;overflow:hidden;
  cursor:pointer;outline:none;
  transition:background 0.45s var(--ease),transform 0.3s var(--ease),box-shadow 0.35s;
  border:1px solid transparent;
}
.phil-card:focus-visible{box-shadow:0 0 0 3px rgba(201,169,110,0.5)}
.phil-card:hover,.phil-card.active{
  background:#fff;transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(0,0,0,0.13);
  border-color:rgba(203,145,64,0.2);
}

/* Big BG number */
.phil-card__bg-number{
  position:absolute;top:-18px;right:10px;
  font-size:6rem;font-weight:800;line-height:1;
  color:rgba(255,255,255,0.04);letter-spacing:-4px;font-family:var(--font-alt);
  transition:color 0.45s;pointer-events:none;
}
.phil-card:hover .phil-card__bg-number,.phil-card.active .phil-card__bg-number{
  color:rgba(203,145,64,0.06);
}

.phil-card__icon{
  width:48px;height:48px;margin:0 auto 16px;
  display:flex;align-items:center;justify-content:center;
}
.phil-card__icon svg{width:32px;height:32px;fill:rgba(255,255,255,0.45);transition:fill 0.4s,transform 0.4s}
.phil-card:hover .phil-card__icon svg,.phil-card.active .phil-card__icon svg{fill:var(--gold);transform:scale(1.15)}

.phil-card__accent{
  width:32px;height:2px;background:var(--gold-soft);
  margin:0 auto 16px;transition:width 0.4s var(--ease),background 0.4s;
}
.phil-card:hover .phil-card__accent,.phil-card.active .phil-card__accent{width:56px;background:var(--gold)}

.phil-card__title{
  font-size:0.88rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(255,255,255,0.8);margin-bottom:14px;line-height:1.35;
  transition:color 0.4s;
}
.phil-card:hover .phil-card__title,.phil-card.active .phil-card__title{color:var(--gold)}

.phil-card__desc{
  font-size:0.87rem;line-height:1.65;color:var(--dark-text);
  opacity:0;max-height:0;overflow:hidden;
  transition:opacity 0.45s var(--ease),max-height 0.5s var(--ease);
}
.phil-card:hover .phil-card__desc,.phil-card.active .phil-card__desc{
  opacity:1;max-height:200px;
}
.phil-card:hover .phil-card__desc,.phil-card.active .phil-card__desc{color:var(--text)}

.philosophy__cta{text-align:center}

/* ============================================================
   ABOUT
   ============================================================ */
.about{padding:110px 0;background:#fafafa}
.about__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;
}
.about__image-wrap{position:relative;align-self:stretch}
.about__catalyst-panel{
  position:relative;
  min-height:640px;
  height:100%;
  border-radius:var(--r) 0 0 var(--r);
  overflow:hidden;
  border:1px solid rgba(203,145,64,0.18);
  border-right:none;
  background:#181818;
  box-shadow:0 12px 48px rgba(0,0,0,0.08);
}
.about__catalyst-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  filter:saturate(0.9) contrast(1.05);
}
.about__catalyst-veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg,rgba(8,7,15,0.18),rgba(8,7,15,0.74)),
    radial-gradient(circle at 72% 20%,rgba(230,194,41,0.16),transparent 34%);
}
.about__seam-card,
.about__book-card{
  position:absolute;
  margin:0;
  overflow:hidden;
  border-radius:var(--r);
  border:1px solid rgba(230,194,41,0.24);
  box-shadow:0 22px 70px rgba(0,0,0,0.34);
  background:#181818;
}
.about__seam-card{
  right:34px;
  top:44px;
  width:min(44%,230px);
  aspect-ratio:3/4;
}
.about__book-card{
  left:34px;
  bottom:42px;
  width:min(58%,320px);
  aspect-ratio:16/10;
}
.about__seam-card img,
.about__book-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.about__seam-card img{object-position:53% 50%}
.about__book-card img{object-position:48% 50%}
.about__brand-chip{
  position:absolute;
  left:34px;
  top:38px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:300px;
  padding:13px 16px;
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(16px);
  border:1px solid rgba(203,145,64,0.28);
  border-radius:999px;
  box-shadow:0 16px 44px rgba(0,0,0,0.24);
}
.about__brand-chip img{
  width:42px;
  height:42px;
  object-fit:contain;
  flex-shrink:0;
}
.about__brand-chip span{
  display:block;
  font-family:var(--font-alt);
  font-size:0.64rem;
  letter-spacing:0.2em;
  color:var(--gold);
  text-transform:uppercase;
  line-height:1.1;
}
.about__brand-chip strong{
  display:block;
  font-size:0.9rem;
  line-height:1.2;
  color:var(--dark);
}
.about__brand-panel{
  position:relative;
  min-height:640px;
  height:100%;
  border-radius:var(--r) 0 0 var(--r);
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 34%,rgba(230,194,41,0.18),transparent 34%),
    linear-gradient(145deg,#181818 0%,#282828 55%,#121212 100%);
  border:1px solid rgba(203,145,64,0.18);
  border-right:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:56px 42px;
  box-shadow:0 12px 48px rgba(0,0,0,0.08);
}
.about__brand-panel::before{
  content:'';
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg width='72' height='72' viewBox='0 0 72 72' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23cb9140' stroke-opacity='0.055'%3E%3Cpath d='M36 9v54M9 36h54'/%3E%3Ccircle cx='36' cy='36' r='18'/%3E%3C/g%3E%3C/svg%3E");
}
.about__brand-panel::after{
  content:'';
  position:absolute;
  top:0;left:42px;right:42px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),transparent);
  opacity:0.65;
}
.about__brand-orbit{
  position:relative;
  width:min(78%,320px);
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:42px;
  z-index:1;
}
.about__brand-bird{
  width:156px;
  height:auto;
  object-fit:contain;
  border-radius:28px;
  background:rgba(255,255,255,0.94);
  padding:18px;
  box-shadow:0 28px 80px rgba(0,0,0,0.35),0 0 42px rgba(203,145,64,0.24);
  animation:aboutBirdFloat 4.4s ease-in-out infinite;
}
.about__orbit-ring{
  position:absolute;
  inset:0;
  border:1px solid rgba(203,145,64,0.2);
  border-radius:50%;
}
.about__orbit-ring--1{animation:aboutOrbitSpin 18s linear infinite}
.about__orbit-ring--2{
  inset:28px;
  border-color:rgba(230,194,41,0.18);
  animation:aboutOrbitSpin 14s linear infinite reverse;
}
.about__orbit-ring--1::before,
.about__orbit-ring--2::before{
  content:'';
  position:absolute;
  top:-4px;left:50%;
  width:8px;height:8px;border-radius:50%;
  background:var(--gold-light);
  box-shadow:0 0 16px rgba(230,194,41,0.8);
}
.about__orbit-spark{
  position:absolute;
  width:6px;height:6px;border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 14px rgba(203,145,64,0.7);
}
.about__orbit-spark--1{left:12%;top:34%;animation:poetrySparkDrift 4.6s ease-in-out infinite}
.about__orbit-spark--2{right:16%;bottom:28%;animation:poetrySparkDrift 5.2s ease-in-out infinite 0.8s}
.about__brand-mark{
  position:relative;
  z-index:1;
  text-align:center;
}
.about__brand-mark span{
  display:block;
  font-family:var(--font-alt);
  font-size:0.72rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:rgba(230,194,41,0.78);
  margin-bottom:10px;
}
.about__brand-mark strong{
  display:block;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(1.4rem,3vw,2.2rem);
  line-height:1.15;
  color:#fff;
  font-style:italic;
  font-weight:500;
}
@keyframes aboutBirdFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-10px) rotate(4deg)}
}
@keyframes aboutOrbitSpin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
.about__image-frame{
  position:relative;border-radius:var(--r) 0 0 var(--r);overflow:hidden;
}
.about__image-frame img{
  width:100%;height:100%;object-fit:cover;max-height:640px;
  transition:transform 6s var(--ease);
}
.about__image-frame:hover img{transform:scale(1.04)}
.about__image-badge{
  position:absolute;bottom:24px;left:24px;
  background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);
  border:1px solid rgba(203,145,64,0.2);border-radius:50px;
  display:flex;align-items:center;gap:10px;padding:10px 18px;
  box-shadow:0 8px 24px rgba(0,0,0,0.1);
}
.about__image-badge img{width:28px;height:28px;object-fit:contain;border-radius:4px}
.about__image-badge span{font-size:0.82rem;font-weight:700;color:var(--gold);letter-spacing:0.05em}

.about__content{
  background:#fff;padding:64px 56px 64px 64px;
  border:1px solid rgba(203,145,64,0.1);border-left:none;
  border-radius:0 var(--r) var(--r) 0;
  box-shadow:0 12px 48px rgba(0,0,0,0.06);
  height:100%;
}
.about__divider{
  width:48px;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));
  margin:20px 0 28px;border-radius:2px;
}
.about__quote p{
  font-size:1rem;line-height:1.8;color:var(--text);font-style:italic;
  margin-bottom:28px;
}
.about__meta{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}
.about__name{font-size:1.45rem;font-weight:800;color:var(--gold)}
.about__role{font-size:0.9rem;color:var(--grey);font-weight:500;letter-spacing:0.02em}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials{padding:120px 0;position:relative;overflow:hidden;background:#141414}
.testimonials__bg{
  position:absolute;inset:0;background-size:cover;background-position:center;display:none;
}
.testimonials__veil{
  position:absolute;inset:0;
  background:linear-gradient(160deg,#181818 0%,#101010 100%);
}
.testimonials__subtitle{
  font-size:1.1rem;color:rgba(255,255,255,0.7);font-weight:400;
  text-align:center;margin-top:4px;
}

/* Carousel */
.carousel{max-width:900px;margin:0 auto;position:relative}
.carousel__viewport{
  overflow:hidden;
  border-radius:var(--r);
  /* Critical: prevent clipping inside flex child */
  width:100%;
}
.carousel__track{
  display:flex;
  width:100%;
  transition:transform 0.65s cubic-bezier(0.77,0,0.175,1);
  will-change:transform;
}

/* Each slide must be exactly 100% of viewport width */
.testimonial-slide{
  min-width:100%;
  width:100%;
  flex:0 0 100%;
  box-sizing:border-box;
  padding:0;  /* No horizontal padding here — padding goes INSIDE the inner card */
}

.testimonial__inner{
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,0.12);border-radius:var(--r);
  padding:52px 56px 48px;
  position:relative;
  box-sizing:border-box;
  margin:0 2px; /* tiny gap so border shows */
}
.testimonial__inner::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),transparent);
  border-radius:var(--r) var(--r) 0 0;
  opacity:0.7;
}

/* ★★★★★ Stars */
.testimonial__stars{
  display:flex;gap:5px;margin-bottom:22px;
}
.star{
  width:18px;height:18px;fill:var(--gold-light);flex-shrink:0;
  filter:drop-shadow(0 0 4px rgba(230,194,41,0.4));
}

/* Giant decorative quote mark */
.testimonial__quote-mark{
  position:absolute;top:10px;right:40px;
  font-size:10rem;line-height:1;
  color:rgba(255,255,255,0.035);
  font-family:Georgia,serif;font-weight:700;
  pointer-events:none;user-select:none;
  transition:color 0.4s;
  letter-spacing:-8px;
}
.testimonial__inner:hover .testimonial__quote-mark{color:rgba(203,145,64,0.08)}

/* Testimonial body text */
.testimonial__text{
  font-size:1.02rem;line-height:1.82;color:rgba(255,255,255,0.9);
  font-style:italic;margin-bottom:38px;
  position:relative;z-index:1;
}

/* Footer row: avatar + name/role */
.testimonial__footer{
  display:flex;align-items:center;gap:20px;
  border-top:1px solid rgba(255,255,255,0.08);
  padding-top:28px;
  margin-top:4px;
}

/* Avatar ring */
.testimonial__avatar{
  width:72px;height:72px;
  border-radius:50%;
  object-fit:cover;
  object-position:center top;
  border:2px solid rgba(203,145,64,0.5);
  box-shadow:0 0 0 5px rgba(203,145,64,0.12),0 4px 20px rgba(0,0,0,0.3);
  flex-shrink:0;
  display:block;
}

.testimonial__name{
  display:block;
  font-size:1.08rem;
  font-weight:700;
  color:#fff;
  margin-bottom:4px;
  letter-spacing:0.01em;
}
.testimonial__role{
  display:block;
  font-size:0.8rem;
  color:var(--gold-soft);
  font-family:var(--font-alt);
  letter-spacing:0.04em;
  text-transform:uppercase;
}

/* Carousel controls row */
.carousel__controls{
  display:flex;align-items:center;justify-content:center;
  gap:20px;margin-top:36px;
}
.carousel__btn{
  width:50px;height:50px;border-radius:50%;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  display:flex;align-items:center;justify-content:center;
  color:#fff;cursor:pointer;
  transition:background 0.25s,transform 0.25s,border-color 0.25s;
  flex-shrink:0;
}
.carousel__btn:hover{
  background:var(--gold);border-color:var(--gold);transform:scale(1.1);
}
.carousel__btn svg{width:20px;height:20px;stroke-width:2.5}

/* Dots */
.carousel__dots{display:flex;gap:10px;align-items:center}
.carousel__dot{
  width:8px;height:8px;border-radius:50%;border:none;
  background:rgba(255,255,255,0.25);cursor:pointer;padding:0;
  transition:background 0.3s,transform 0.3s,width 0.35s,border-radius 0.35s;
}
.carousel__dot.active{
  background:var(--gold);width:28px;border-radius:4px;
}
.carousel__dot:hover:not(.active){background:rgba(255,255,255,0.55)}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{
  padding:120px 0;
  background:#f8f4ed;
}
.contact__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(248,244,237,0.92) 0%,rgba(248,244,237,0.8) 48%,rgba(248,244,237,0.94) 100%),
    url('assets/images/execuprose-contact-shoji.webp') center/cover no-repeat;
  opacity:0.92;
}
.contact .container{position:relative;z-index:1}
.contact__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;
}
.contact__sub{
  font-size:1rem;color:var(--gold-soft);font-style:italic;margin:10px 0 18px;
}
.contact__desc{font-size:0.97rem;line-height:1.75;color:var(--text);margin-bottom:36px}
.contact__promise{display:flex;flex-direction:column;gap:12px}
.promise-item{
  display:flex;align-items:center;gap:14px;
  font-size:0.88rem;color:var(--text);
}
.promise-icon{color:var(--gold);font-size:0.6rem;flex-shrink:0}
.promise-item a{color:var(--gold);font-weight:600;text-decoration:none}
.promise-item a:hover{text-decoration:underline}
.contact__invitation{
  margin:36px 0 0;
  max-width:420px;
  overflow:hidden;
  border-radius:var(--r);
  background:#fff;
  border:1px solid rgba(203,145,64,0.18);
  box-shadow:0 24px 70px rgba(53,42,28,0.16);
}
.contact__invitation img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.contact__invitation figcaption{
  padding:20px 24px 24px;
  border-top:1px solid rgba(203,145,64,0.12);
}
.contact__invitation figcaption span{
  display:block;
  font-family:var(--font-alt);
  font-size:0.7rem;
  letter-spacing:0.2em;
  color:var(--gold);
  text-transform:uppercase;
  margin-bottom:7px;
}
.contact__invitation figcaption strong{
  display:block;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.16rem;
  line-height:1.35;
  color:var(--dark);
  font-style:italic;
  font-weight:500;
}

/* Form */
.contact-form{
  background:rgba(24,24,24,0.96);
  border:1px solid rgba(203,145,64,0.18);
  border-radius:var(--r);
  padding:48px 44px;
  box-shadow:0 28px 80px rgba(22,18,30,0.22);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{margin-bottom:18px}
.form-label{
  display:block;font-size:0.78rem;font-weight:600;letter-spacing:0.06em;
  text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:8px;
}
.form-input,.form-textarea{
  width:100%;padding:14px 16px;
  font-family:var(--font);font-size:0.95rem;color:#fff;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);border-radius:6px;
  outline:none;transition:border-color 0.25s,background 0.25s,box-shadow 0.25s;
}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(255,255,255,0.25)}
.form-input:focus,.form-textarea:focus{
  border-color:var(--gold);background:rgba(255,255,255,0.08);
  box-shadow:0 0 0 3px rgba(203,145,64,0.14);
}
.form-textarea{resize:vertical;min-height:130px}
.form-group--check{display:flex;align-items:flex-start;gap:10px;margin-bottom:24px}
.form-checkbox{
  width:18px;height:18px;flex-shrink:0;margin-top:2px;
  accent-color:var(--gold);cursor:pointer;border-radius:3px;
}
.form-label-check{
  font-size:0.82rem;color:rgba(255,255,255,0.45);cursor:pointer;line-height:1.5;
  text-transform:none;letter-spacing:0;
}
.form-submit{width:100%;justify-content:center}
.form-hp{
  position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;
}
.form-direct-email{
  display:inline-block;margin-top:16px;
  color:rgba(255,255,255,0.58);font-size:0.82rem;font-weight:600;
  text-decoration:none;
}
.form-direct-email:hover{color:var(--gold);text-decoration:underline}
.form-message{
  margin-top:18px;padding:14px 18px;border-radius:6px;font-size:0.9rem;font-weight:500;
}
.form-message--success{
  background:rgba(0,200,120,0.12);border:1px solid rgba(0,200,120,0.3);color:#6effc8;
}
.form-message--error{
  background:rgba(200,50,50,0.12);border:1px solid rgba(200,50,50,0.3);color:#ffaaaa;
}
.form-message a{color:inherit;font-weight:700}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{position:relative;z-index:0;background:#111111;padding:60px 0 40px;border-top:1px solid rgba(201,169,110,0.12)}
.footer__inner{
  display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:40px;
}
.footer__brand img{height:56px;width:auto;opacity:0.85;filter:brightness(0) invert(1)}
.footer__tagline{font-size:0.72rem;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-top:8px;font-family:var(--font-alt)}
.footer__nav{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 20px;
}
.footer__nav a{
  font-size:0.8rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;
  color:rgba(255,255,255,0.4);transition:color 0.25s;
}
.footer__nav a:hover{color:var(--gold-soft)}
.footer__legal{text-align:right}
.footer__legal p{font-size:0.78rem;color:rgba(255,255,255,0.25);margin-bottom:10px;font-family:var(--font-alt)}
.footer__links{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.footer__links a{font-size:0.75rem;color:rgba(255,255,255,0.25);transition:color 0.25s}
.footer__links a:hover{color:var(--gold-soft)}

/* ============================================================
   AI WIDGET
   ============================================================ */
.ai-widget{display:none}

.ai-widget__toggle{
  width:62px;height:62px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  position:relative;
  box-shadow:0 8px 28px rgba(203,145,64,0.45);
  transition:transform 0.3s var(--ease),box-shadow 0.3s;
}
.ai-widget__toggle:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 14px 40px rgba(203,145,64,0.55)}
.ai-widget__icon img{width:30px;height:30px;object-fit:contain}
.ai-widget__pulse{
  position:absolute;top:-2px;right:-2px;width:16px;height:16px;
  background:#28e08e;border-radius:50%;border:2px solid #fff;
}
.ai-widget__pulse::after{
  content:'';position:absolute;inset:0;background:#28e08e;
  border-radius:50%;animation:pulseBadge 2s ease-in-out infinite;
}
@keyframes pulseBadge{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(2);opacity:0}
}

.ai-widget__panel{
  position:absolute;bottom:76px;right:0;
  width:340px;border-radius:18px;overflow:hidden;
  background:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,0.2);
  transform:scale(0.88) translateY(20px);transform-origin:bottom right;
  opacity:0;pointer-events:none;
  transition:transform 0.35s var(--ease),opacity 0.3s;
}
.ai-widget__panel.open{
  transform:scale(1) translateY(0);opacity:1;pointer-events:all;
}

.ai-widget__header{
  display:flex;align-items:center;gap:12px;padding:16px 18px;
  background:var(--dark);border-bottom:1px solid rgba(255,255,255,0.06);
}
.ai-widget__header img{width:36px;height:36px;object-fit:contain;border-radius:8px}
.ai-widget__header strong{display:block;font-size:0.9rem;color:#fff;font-weight:700}
.ai-widget__header span{font-size:0.72rem;color:rgba(255,255,255,0.4)}
.ai-widget__close{
  margin-left:auto;background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.4);font-size:1rem;line-height:1;
  transition:color 0.2s;padding:4px;
}
.ai-widget__close:hover{color:#fff}

.ai-widget__chat{
  padding:20px 18px 12px;min-height:120px;max-height:260px;overflow-y:auto;
  display:flex;flex-direction:column;gap:12px;
}
.ai-msg{max-width:88%}
.ai-msg--bot{align-self:flex-start}
.ai-msg--user{align-self:flex-end}
.ai-msg p,.ai-msg span{
  padding:11px 16px;border-radius:16px;font-size:0.88rem;line-height:1.55;
  display:block;
}
.ai-msg--bot p{background:#f4f4f6;color:var(--dark);border-bottom-left-radius:4px}
.ai-msg--user span{background:var(--gold);color:#fff;border-bottom-right-radius:4px}

.ai-widget__options{
  padding:0 18px 18px;display:flex;flex-wrap:wrap;gap:8px;
}
.ai-opt{
  font-size:0.78rem;font-weight:600;color:var(--gold);
  background:rgba(203,145,64,0.08);border:1px solid rgba(203,145,64,0.25);
  border-radius:20px;padding:8px 14px;cursor:pointer;
  transition:background 0.2s,color 0.2s;text-align:left;
}
.ai-opt:hover{background:var(--gold);color:#fff;border-color:var(--gold)}

.ai-widget__input-area{
  display:flex;gap:0;border-top:1px solid rgba(0,0,0,0.06);
}
.ai-widget__input{
  flex:1;border:none;outline:none;padding:14px 16px;
  font-family:var(--font);font-size:0.88rem;color:var(--dark);background:#fff;
}
.ai-widget__input::placeholder{color:var(--grey)}
.ai-widget__send{
  width:52px;background:var(--gold);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.2s;
}
.ai-widget__send:hover{background:var(--gold-light)}
.ai-widget__send svg{width:18px;height:18px;fill:#fff}

/* Typing indicator */
.typing-dots span{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--grey);animation:typingBounce 1.2s ease-in-out infinite;
  margin-right:3px;
}
.typing-dots span:nth-child(2){animation-delay:0.2s}
.typing-dots span:nth-child(3){animation-delay:0.4s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}

/* ============================================================
   RESPONSIVE — Mobile First
   ============================================================ */

/* Large tablet */
@media(max-width:1100px){
  .hero__inner{gap:32px}
  .portrait__frame{max-width:340px}
}

/* Tablet — collapse hero to stacked + portrait on top */
@media(max-width:900px){
  /* Hero: single column, portrait on top */
  .hero__inner{
    grid-template-columns:1fr;
    min-height:auto;
    padding-top:calc(var(--hh) + 20px);
    padding-bottom:80px;
    gap:0;
  }
  /* Reorder: portrait first on mobile */
  .hero__portrait{order:-1;padding:28px 0 24px}
  .hero__content{
    align-items:center;text-align:center;
    padding:0 0 40px;
  }
  .hero__eyebrow{justify-content:center}
  .hero__actions{justify-content:center}
  .hero__stats{max-width:100%}
  .portrait__frame{max-width:280px;margin:0 auto}
  .portrait__badge{
    bottom:14px;padding:10px 16px;gap:10px;
  }
  .portrait__badge-text strong{font-size:0.82rem}

  .kintsugi-thread--hero{
    top:6%;
    right:-18vw;
    width:88vw;
    height:46%;
    opacity:0.44;
  }
  .kintsugi-thread--thesis,
  .kintsugi-thread--philosophy,
  .kintsugi-thread--contact{
    width:82vw;
    height:42%;
    opacity:0.18;
  }

  .competence__grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  .competence__inner{
    text-align:center;
    margin:0 auto;
  }
  .competence__visual,
  .competence__visual img{
    min-height:300px;
  }

  /* About */
  .about__grid{grid-template-columns:1fr}
  .about__catalyst-panel{
    min-height:430px;
    border-radius:var(--r) var(--r) 0 0;
    border-right:1px solid rgba(203,145,64,0.18);
    border-bottom:none;
  }
  .about__seam-card{
    width:170px;
    right:28px;
    top:34px;
  }
  .about__book-card{
    width:min(52%,300px);
    left:28px;
    bottom:34px;
  }
  .about__brand-chip{
    left:28px;
    top:28px;
  }
  .about__brand-panel{
    min-height:360px;
    border-radius:var(--r) var(--r) 0 0;
    border-right:1px solid rgba(203,145,64,0.18);
    border-bottom:none;
  }
  .about__brand-orbit{
    width:min(68%,260px);
    margin-bottom:28px;
  }
  .about__brand-bird{
    width:128px;
    border-radius:22px;
  }
  .about__image-frame{border-radius:var(--r) var(--r) 0 0}
  .about__image-frame img{max-height:380px}
  .about__content{
    border-left:1px solid rgba(203,145,64,0.1);
    border-top:none;
    border-radius:0 0 var(--r) var(--r);
    padding:44px 32px;
  }

  /* Services */
  .services-grid{grid-template-columns:1fr}
  /* Philosophy */
  .phil-grid{grid-template-columns:repeat(2,1fr)}
  .philosophy__visuals{
    grid-template-columns:1fr;
    gap:18px;
  }
  .philosophy__image,
  .philosophy__image img{
    min-height:260px;
  }
  /* Contact */
  .contact__grid{grid-template-columns:1fr;gap:48px}
  .contact__invitation{max-width:none}
  /* Footer */
  .footer__inner{grid-template-columns:1fr;text-align:center;gap:28px}
  .footer__nav{justify-content:center}
  .footer__legal{text-align:center}
  .footer__links{align-items:center}
  /* Testimonial */
  .testimonial__inner{padding:40px 36px 36px}
  /* Poetry */
  .poetry__showcase{
    grid-template-columns:1fr;
    gap:36px;
    max-width:780px;
    margin:0 auto;
  }
  .poetry__flight{
    max-width:520px;
    margin:-24px auto 36px;
  }
  .poetry__portrait{
    max-width:430px;
    margin:0 auto;
  }
  .poetry__signal{justify-content:center}
  .poetry__slide{padding:40px 36px 36px}

  /* Nav */
  .nav-toggle{display:flex}
  .nav-menu{
    position:fixed;top:0;right:-100%;width:80vw;max-width:320px;height:100vh;
    background:#fff;flex-direction:column;align-items:flex-start;
    padding:90px 28px 40px;gap:4px;
    box-shadow:0 0 80px rgba(0,0,0,0.15);
    transition:right 0.45s var(--ease);z-index:999;
  }
  .nav-menu.open{right:0}
  .nav-link{font-size:1rem;padding:13px 16px;width:100%;border-radius:8px}
  .nav-link--cta{margin-top:12px;text-align:center}
}

/* Phone */
@media(max-width:640px){
  :root{--hh:64px}
  .container{padding:0 20px}
  .kintsugi-thread--thesis,
  .kintsugi-thread--philosophy,
  .kintsugi-thread--contact{
    opacity:0.12;
  }

  /* Hero */
  .hero__inner{padding-top:calc(var(--hh) + 8px);padding-bottom:60px;gap:0}
  .hero__portrait{padding:20px 0 16px}

  /* Portrait: wider crop so full face shows, not just nose */
  .portrait__frame{max-width:280px;margin:0 auto}
  .portrait__img{
    aspect-ratio:3/4;         /* Less extreme than 2/3, shows forehead+chin */
    object-position:50% 10%; /* Nudge up to show crown of head */
  }

  /* Badge fits the narrower frame */
  .portrait__badge{
    bottom:10px;padding:8px 14px;gap:8px;
    left:50%;transform:translateX(-50%);
  }
  .portrait__badge img{width:22px;height:22px}
  .portrait__badge-text strong{font-size:0.78rem}
  .portrait__badge-text span{font-size:0.65rem}
  .portrait__corner{width:22px;height:22px}

  /* Logo: keep the mobile header compact. */
  .logo-bird{display:none}
  .logo-text__img{height:16px}

  .hero__title{font-size:2.3rem;margin-bottom:16px}
  .hero__quote{font-size:0.95rem;margin-bottom:28px}
  .hero__actions{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:28px}
  .btn{padding:14px 24px;font-size:0.84rem;justify-content:center}
  .hero__stats{
    flex-wrap:wrap;gap:0;
    padding:14px 16px;
  }
  .hero-stat{flex:0 0 calc(33.33% - 2px);padding:8px 6px}
  .hero-stat__num{font-size:1.5rem}
  .hero-stat__unit{font-size:0.9rem}
  .hero-stat__label{font-size:0.58rem;letter-spacing:1px}
  .hero-stat__divider{height:36px}

  /* Philosophy — single col */
  .phil-grid{grid-template-columns:1fr}
  .phil-card__desc{opacity:1;max-height:none}
  .phil-card{background:#fff;border:1px solid rgba(203,145,64,0.15)}
  .phil-card__icon svg{fill:var(--gold)}
  .phil-card__title{color:var(--gold)}
  .phil-card__desc{color:var(--text)}

  /* Form */
  .form-row{grid-template-columns:1fr}
  .contact-form{padding:32px 20px}
  .contact__invitation figcaption{padding:18px 20px 22px}

  /* Testimonials */
  .testimonial__inner{padding:28px 20px 24px}
  .testimonial__text{font-size:0.9rem;margin-bottom:20px}
  .testimonial__footer{gap:14px}
  .testimonial__avatar{width:52px;height:52px}
  .testimonial__name{font-size:0.9rem}
  .carousel__btn{width:40px;height:40px}

  /* Poetry */
  .poetry{padding:72px 0}
  .poetry__flight{
    height:46px;
    margin:-18px auto 30px;
  }
  .poetry__flight-line{top:23px}
  .poetry__flight-bird{
    width:46px;height:46px;
  }
  .poetry__flight-bird img{
    width:28px;height:32px;
  }
  .poetry__flight-spark{top:22px}
  .poetry__showcase{gap:28px}
  .poetry__portrait{max-width:360px}
  .poetry__bird-muse{
    top:12px;right:12px;
    width:50px;height:50px;
  }
  .poetry__bird-muse::before{width:58px;right:34px;top:23px}
  .poetry__bird-muse::after{width:40px;right:34px;top:32px}
  .poetry__bird-muse img{width:30px;height:35px}
  .poetry__caption{
    margin-top:14px;
    padding-left:14px;
  }
  .poetry__caption span{font-size:0.62rem;letter-spacing:0.18em}
  .poetry__caption strong{font-size:0.98rem}
  .poetry__signal{gap:8px;margin-bottom:18px}
  .poetry__signal span{
    padding:7px 10px;
    font-size:0.6rem;
    letter-spacing:0.1em;
  }
  .poetry__slide{padding:32px 24px 28px}
  .poetry__verse p{font-size:1rem;line-height:1.72;margin-bottom:24px}
  .poetry__ornament{font-size:2.2rem;margin-bottom:14px}
  .poetry__btn{width:40px;height:40px}

  /* Section titles */
  .section__title{font-size:1.85rem}
  .competence{
    padding:76px 0;
  }
  .competence__grid{gap:28px}
  .competence__visual,
  .competence__visual img{
    min-height:220px;
  }
  .philosophy__visuals{
    margin:-22px 0 36px;
  }
  .philosophy__image,
  .philosophy__image img{
    min-height:190px;
  }
  .services-grid{gap:18px}
  .service-card{padding:0 0 28px}
  .service-card__visual{height:150px}
  .service-card__icon-wrap{margin:-26px 24px 20px}
  .service-card__title,
  .service-card__desc,
  .service-card__link{margin-left:24px;margin-right:24px}
  .service-card__line{margin-left:24px;margin-right:24px}

  /* About */
  .about__catalyst-panel{
    min-height:340px;
  }
  .about__brand-chip{
    left:18px;
    right:18px;
    top:18px;
    max-width:none;
    padding:11px 13px;
  }
  .about__brand-chip strong{font-size:0.8rem}
  .about__seam-card{
    width:120px;
    right:18px;
    top:92px;
  }
  .about__book-card{
    left:18px;
    bottom:20px;
    width:62%;
  }
  .about__brand-panel{
    min-height:300px;
    padding:40px 20px;
  }
  .about__brand-orbit{
    width:min(72%,220px);
    margin-bottom:22px;
  }
  .about__brand-bird{
    width:104px;
    padding:14px;
    border-radius:18px;
  }
  .about__brand-mark span{font-size:0.62rem;letter-spacing:0.2em}
  .about__brand-mark strong{font-size:1.45rem}
  .about__content{padding:32px 20px}
  .about__name{font-size:1.2rem}

  /* AI Widget */
  .ai-widget{bottom:16px;right:16px}
  .ai-widget__panel{width:calc(100vw - 32px);max-height:80vh}
  .ai-widget__toggle{width:54px;height:54px}
}

/* Very small phones */
@media(max-width:380px){
  .hero__title{font-size:2rem}
  .portrait__frame{max-width:200px}
  .portrait__img{aspect-ratio:4/5;object-position:50% 8%}
  .hero-stat__num{font-size:1.3rem}
}

/* Reduce motion */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
  .hero__bg,.portrait__glow{display:none}
  .portrait__corner,.portrait__badge{animation:none;opacity:1}
}
