@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');

:root { --ease-out: cubic-bezier(.16,1,.3,1); }
.editorial-text { font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-style:italic; letter-spacing:-.035em; }
.hero-message>p:last-of-type,.project-info p,.section-heading>p { font-size:1rem; }
.interaction-note { font-size:.8125rem; color:#c6b1c0; letter-spacing:.04em; }
.hero-side { gap:18px; }
.orbital-label { font-size:.75rem; }
.hero-intro .eyebrow,.eyebrow { font-size:.75rem; }
.hero-wordmark { z-index:1; text-shadow:0 2px 45px #0003; }
.hero-message,.hero-intro { pointer-events:none; }
.hero-message a { pointer-events:auto; }
.hero-message h2 { overflow:visible; }
.section { position:relative; }
.section::before { content:''; position:absolute; top:0; left:5.1%; width:70px; height:1px; background:linear-gradient(90deg,#ff617a,transparent); transform-origin:left; }
.motion-ready .section::before { transform:scaleX(0); transition:transform 1.3s var(--ease-out); }
.motion-ready .section.section-entered::before { transform:scaleX(1); }

/* Nothing is hidden until the enhancement has initialized successfully. */
.reveal { opacity:1; transform:none; }
.motion-ready .reveal { opacity:0; transform:translateY(28px) rotateX(3deg); filter:blur(5px); transition:opacity .85s var(--ease-out),transform .9s var(--ease-out),filter .85s var(--ease-out); transition-delay:var(--reveal-delay,0ms); }
.motion-ready .reveal.visible { opacity:1; transform:none; filter:blur(0); }
.word-mask { display:inline-block; overflow:clip; vertical-align:bottom; padding-bottom:.14em; margin-bottom:-.14em; }
.word { display:inline-block; }
.motion-ready .text-reveal .word { opacity:0; transform:translateY(112%) rotate(2deg); filter:blur(5px); transition:opacity .8s var(--ease-out),transform 1s var(--ease-out),filter .8s var(--ease-out); transition-delay:var(--word-delay,0ms); }
.motion-ready .text-reveal.visible .word { opacity:1; transform:none; filter:blur(0); }
.word-reveal .word { color:#ff7287; }
.motion-ready .portrait-wrap { clip-path:inset(0 0 15% 0 round 22px); transition:clip-path 1.3s var(--ease-out),opacity .9s var(--ease-out),transform 1.1s var(--ease-out),filter .9s; }
.motion-ready .portrait-wrap.visible { clip-path:inset(0 0 0 0 round 22px); }
.portrait-caption { font-size:.875rem; right:22px; }
.about-facts>div,.credentials,.credentials p,.download-link,.service-tag,.contact-location { font-size:.875rem!important; }

.project-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; perspective:1200px; }
.project-card { grid-column:span 5; transform-style:preserve-3d; isolation:isolate; }
.project-card-1,.project-card-4 { grid-column:span 7; }
.project-card:hover,.motion-ready .project-card.visible:hover { transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-4px); }
.project-card:after { content:''; position:absolute; inset:0; pointer-events:none; z-index:2; background:radial-gradient(350px at var(--card-glow-x,50%) var(--card-glow-y,50%),#ff678010,transparent); opacity:0; transition:opacity .35s; }
.project-card:hover:after { opacity:1; }
.project-visual { position:relative; overflow:hidden; }
.project-art { height:285px; }
.project-peek { position:absolute; bottom:17px; left:20px; right:20px; padding:13px 18px; display:flex; justify-content:space-between; border:1px solid #ffffff24; background:#16131cbb; backdrop-filter:blur(18px); border-radius:12px; font-size:.875rem; opacity:0; transform:translateY(18px); transition:opacity .35s,transform .5s var(--ease-out); }
.project-card:hover .project-peek,.project-card:focus-visible .project-peek { opacity:1; transform:translateY(0); }
.project-info { padding:27px 26px 30px; }
.project-info h3 { font-size:clamp(1.4rem,2.2vw,1.9rem); }
.project-meta { line-height:1.5; gap:8px 18px; }
.archive-title { line-height:1.5; }
.project-info p { padding-right:25px; }

dialog { width:min(980px,calc(100% - 40px)); padding:42px; max-height:90svh; border-radius:26px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#684052 #141018; }
dialog[open] { animation:case-enter .4s var(--ease-out) both; }
.dialog-close { z-index:3; position:sticky; float:right; top:0; margin:-20px -20px 0 0; border-radius:50%; background:#241b25; border:1px solid #ffffff24; font-size:26px; width:44px; height:44px; }
.case-header { padding:0 28px 27px 0; }
.dialog-title { font-size:clamp(1.9rem,3.1vw,2.75rem); max-width:760px; margin:16px 0; }
.case-stage { font-size:.875rem; color:#ddbdc7; }
.case-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; }
.case-panel { padding:24px; border:1px solid #ffffff13; border-radius:17px; background:linear-gradient(140deg,#ffffff05,transparent); scroll-margin:0; }
.case-problem { grid-column:span 5; }
.case-solution { grid-column:span 7; }
.case-technologies { grid-column:span 5; }
.case-impact { grid-column:span 7; background:linear-gradient(140deg,#651f3540,#3911281a); }
.case-index { font-size:.75rem; color:#bd899d; letter-spacing:.07em; }
.case-panel h3 { font-size:1.3rem; margin:15px 0 14px; letter-spacing:-.025em; }
.case-panel p { font-size:1rem; line-height:1.75; color:#c0b4c3; }
.dialog-stack { margin:18px 0 0; gap:8px; }
.dialog-stack span { font-size:.875rem; padding:7px 12px; line-height:1.4; }
.impact-label { display:block; margin:-4px 0 10px; color:#e39aac; font-size:.8125rem; }
.case-validation { border-top:1px solid #ffffff1c; border-bottom:1px solid #ffffff1c; margin-top:24px; }
.case-validation summary { cursor:pointer; padding:19px 0; font-size:1rem; display:flex; gap:20px; align-items:center; justify-content:space-between; list-style:none; }
.case-validation summary::-webkit-details-marker { display:none; }
.case-validation summary span { font-size:24px; color:#ff8c9e; transition:transform .3s; }
.case-validation[open] summary span { transform:rotate(45deg); }
.case-validation p { padding:0 26px 23px 0; font-size:1rem; color:#af9bab; line-height:1.75; }
.case-footer { margin-top:25px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.case-footer p { color:#b49daa; font-size:.875rem; }
.dialog-action { margin:0; }
.no-script { border:1px solid var(--line); padding:20px; }
@keyframes case-enter { from { opacity:0; transform:translateY(20px) scale(.985); } to { opacity:1; transform:none; } }
@media(max-width:900px) { .project-card,.project-card-1,.project-card-4 { grid-column:span 6; } .project-info { padding:22px; } .case-panel { padding:20px; } }
@media(max-width:700px) {
  .project-card,.project-card-1,.project-card-4 { grid-column:1/-1; }
  .project-art { height:245px; }
  .interaction-note { display:none; }
  .hero-side { bottom:0; }
  .hero-intro .eyebrow { font-size:.75rem; }
  .hero-message h2 { font-size:clamp(2.1rem,10vw,2.8rem); }
  .hero-message>p:last-of-type { font-size:1rem; }
  .hero-bottom { bottom:36px; }
  .project-peek { display:none; }
  .project-info h3 { font-size:1.5rem; }
  .project-meta { font-size:.875rem; }
  .archive-category { font-size:.875rem; }
  .portrait-caption { left:22px; font-size:.8125rem; }
  .about-facts>div { gap:14px; }
  .credentials { flex-direction:column; gap:4px; }
  .download-link { display:block; margin:18px 0 0; }
  dialog { padding:25px 19px; width:calc(100% - 24px); border-radius:20px; max-height:92svh; }
  .dialog-close { margin:-12px -7px 0 0; }
  .case-header { padding-right:28px; }
  .case-panel { grid-column:1/-1; padding:20px; }
  .case-footer { flex-direction:column; align-items:flex-start; }
  .dialog-title { font-size:1.9rem; }
  .case-footer .button { white-space:normal; text-align:left; }
  .contact-email { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) {
  .motion-ready .reveal,.motion-ready .text-reveal .word,.motion-ready .portrait-wrap { opacity:1; transform:none; filter:none; clip-path:none; }
  .project-card:hover,.motion-ready .project-card.visible:hover { transform:none; }
  .interaction-note { display:none; }
}
body.motion-paused .word-reveal { animation-play-state:paused; }
