/* TOPCAST — neutral surfaces, graphite details, restrained project accents. */
:root {
  color-scheme: light;
  --bg: #f5f5f7;
  --surface: #ffffff;
  --ink: #1d1d1f;
  --muted: #646972;
  --accent: #1d1d1f;
  --line: #e6e6eb;
  --carta-accent: #d8223b;
  --rotation-accent: #0071e3;
  --display: 'Manrope', Arial, sans-serif;
}
body { overflow-x: clip; }
.wrap { width: min(1240px, calc(100% - 80px)); }
.header { min-height: 100px; }
.brand { font-size: 1.2rem; letter-spacing: -.055em; }
.brand img { border-radius: 0; }
.brand-small { letter-spacing: .09em; font-size: .625rem; }
.nav .nav-contact, .language-control { border-color: var(--line); border-radius: 2px; }
.nav .nav-contact { background: var(--ink); color: var(--bg); padding-inline: 16px; }
.nav .nav-contact>span[aria-hidden] { color: inherit; }
.language-control select { border-radius: 0; }
.header-actions { gap: 18px; }
.nav { gap: 26px; }
.hero { padding-top: 24px; }
.hero-meta, .hero-foot { font-size: .75rem; letter-spacing: .04em; }
.hero-layout { grid-template-columns: 1.05fr 1fr; gap: 52px; padding-block: 72px 58px; }
.hero h1 { font-family: var(--display); font-size: clamp(3.5rem, 5.7vw, 5.8rem); font-weight: 600; line-height: 1.08; letter-spacing: -.075em; }
.accent-word { display: inline-block; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 1.16em; line-height: 1.12; letter-spacing: -.065em; }
.hero-copy>.button { margin-top: 38px; }
.button { padding: 15px 20px; border-radius: 2px; min-height: 54px; gap: 30px; font-weight: 600; border: 1px solid var(--ink); }
.button-accent { background: var(--ink); color: var(--bg); }
.button:hover { background: #303034; color: var(--bg); box-shadow: 5px 5px 0 #1d1d1f22; }
.hero-visual { perspective: 1000px; }
.orbit-top, .orbit-bottom { color: var(--ink); font-size: .75rem; letter-spacing: .02em; }
.orbit-stage { isolation: isolate; transform-style: preserve-3d; }
.orbit-svg { color: var(--ink); }
.orbit-lines { stroke: var(--ink); opacity: .35; }
.orbit-label { background: var(--bg); color: var(--ink); border: 1px solid var(--ink); border-radius: 1px; backdrop-filter: none; box-shadow: 5px 7px 0 #1d1d1f26; min-height: 48px; z-index: 3; font-size: .875rem; }
.orbit-label>span:first-child { color: var(--muted); }
.orbit-label:hover { background: var(--ink); color: var(--bg); }
.orbit-label:hover>span:first-child { color: inherit; }
.motion-toggle { color: var(--ink); font-size: .75rem; }
.hero-foot { border-top: 1px solid var(--line); padding-block: 20px 28px; }
.hero-foot>span { display: flex; gap: 8px; flex-wrap: wrap; }
.hero-foot>span br { display: none; }
.subtle { color: var(--muted); }
.carta-art { background: var(--surface); color: var(--ink); }
.rotation-art { background: var(--ink); color: var(--bg); }
.project { border-radius: 2px; }
.project h3, .section-head h2, .about h2, .contact h2 { font-weight: 500; letter-spacing: -.065em; line-height: 1.12; }
.features, .project-info>.data-note { color: var(--muted); }
.features span:before { color: var(--ink); }
.footer-word { color: var(--ink); }
@media (max-width: 1024px) {
  .wrap { width: calc(100% - 48px); }
  .hero-layout { gap: 28px; padding-block: 48px; }
  .hero h1 { font-size: clamp(3rem, 5.8vw, 4.5rem); }
}
@media (max-width: 760px) {
  .wrap { width: calc(100% - 40px); }
  .hero-layout { grid-template-columns: 1fr; padding-top: 40px; gap: 42px; }
  .hero h1 { font-size: clamp(3.15rem, 10.8vw, 5.8rem); }
  .hero-visual { max-width: 570px; }
  .hero-copy>.button { margin-top: 28px; }
  .hero-foot { gap: 14px; }
  .hero-foot>span { display: block; }
  .hero-foot>span br { display: block; }
}
@media (max-width: 380px) {
  .wrap { width: calc(100% - 32px); }
  .hero h1 { font-size: 10.4vw; }
}

/* A single ink treatment ties the original illustration to the interface. */
.hero-object { position: absolute; inset: 0; animation: paper-float 7s ease-in-out infinite; }
.duotone-art { isolation: isolate; position: relative; width: 100%; height: 100%; }
.duotone-art img { width: 100%; height: 100%; object-fit: contain; filter: grayscale(1) contrast(1.35); }
.duotone-art:before, .duotone-art:after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.duotone-art:before { background: #1d1d1f; mix-blend-mode: lighten; }
.duotone-art:after { background: #f5f5f7; mix-blend-mode: multiply; }
.orbit-svg { opacity: .12; }
.hero-object .orbit-word { inset: 26% 36% 39% 30%; font-family: var(--display); font-size: clamp(1.1rem, 2.15vw, 2rem); font-weight: 700; letter-spacing: -.05em; line-height: 1.12; transform: rotate(-9deg); z-index: 2; }
.orbit-label-carta { top: 15%; right: 0; transform: translateZ(38px) rotate(7deg); }
.orbit-label-rotation { left: 0; bottom: 10%; transform: translateZ(30px) rotate(-6deg); }
.hero-visual .orbit-top { padding-bottom: 14px; }
.hero-visual .orbit-bottom { padding-top: 12px; }
@keyframes paper-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-9px) rotate(1deg); } }
.motion-paused .hero-object, .motion-offscreen .hero-object { animation-play-state: paused; }

/* A neutral project shelf keeps the focus on the work. */
.projects.wrap { width: 100%; margin-top: 24px; padding: 88px max(40px, calc((100% - 1240px) / 2)) 128px; background: var(--bg); color: var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 46px; overflow: hidden; perspective: 1500px; }
.projects .section-head { grid-column: 1 / -1; align-items: end; margin-bottom: 14px; }
.projects .eyebrow, .projects .section-head>p { color: var(--muted); }
.section-head h2 { font-size: clamp(2.8rem, 4.7vw, 4.8rem); }
.projects h2 .subtle { color: inherit; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; letter-spacing: -.05em; }
.projects .section-head>p { max-width: 300px; line-height: 1.8; }
.project { display: flex; flex-direction: column; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 2px; margin: 0; min-width: 0; box-shadow: 0 8px 28px #1d1d1f05; transform-origin: center center; transition: transform .45s ease, box-shadow .45s ease; }
.project-carta { transform: rotate(-2deg); }
.project-rotation { transform: translateY(55px) rotate(2deg); }
.project-carta { --card-angle: -2deg; --card-offset: 0px; }
.project-rotation { --card-angle: 2deg; --card-offset: 55px; }
.project:focus-within { transform: none; box-shadow: 0 8px 28px #1d1d1f08; }
.project-art { min-height: 345px; border-bottom: 1px solid var(--line); padding: 24px; flex-shrink: 0; }
.carta-art { background: var(--bg); background-image: none; }
.art-top { font-size: .75rem; letter-spacing: .015em; }
.art-caption { font-size: .75rem; letter-spacing: .02em; padding-top: 12px; max-width: 100%; }
.carta-type { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: clamp(4.2rem, 6.4vw, 6rem); font-weight: 400; letter-spacing: -.065em; line-height: .9; top: 90px; left: 32px; }
.carta-type>span:last-child { padding-left: 30px; }
.carta-bars { left: 28%; right: 7%; top: 68px; bottom: 65px; gap: 9px; transform: perspective(700px) rotateY(-20deg) rotateZ(-12deg); }
.carta-bars>span, .carta-bars>span:nth-child(n) { background: var(--ink); border: 1px solid var(--ink); box-shadow: 7px 5px 0 #1d1d1f34; }
.carta-bars>span:nth-child(even) { background: var(--bg); background-image: repeating-linear-gradient(-35deg, transparent 0 3px, #1d1d1f55 3px 4px); }
.rotation-art { background: var(--bg); color: var(--ink); }
.rotation-grid { opacity: .12; }
.rotation-diagram { inset: 57px 0 52px; transform: perspective(750px) rotateX(12deg) rotateY(-10deg); }
.rotation-diagram svg { opacity: 1; }
.zone { stroke: var(--ink); stroke-width: 1.3; }
.zone-inner { stroke-width: 2; }
.zone-core { fill: #1d1d1f25; stroke: var(--ink); stroke-width: 1.5; }
.team-route { stroke: var(--rotation-accent); stroke-width: 2.5; }
.team-point { fill: var(--rotation-accent); stroke: var(--bg); }
.rotation-word { color: var(--ink); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.8rem, 4.7vw, 4.5rem); font-style: italic; font-weight: 400; letter-spacing: -.055em; line-height: .95; }
.preview-button { bottom: 49px; right: 20px; background: var(--bg); color: var(--ink); border-radius: 2px; font-size: .875rem; box-shadow: 3px 3px 0 #1d1d1f25; }
.preview-button:hover { background: var(--ink); color: var(--bg); }
.preview-button { position: relative; right: auto; bottom: auto; align-self: flex-end; margin-top: auto; order: 3; max-width: 100%; }
.art-caption { z-index: 3; background: var(--bg); }
.js-ready .art-caption { order: 4; margin-top: 12px; }
.project-info { padding: 30px; flex: 1; }
.project-topline { font-size: .75rem; }
.tag { border-radius: 2px; font-size: .75rem; }
.project h3 { font-family: var(--display); font-size: clamp(2.1rem, 3vw, 3rem); margin-block: 27px 18px; font-weight: 600; }
.project-info>p { line-height: 1.8; color: var(--muted); }
.features { gap: 8px 16px; font-size: .875rem; }
.project-info>.data-note { font-size: .75rem; }
.project-link { border-top: 1px solid var(--line); margin-top: 26px; padding-top: 20px; }
.project-link>span[aria-hidden] { font-size: 1.8rem; }
.about { grid-template-columns: .6fr 1.4fr; gap: 64px; border-top: 0; margin-top: 0; padding-block: 104px 80px; }
.about h2 { font-size: clamp(2.5rem, 4.1vw, 4rem); }
.about h2 .subtle { color: var(--ink); font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; }
.about-label img { border-radius: 0; width: 100px; height: 100px; box-shadow: 0 4px 16px #1d1d1f08; transform: rotate(-5deg); }
.about-copy>p { line-height: 1.85; }
.services { margin-top: 30px; font-size: .875rem; }
.contact { margin-top: 0; padding-top: 60px; }
.contact h2 { font-size: clamp(3rem, 5vw, 5rem); }
.contact h2>span:last-child { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; }
.contact-copy { max-width: 310px; }
.socials a { font-size: 1rem; }
.socials a>span { font-size: .875rem; }
.socials a:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer { padding-top: 56px; }
.footer-word { font-family: 'Manrope', Arial, sans-serif; font-size: clamp(3rem, 15.5vw, 14.5rem); line-height: 1.2; font-weight: 800; letter-spacing: -.085em; overflow: visible; }
.footer-bottom { font-size: .75rem; letter-spacing: .025em; }

/* Script-specific type stays comfortable within the same composition. */
html:not(:lang(en)) .hero h1 { font-size: clamp(2.7rem, 4.9vw, 5rem); }
html:not(:lang(en)) .hero-object .orbit-word { font-size: clamp(.875rem, 1.4vw, 1.5rem); }
html:not(:lang(en)) .carta-type { font-size: clamp(2.7rem, 4.1vw, 4rem); }
html:not(:lang(en)) .rotation-word { font-size: clamp(2.5rem, 3.7vw, 3.7rem); }
html:not(:lang(en)) .about h2 { font-size: clamp(2rem, 3.2vw, 3.3rem); }
html:not(:lang(en)) .contact h2 { font-size: clamp(2.7rem, 4.3vw, 4.5rem); }
html:lang(my) .accent-word, html:lang(my) .projects h2 .subtle, html:lang(my) .about h2 .subtle, html:lang(my) .contact h2>span:last-child, html:lang(my) .carta-type, html:lang(my) .rotation-word { font-family: 'Noto Sans Myanmar', 'Myanmar Text', sans-serif; font-style: normal; line-height: 1.7; letter-spacing: 0; }
html:lang(my) .hero h1 { font-size: clamp(1.9rem, 3.3vw, 3.4rem); line-height: 1.7; letter-spacing: 0; }
html:lang(my) .accent-word { font-size: 1em; }
html:lang(my) .hero-object .orbit-word { font-size: clamp(.65rem, 1vw, 1rem); line-height: 1.8; }
html:lang(my) .section-head h2, html:lang(my) .about h2, html:lang(my) .contact h2 { font-size: clamp(1.6rem, 2.5vw, 2.5rem); line-height: 1.7; letter-spacing: 0; }
html:lang(my) .project-art { min-height: 420px; }
html:lang(my) .carta-type, html:lang(my) .rotation-word { font-size: clamp(1.4rem, 2.4vw, 2.4rem); }
html:lang(my) .project h3 { font-family: 'Manrope', Arial, sans-serif; }
@media (hover: hover) and (pointer: fine) {
  .project-carta:hover { transform: translateY(-8px) rotate(-.5deg); }
  .project-rotation:hover { transform: translateY(44px) rotate(.5deg); }
}
@media (max-width: 1024px) {
  .projects.wrap { padding: 64px 28px 98px; gap: 30px; }
  .project-art { min-height: 340px; padding: 20px; }
  .project-info { padding: 25px; }
  .project h3 { font-size: 2.25rem; }
  .art-top span:last-child { max-width: 48%; }
  .about { gap: 40px; padding-block: 80px 60px; }
}
@media (max-width: 760px) {
  .hero-object .orbit-word { font-size: clamp(1.15rem, 4.5vw, 2rem); }
  .orbit-stage { aspect-ratio: 1; }
  .orbit-top, .orbit-bottom { font-size: .75rem; }
  .orbit-label { font-size: .8125rem; padding: 10px 12px; }
  .hero h1 { max-width: 100%; }
  .hero-meta { font-size: .75rem; line-height: 1.6; }
  .projects.wrap { grid-template-columns: 1fr; padding: 58px 24px 66px; gap: 30px; margin-top: 8px; }
  .projects .section-head { flex-direction: column; align-items: flex-start; gap: 20px; margin-bottom: 6px; }
  .section-head h2 { font-size: clamp(2.75rem, 9vw, 4.5rem); }
  .projects .section-head>p { max-width: 350px; }
  .project, .project-carta, .project-rotation, .project:hover { transform: none; box-shadow: 0 4px 16px #1d1d1f05; }
  .project-art { min-height: 340px; }
  .project-info { padding: 28px 24px; }
  .project h3 { font-size: 2.5rem; }
  .carta-type { font-size: clamp(4.6rem, 16vw, 7rem); top: 85px; }
  .rotation-word { font-size: clamp(3.2rem, 11vw, 5rem); }
  .preview-button { font-size: .8125rem; max-width: 100%; }
  .art-caption, .art-top { font-size: .75rem; }
  .about { grid-template-columns: 1fr; gap: 32px; padding-block: 64px 48px; }
  .about-label img { width: 60px; height: 60px; }
  .about h2 { font-size: clamp(2.2rem, 7.5vw, 3.8rem); }
  .contact { padding-top: 46px; }
  .contact h2 { font-size: clamp(2.7rem, 9.3vw, 4.5rem); }
  .contact-copy { max-width: 100%; }
  .footer-word { font-size: 15.5vw; }
  html:not(:lang(en)) .hero h1 { font-size: clamp(2.6rem, 9.4vw, 5rem); }
  html:not(:lang(en)) .hero-object .orbit-word { font-size: clamp(.875rem, 3vw, 1.5rem); }
  html:not(:lang(en)) .carta-type { font-size: clamp(2.6rem, 9.4vw, 4.6rem); top: 95px; }
  html:not(:lang(en)) .rotation-word { font-size: clamp(2.5rem, 9vw, 4.5rem); }
  html:not(:lang(en)) .about h2 { font-size: clamp(1.9rem, 6.8vw, 3.4rem); }
  html:not(:lang(en)) .contact h2 { font-size: clamp(2.25rem, 8vw, 4rem); }
  html:lang(my) .hero h1 { font-size: clamp(1.7rem, 6.5vw, 3rem); }
  html:lang(my) .hero-object .orbit-word { font-size: clamp(.65rem, 2.1vw, 1rem); }
  html:lang(my) .section-head h2, html:lang(my) .about h2, html:lang(my) .contact h2 { font-size: clamp(1.4rem, 4.8vw, 2.4rem); }
  html:lang(my) .carta-type, html:lang(my) .rotation-word { font-size: clamp(1.25rem, 4.5vw, 2.3rem); }
  html:lang(my) .project-art { min-height: 420px; }
}
@media (max-width: 380px) {
  .projects.wrap { padding-inline: 16px; }
  .project-info { padding: 26px 20px; }
  .project-art { padding: 18px; min-height: 330px; }
  .art-top { font-size: .75rem; gap: 12px; }
  .art-caption { font-size: .75rem; }
  .carta-type { left: 24px; }
  .orbit-top { font-size: .75rem; }
  .orbit-bottom { gap: 4px 12px; }
  .orbit-bottom>span { font-size: .75rem; }
  .hero-meta { font-size: .75rem; }
  .hero-foot { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-object { animation: none; }
  .project, .project-carta, .project-rotation, .project:hover { transform: none; }
}
@supports (animation-timeline: view()) {
  @media (min-width: 761px) and (prefers-reduced-motion: no-preference) {
    .project { animation: paper-arrive ease-out both; animation-timeline: view(); animation-range: entry 0% entry 90%; }
    .motion-paused .project { animation: none; }
    .project:focus-within { animation: none; transform: none; }
  }
  @media (min-width: 761px) and (hover: hover) and (pointer: fine) {
    .project:hover { animation: none; }
  }
}
@keyframes paper-arrive {
  from { transform: translateY(calc(var(--card-offset) + 70px)) rotateX(9deg) rotateZ(calc(var(--card-angle) * 2)); }
  to { transform: translateY(var(--card-offset)) rotateX(0deg) rotateZ(var(--card-angle)); }
}

/* Color is reserved for each project identity. */
.project-carta .project-dot { color: var(--carta-accent); }
.project-rotation .project-dot { color: var(--rotation-accent); }
.carta-bars>span:nth-child(3) { background: var(--carta-accent); border-color: var(--carta-accent); }
