    :root {
      --bg: #f4f6f6;
      --surface: #ffffff;
      --ink: #151515;
      --muted: #777777;
      --line: #d8d8d8;
      --soft: #f0f1f1;
      --blue: #4b23ff;
      --blue-dark: #2200d8;
      --yellow: #ffe04f;
      --orange: #f7a326;
      --cream: #f7f0df;
      --radius: 8px;
    }

    html.dark-mode {
      --bg: #101112;
      --surface: #17191b;
      --ink: #f3f3f0;
      --muted: #a3a3a3;
      --line: #303236;
      --soft: #222428;
      --cream: #2a261e;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    html.is-loading {
      background: #4B23FF;
    }

    html.is-loading body {
      overflow: hidden;
    }

    html.is-loading:not(.is-revealing) body > .behance-bar,
    html.is-loading:not(.is-revealing) body > .page-shell {
      opacity: 0;
      transform: translateY(14px) scale(0.992);
    }

    html.is-ready body > .behance-bar,
    html.is-ready body > .page-shell {
      transition:
        opacity 0.95s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.95s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }

    html.is-loading.is-revealing body > .behance-bar,
    html.is-loading.is-revealing body > .page-shell {
      opacity: 1;
      transform: translateY(0) scale(1);
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--bg);
      font-family: Arial, "Microsoft YaHei", sans-serif;
      letter-spacing: 0;
    }

    body.lock-personal-scroll {
      overflow: hidden;
    }

    body.lock-skill-scroll,
    body.lock-project-scroll,
    body.lock-campus-scroll {
      overflow: hidden;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    .behance-bar {
      position: sticky;
      top: 0;
      z-index: 26;
      display: grid;
      grid-template-columns: 72px 1fr 72px;
      align-items: center;
      min-height: 72px;
      padding: 8px 20px;
      border-bottom: 0;
      background: rgba(244, 246, 246, 0.82);
      backdrop-filter: blur(14px);
      font-size: 13px;
    }

    html.dark-mode .behance-bar {
      background: rgba(16, 17, 18, 0.86);
      border-color: var(--line);
    }

    .be-logo {
      display: grid;
      place-items: center;
      width: 54px;
      height: 54px;
      border-radius: 16px;
      background: #8c8c8c;
      color: #ffffff;
      font-weight: 900;
      line-height: 1;
    }

    .logo-mark {
      width: 34px;
      height: 34px;
    }

    .logo-mark path {
      fill: none;
      stroke: currentColor;
      stroke-width: 8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .be-nav {
      display: flex;
      grid-column: 2;
      justify-self: center;
      align-items: center;
      justify-content: center;
      gap: 0;
      width: min(980px, 62vw);
      min-height: 50px;
      padding: 6px;
      border: 1px solid rgba(255, 255, 255, 0.32);
      border-radius: 20px;
      background: #8c8c8c;
      color: #ffffff;
      box-shadow: 0 16px 52px rgba(0, 0, 0, 0.12);
      font-weight: 800;
    }

    .nav-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 1;
      min-height: 38px;
      padding: 0 16px;
      border: 0;
      border-radius: 13px;
      background: transparent;
      color: rgba(255, 255, 255, 0.9);
      transition: color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
    }

    .nav-link:hover,
    .nav-link.is-active {
      color: #ffffff;
      background: rgba(255, 255, 255, 0.14);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
      transform: translateY(-1px);
    }

    .nav-link.is-active {
      background: var(--blue);
    }

    .be-actions {
      display: flex;
      grid-column: 3;
      justify-self: end;
      align-items: center;
    }

    .mail-button {
      position: relative;
      display: grid;
      place-items: center;
      width: 54px;
      height: 54px;
      border: 0;
      border-radius: 16px;
      background: #8c8c8c;
      color: #ffffff;
      cursor: pointer;
      transition: transform 160ms ease, background 160ms ease;
    }

    .mail-button:hover {
      transform: translateY(-2px);
      background: var(--blue);
    }

    .mail-icon {
      width: 26px;
      height: 26px;
    }

    .mail-icon path {
      fill: none;
      stroke: currentColor;
      stroke-width: 2.25;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .button {
      display: none;
      align-items: center;
      justify-content: center;
      min-height: 32px;
      padding: 0 14px;
      border-radius: 999px;
      border: 1px solid var(--blue);
      background: var(--blue);
      color: #ffffff;
      font-size: 12px;
      font-weight: 800;
    }

    .page-shell {
      position: relative;
      width: min(100%, 1920px);
      margin: 0 auto;
      padding: 10px clamp(56px, 5vw, 64px) 40px clamp(18px, 4vw, 64px);
    }

    .project-frame {
      position: relative;
      max-width: 1740px;
      margin: 0 auto;
    }

    .toc-btn-container {
      position: absolute;
      top: 0;
      bottom: 0;
      right: -52px;
      width: 44px;
      pointer-events: none;
      z-index: 40;
    }

    .toc-back-btn {
      position: sticky;
      top: 50vh;
      margin-top: -22px;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--blue);
      border: 0;
      color: #ffffff;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 12px rgba(75, 35, 255, 0.3);
      cursor: pointer;
      pointer-events: auto;
      opacity: 0;
      transform: scale(0.8);
      transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.2s, box-shadow 0.2s;
    }

    .toc-back-btn.is-visible {
      opacity: 1;
      transform: scale(1);
    }

    .toc-back-btn:hover {
      background: var(--blue-dark);
      box-shadow: 0 6px 16px rgba(75, 35, 255, 0.4);
      transform: scale(1.05);
    }

    html.dark-mode .toc-back-btn:hover {
      background: var(--blue-dark);
    }

    .toc-back-btn svg {
      width: 20px;
      height: 20px;
      stroke-width: 2.5;
    }

    .tab-panel {
      display: none;
      min-height: calc(100vh - 180px);
      animation: panelIn 260ms ease both;
    }

    .tab-panel.is-active {
      display: block;
    }

    body.lock-skill-scroll .page-shell {
      height: calc(100vh - 72px);
      padding-bottom: 0;
      overflow: hidden;
    }

    body.lock-skill-scroll .project-frame {
      height: 100%;
    }

    body.lock-skill-scroll #skills {
      height: 100%;
      min-height: 0;
      overflow: hidden;
    }

    body.lock-skill-scroll .footer {
      display: none;
    }

    body.lock-project-scroll .page-shell {
      height: calc(100vh - 72px);
      padding-bottom: 0;
      overflow: hidden;
    }

    body.lock-campus-scroll .page-shell {
      height: calc(100vh - 72px);
      padding-top: 0;
      padding-bottom: 28px;
      overflow: hidden;
    }

    body.lock-campus-scroll .project-frame,
    body.lock-campus-scroll #campus {
      height: 100%;
      min-height: 0;
      overflow: hidden;
    }

    body.lock-campus-scroll .footer {
      display: none;
    }

    body.lock-project-scroll .project-frame,
    body.lock-project-scroll #project {
      height: 100%;
      min-height: 0;
      overflow: hidden;
    }

    body.lock-project-scroll .footer {
      display: none;
    }

    .personal-shell {
      height: calc(100vh - 82px);
      overflow: hidden;
      padding-top: 12px;
    }

    .personal-shell.is-scrollable {
      overflow-y: auto;
      overscroll-behavior: contain;
      -webkit-overflow-scrolling: touch;
    }

    .personal-subnav {
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      gap: 20px;
      margin-bottom: 16px;
      padding-bottom: 0;
      border-bottom: 1px solid #1d1d1d;
    }

    .personal-mark {
      display: grid;
      place-items: center;
      width: 50px;
      height: 50px;
      align-self: start;
      border-radius: 50%;
      background: #1d1d1d;
      color: #ffffff;
      font-weight: 900;
    }

    .doc-mark {
      width: 25px;
      height: 25px;
    }

    .doc-mark path,
    .doc-mark polyline,
    .doc-mark line {
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .personal-tabs {
      display: flex;
      align-items: center;
      gap: 58px;
    }

    .personal-tab {
      position: relative;
      border: 0;
      background: transparent;
      color: #1d1d1d;
      font: inherit;
      font-size: clamp(22px, 2vw, 30px);
      line-height: 1;
      width: max-content;
      padding: 0 0 18px;
      text-align: left;
      cursor: pointer;
    }

    .personal-tab::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -3px;
      height: 5px;
      border-radius: 999px;
      background: transparent;
    }

    .personal-tab.is-active::after {
      background: #111111;
    }

    .personal-subpanel {
      display: none;
      animation: panelIn 220ms ease both;
    }

    .personal-subpanel.is-active {
      display: block;
    }

    .personal-detail-page {
      min-height: calc(100vh - 180px);
      padding: 60px 0 20px;
    }

    .personal-page-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr);
      gap: 18px;
      align-items: stretch;
      margin-bottom: 24px;
    }

    .personal-page-title,
    .personal-page-note,
    .personal-timeline-card,
    .personal-focus-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #ffffff;
    }

    .personal-page-title {
      min-height: 190px;
      padding: 24px;
    }

    .personal-page-title h2 {
      margin: 0;
      color: #111111;
      font-size: clamp(48px, 6vw, 96px);
      line-height: 0.92;
      letter-spacing: 0;
    }

    .personal-page-title p {
      max-width: 760px;
      margin: 18px 0 0;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.75;
    }

    .personal-page-note {
      display: grid;
      align-content: end;
      min-height: 190px;
      padding: 18px;
      background: #111111;
      color: #ffffff;
    }

    .personal-page-note strong {
      white-space: nowrap;
      font-size: clamp(28px, 3vw, 44px);
      line-height: 1.1;
    }

    .personal-page-note span {
      margin-top: 12px;
      border-top: 2px solid currentColor;
      padding-top: 10px;
      font-size: 13px;
      font-weight: 800;
    }

    .personal-page-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr);
      gap: 18px;
      align-items: stretch;
    }

    .personal-timeline-card {
      padding: 24px;
    }

    .personal-timeline-card h3,
    .personal-focus-card h3 {
      margin: 0 0 16px;
      font-size: 30px;
      line-height: 1;
    }

    .personal-timeline-list {
      display: grid;
      gap: 14px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .personal-timeline-list li {
      display: grid;
      grid-template-columns: 120px minmax(0, 1fr);
      gap: 18px;
      align-items: center;
      border-top: 1px solid var(--line);
      padding-top: 14px;
    }

    .personal-timeline-list time {
      color: #111111;
      font-size: 13px;
      font-weight: 900;
    }

    .personal-timeline-list strong {
      display: block;
      margin-bottom: 6px;
      color: #111111;
      font-size: 18px;
      line-height: 1.5;
    }

    .personal-timeline-list p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }

    .personal-focus-card {
      display: flex;
      flex-direction: column;
      padding: 20px;
      height: 100%;
      overflow: hidden;
    }

    .personal-focus-list {
      position: relative;
      flex: 1;
      min-height: 200px;
    }

    .personal-focus-list span {
      position: absolute;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 8px 16px;
      border: 2px solid #111111;
      color: #111111;
      font-weight: 900;
      letter-spacing: 0.5px;
      transform: rotate(calc(var(--rotate, 0deg)));
      box-shadow: 3px 3px 0 #111111;
      white-space: nowrap;
    }

    .experience-layout {
      position: relative;
      min-height: calc(100vh - 180px);
      padding: 24px 12px 0;
      color: #0c0c0c;
    }

    .experience-hero {
      padding-right: 86px;
    }

    .experience-hero h2 {
      margin: 0;
      color: #000000;
      font-size: clamp(56px, 5.2vw, 88px);
      font-weight: 900;
      line-height: 0.9;
      letter-spacing: 0;
    }

    .experience-hero p {
      max-width: 1040px;
      margin: 18px 0 0;
      color: #111111;
      font-size: clamp(17px, 1.35vw, 24px);
      line-height: 1.35;
      letter-spacing: 0;
    }

    .experience-down,
    .experience-card-toggle {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 2px solid #111111;
      border-radius: 50%;
      background: transparent;
      color: #111111;
    }

    .experience-down {
      position: absolute;
      top: 28px;
      right: 10px;
      width: 58px;
      height: 58px;
    }

    .experience-down svg,
    .experience-card-toggle svg {
      width: 58%;
      height: 58%;
      stroke-width: 3.5;
    }

    .experience-list {
      display: grid;
      gap: 16px;
      margin: 60px 0 0;
    }

    .experience-card {
      display: grid;
      grid-template-columns: 180px minmax(0, 1fr) 66px;
      grid-template-rows: minmax(88px, auto);
      gap: 36px;
      align-items: center;
      min-height: 140px;
      padding: 24px 42px;
      border: 2px solid #111111;
      border-radius: 24px;
      background: rgba(255, 255, 255, 0.56);
      transition: background 180ms ease, box-shadow 180ms ease;
    }

    .experience-card.is-open {
      grid-template-rows: minmax(72px, auto) auto;
      background: #ffffff;
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.08);
    }

    .experience-card .experience-year,
    .experience-card > div:not(.experience-card-detail),
    .experience-card .experience-card-toggle {
      align-self: center;
    }

    .experience-year {
      justify-self: start;
      display: inline-flex;
      align-items: center;
      min-height: 38px;
      padding: 0 14px;
      border-radius: 999px;
      background: linear-gradient(135deg, #5619ff 0%, #2900d9 100%);
      color: #ffffff;
      font-size: clamp(12px, 1vw, 16px);
      font-weight: 800;
      line-height: 1;
      white-space: nowrap;
    }

    .experience-card h3 {
      margin: 0;
      color: #080808;
      font-size: clamp(24px, 2vw, 32px);
      font-weight: 900;
      line-height: 1.1;
      letter-spacing: 0;
    }

    .experience-card .experience-place {
      margin: 6px 0 14px;
      color: #111111;
      font-size: clamp(20px, 1.6vw, 27px);
      line-height: 1.12;
    }

    .experience-card p {
      margin: 0;
      color: #1d1d1d;
      font-size: clamp(15px, 1.15vw, 20px);
      line-height: 1.45;
    }

    .experience-card-toggle {
      justify-self: center;
      width: 48px;
      height: 48px;
      cursor: pointer;
      transition: background 180ms ease, color 180ms ease, transform 180ms ease;
    }

    .experience-card-toggle:hover,
    .experience-card-toggle:focus-visible {
      background: #111111;
      color: #ffffff;
      outline: none;
    }

    .experience-card-toggle svg {
      transition: transform 180ms ease;
    }

    .experience-card.is-open .experience-card-toggle svg {
      transform: rotate(180deg);
    }

    .experience-card-detail {
      grid-column: 1 / -1;
      display: grid;
      gap: 20px;
      max-height: 0;
      margin-top: -36px;
      overflow: hidden;
      opacity: 0;
      border-top: 1px solid transparent;
      transition: max-height 260ms ease, margin-top 260ms ease, opacity 180ms ease, border-color 180ms ease;
    }

    .experience-card-detail[hidden] {
      display: none;
    }

    .experience-card.is-open .experience-card-detail {
      margin-top: 0;
      padding-top: 24px;
      opacity: 1;
      border-color: #111111;
    }

    .experience-detail-points {
      display: grid;
      gap: 12px;
      margin: 0;
      padding: 0;
      list-style: none;
      color: #202020;
      font-size: clamp(15px, 1.05vw, 18px);
      line-height: 1.65;
    }

    .experience-detail-points li {
      position: relative;
      padding-left: 28px;
    }

    .experience-detail-points li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.825em;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: linear-gradient(135deg, #5619ff 0%, #2900d9 100%);
      transform: translateY(-50%);
    }

    .experience-detail-media {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .experience-detail-media img {
      width: 100%;
      aspect-ratio: 16 / 9;
      object-fit: cover;
      border: 2px solid #111111;
      border-radius: 18px;
      background: #f2f2f2;
    }

    .experience-detail-media--contain img {
      aspect-ratio: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      display: block;
      background: transparent;
    }

    .experience-detail-media--portrait {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      align-items: start;
    }

    .experience-detail-media--portrait img {
      aspect-ratio: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      display: block;
      background: transparent;
    }

    .experience-detail-media--photo {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .experience-detail-media--photo img {
      aspect-ratio: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      display: block;
      background: transparent;
    }

    .experience-focus {
      display: grid;
      grid-template-columns: 130px auto minmax(160px, 1fr);
      gap: 36px;
      align-items: center;
      margin: 0 6px;
    }

    .experience-focus-line {
      height: 2px;
      background: #111111;
    }

    .experience-focus h3 {
      margin: 0;
      color: #0c0c0c;
      font-size: clamp(22px, 1.8vw, 30px);
      line-height: 1;
      white-space: nowrap;
    }

    .experience-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 18px;
      margin: 22px 0 0 168px;
    }

    .experience-tags span {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
      padding: 0 24px;
      border-radius: 999px;
      background: linear-gradient(135deg, #5619ff 0%, #2900d9 100%);
      color: #ffffff;
      font-size: clamp(16px, 1.25vw, 21px);
      line-height: 1;
      white-space: nowrap;
    }

    .aboutme-grid {
      display: grid;
      grid-template-columns: minmax(420px, 0.72fr) minmax(0, 1.28fr);
      gap: 48px;
      align-items: stretch;
      height: calc(100vh - 180px);
    }

    .about-photo {
      position: relative;
      height: 100%;
      min-height: 0;
      overflow: hidden;
      border-radius: 34px;
      background: #000000;
      color: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.12);
    }

    .about-spline {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      background: #000000;
    }

    .about-name {
      --name-x: 46%;
      --name-y: 44%;
      position: absolute;
      left: clamp(36px, 2.8vw, 56px);
      top: 20px;
      z-index: 2;
      display: inline-block;
      max-width: min(660px, calc(100% - 112px));
      color: #ffffff;
      font-size: clamp(54px, 5vw, 92px);
      font-weight: 500;
      line-height: 1.04;
      text-shadow: 0 6px 22px rgba(0, 0, 0, 0.45);
      cursor: default;
      isolation: isolate;
    }

    .name-original {
      position: relative;
      z-index: 1;
      display: block;
    }

    .about-name small {
      display: block;
      margin-bottom: 8px;
      font-size: clamp(22px, 1.8vw, 34px);
      line-height: 1;
    }

    .name-translation {
      position: absolute;
      inset: 0;
      z-index: 4;
      display: block;
      color: #000000;
      font-size: inherit;
      font-weight: inherit;
      line-height: inherit;
      text-shadow: none;
      opacity: 0;
      clip-path: circle(0 at var(--name-x) var(--name-y));
      transition: opacity 140ms ease;
      pointer-events: none;
      will-change: clip-path, opacity;
    }

    .name-translation span {
      position: relative;
      z-index: 1;
      display: block;
      white-space: nowrap;
    }

    .name-translation .translation-wrap {
      position: relative;
      display: inline-block;
      overflow: visible;
    }

    .name-translation .translation-line {
      display: block;
    }

    .name-translation .translation-spacer {
      color: transparent;
      text-shadow: none;
    }

    .name-tomato {
      position: absolute;
      left: min(92%, 430px);
      top: 44px;
      z-index: 3;
      display: block;
      width: clamp(62px, 6vw, 86px);
      height: clamp(62px, 6vw, 86px);
      object-fit: contain;
      transform: rotate(45deg);
      transform-origin: center;
      opacity: 1;
      pointer-events: none;
    }

    .about-name::after {
      content: "";
      position: absolute;
      left: var(--name-x);
      top: var(--name-y);
      z-index: 2;
      width: clamp(112px, 9vw, 138px);
      height: clamp(112px, 9vw, 138px);
      border-radius: 50%;
      background: #ffffff;
      box-shadow: 0 16px 42px rgba(0, 0, 0, 0.34), inset 0 0 0 1px rgba(0, 0, 0, 0.08);
      opacity: 0;
      transform: translate(-50%, -50%) scale(0.72);
      transition: opacity 140ms ease, transform 140ms ease;
      pointer-events: none;
      will-change: left, top, transform, opacity;
    }

    .about-name:hover .name-translation,
    .about-name:focus-visible .name-translation {
      opacity: 1;
      clip-path: circle(clamp(56px, 4.5vw, 69px) at var(--name-x) var(--name-y));
    }

    .about-name:hover::after,
    .about-name:focus-visible::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1);
    }

    .spline-hint {
      position: absolute;
      left: 28px;
      bottom: 24px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      padding: 0 16px;
      border: 1px solid rgba(255, 255, 255, 0.22);
      border-radius: 999px;
      background: rgba(0, 0, 0, 0.48);
      color: rgba(255, 255, 255, 0.84);
      font-size: 13px;
      backdrop-filter: blur(10px);
      pointer-events: none;
    }

    .spline-logo-mask {
      position: absolute;
      right: 0;
      bottom: 0;
      z-index: 8;
      width: 224px;
      height: 72px;
      border-radius: 999px;
      background: #000000;
      pointer-events: auto;
      cursor: default;
    }

    .about-photo h2 {
      position: absolute;
      left: 42px;
      top: 32px;
      margin: 0;
      font-size: clamp(52px, 5.1vw, 88px);
      line-height: 1.12;
      font-weight: 500;
    }

    .about-photo p {
      position: absolute;
      right: 36px;
      bottom: 30px;
      max-width: 430px;
      margin: 0;
      color: #f2f2f2;
      text-align: right;
      line-height: 1.45;
    }

    .about-content {
      display: grid;
      grid-template-rows: auto auto 1fr auto auto;
      align-content: stretch;
      gap: 16px;
      height: 100%;
      min-height: 0;
    }

    .about-divider {
      align-self: end;
      width: 100%;
      height: 1px;
      margin: 0 auto 18px;
      background: #1d1d1d;
    }

    .about-divider + h2 {
      margin-top: 0;
    }

    .about-content h2 {
      margin: 0;
      font-size: clamp(34px, 3vw, 52px);
      line-height: 1;
    }

    .intro-box {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(170px, 190px);
      grid-template-rows: auto auto;
      gap: 24px 18px;
      align-items: center;
      padding: 26px 32px 46px;
      border: 1.5px solid #1d1d1d;
      border-radius: 32px;
      background: #f9f9f7;
      overflow: hidden;
    }

    .intro-box h3 {
      grid-column: 1 / -1;
      margin: 0;
      font-size: clamp(20px, 1.5vw, 29px);
      line-height: 1.18;
      text-align: center;
    }

    .intro-box h3 span {
      display: block;
    }

    .intro-box h3 .title-subline {
      margin-top: 8px;
      font-size: 0.72em;
      line-height: 1.25;
    }

    .intro-text {
      display: grid;
      align-self: center;
      align-content: center;
      width: min(100%, 780px);
      min-width: 0;
      transform: translateY(-20px);
    }

    .intro-box p {
      margin: 0;
      color: #333333;
      font-size: clamp(13px, 0.82vw, 15px);
      line-height: 1.8;
      text-align: justify;
      text-align-last: left;
    }

    .intro-lines {
      display: block;
    }

    .intro-lines span {
      display: block;
      max-width: 100%;
    }

    .intro-illustration {
      justify-self: end;
      align-self: center;
      display: block;
      width: min(100%, 190px);
      aspect-ratio: 1 / 1;
      height: auto;
      border-radius: 22px;
      object-fit: cover;
      transform: translateY(-20px);
    }

    .contact-tile-grid {
      position: relative;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      align-self: end;
      margin-top: clamp(82px, 11vh, 150px);
      padding-top: 28px;
    }

    .contact-tile {
      appearance: none;
      width: 100%;
      min-height: 112px;
      padding: 16px;
      border: 1.5px solid #1d1d1d;
      border-radius: 22px;
      background: #f9f9f7;
      color: #1d1d1d;
      cursor: pointer;
      text-align: left;
      box-shadow: 0 0 0 rgba(29, 29, 29, 0);
      transform: translateY(0);
      transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
    }

    .contact-copy-note {
      position: absolute;
      top: 0;
      left: 0;
      font-size: 13px;
      line-height: 1.2;
      font-weight: 500;
      opacity: 0.82;
      letter-spacing: 0.01em;
      white-space: nowrap;
    }

    .contact-tile.dark {
      background: #231f20;
      color: #ffffff;
    }

    .contact-tile.blue {
      background: var(--blue);
      color: #ffffff;
      border-color: var(--blue);
    }

    .contact-tile strong {
      display: block;
      margin-bottom: 20px;
      font-size: 32px;
      line-height: 0.9;
      transition: transform 0.22s ease;
    }

    .contact-tile span {
      display: block;
      padding-top: 14px;
      border-top: 2px solid currentColor;
      text-align: center;
      transition: transform 0.22s ease;
    }

    .contact-tile:hover {
      transform: translateY(-6px);
      box-shadow: 0 14px 30px rgba(29, 29, 29, 0.14);
    }

    .contact-tile:hover strong {
      transform: translateX(4px);
    }

    .contact-tile:hover span {
      transform: translateY(2px);
    }

    .contact-tile:focus-visible {
      outline: 2px solid var(--blue);
      outline-offset: 3px;
    }

    .copy-toast {
      position: absolute;
      top: 0;
      right: 0;
      z-index: 2;
      color: #1d1d1d;
      font-size: 13px;
      line-height: 1.2;
      pointer-events: none;
      white-space: nowrap;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.22s ease, transform 0.22s ease;
    }

    .copy-toast.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    @keyframes panelIn {
      from {
        opacity: 0;
        transform: translateY(16px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .tab-intro {
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
      gap: clamp(28px, 8vw, 140px);
      align-items: start;
      min-height: 360px;
      padding: clamp(60px, 10vw, 140px) 0 clamp(36px, 6vw, 80px);
    }

    .tab-intro h1 {
      margin: 0;
      font-size: clamp(68px, 7.2vw, 112px);
      line-height: 0.98;
      letter-spacing: 0;
      font-weight: 500;
    }

    .tab-intro h1 span {
      display: block;
      font-size: clamp(42px, 4.4vw, 62px);
      color: #c8c8c8;
    }

    .tab-intro p {
      margin: 8px 0 0;
      color: #999999;
      font-size: clamp(18px, 1.5vw, 24px);
      line-height: 1.45;
    }

    .internship-stage {
      display: grid;
      gap: 22px;
      margin: -10px clamp(-64px, -4vw, -18px) 0;
    }

    .internship-hero {
      position: relative;
      min-height: calc(100vh - 92px);
      overflow: hidden;
      display: grid;
      grid-template-rows: 1fr;
      padding: clamp(84px, 11vh, 128px) clamp(28px, 5vw, 92px) 34px;
      border-radius: 0 0 8px 8px;
      background:
        url("../Sucai/Shxi/Fengmian/1.webp") center / cover no-repeat,
        #f4f6f6;
      color: var(--ink);
    }

    .internship-company-mark {
      display: none;
    }

    .internship-hero-copy {
      align-self: end;
      max-width: min(760px, 54vw);
      position: relative;
      z-index: 1;
      padding-bottom: clamp(86px, 12vh, 130px);
    }

    .internship-kicker {
      margin: 0 0 20px;
      color: #9a9a9a;
      font-size: clamp(17px, 1.25vw, 22px);
      font-weight: 800;
      text-transform: uppercase;
    }

    .internship-hero h1 {
      margin: 0;
      max-width: 100%;
      font-size: clamp(36px, 3.05vw, 52px);
      line-height: 1.08;
      font-weight: 500;
      white-space: nowrap;
    }

    .internship-hero h1 span {
      display: block;
      margin-top: 8px;
      color: #a0a0a0;
      font-size: clamp(24px, 1.95vw, 33px);
      font-weight: 400;
    }

    .internship-role-divider {
      display: inline-block;
      margin-right: 0.18em;
    }

    .internship-date {
      margin: 22px 0 0;
      color: #9a9a9a;
      font-size: clamp(15px, 1.05vw, 19px);
      font-weight: 800;
      letter-spacing: 0;
    }

    .internship-company-panel {
      position: absolute;
      right: clamp(28px, 5vw, 92px);
      bottom: clamp(78px, 9vh, 112px);
      z-index: 1;
      width: min(500px, 34vw);
      color: #8d8d8d;
      font-size: clamp(12px, 0.82vw, 15px);
      line-height: 1.82;
    }

    .internship-company-panel p {
      margin: 0;
      text-align: justify;
      text-justify: inter-ideograph;
      text-wrap: pretty;
    }

    .internship-company-panel p + p {
      margin-top: 16px;
    }

    .internship-highlight {
      display: inline-block;
      font-weight: 700;
      color: #5131ff;
      background: linear-gradient(135deg, #4d2cff 0%, #6f5dff 52%, #4fc3ff 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .internship-scroll-cue {
      position: absolute;
      left: 50%;
      bottom: 30px;
      transform: translateX(-50%);
      color: #9a9a9a;
      font-size: 15px;
      font-weight: 800;
    }

    .internship-projects {
      padding: calc(clamp(24px, 3vw, 34px) + 8px) clamp(18px, 4vw, 64px) clamp(18px, 3vw, 28px);
    }

    .internship-project-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 20px;
    }

    .internship-project-card {
      position: relative;
      min-height: 0;
      aspect-ratio: 0.8;
      overflow: hidden;
      border-radius: 8px;
      background: #d8d8d4;
      color: #ffffff;
      transform: translateY(0) scale(1);
      transition: transform 220ms ease, box-shadow 220ms ease;
      will-change: transform;
    }

    .internship-project-card:hover,
    .internship-project-card:focus-visible {
      transform: translateY(-6px) scale(1.018);
    }

    .internship-project-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0) 32%, rgba(0, 0, 0, 0.28));
      z-index: 1;
    }

    .internship-project-card::after {
      content: "";
      position: absolute;
      inset: 0;
      opacity: 0.92;
      transition: transform 420ms ease, filter 420ms ease;
    }

    .internship-project-card:hover::after {
      transform: scale(1.04);
      filter: saturate(1.04) contrast(1.02);
    }

    .internship-project-card.wide {
      grid-column: span 1;
    }

    .internship-project-card.tall {
      min-height: 0;
    }

    .internship-project-card.is-brand::after {
      background:
        radial-gradient(circle at 50% 45%, rgba(255, 255, 255, 0.86) 0 12%, transparent 12.5%),
        linear-gradient(90deg, transparent 0 42%, rgba(255, 255, 255, 0.95) 42% 45%, transparent 45%),
        linear-gradient(130deg, rgba(40, 40, 40, 0.18), rgba(255, 255, 255, 0.18)),
        #d6d5d1;
    }

    .internship-project-card.is-campaign::after {
      background:
        linear-gradient(90deg, rgba(22, 22, 22, 0.9) 0 7%, transparent 7% 93%, rgba(22, 22, 22, 0.88) 93%),
        radial-gradient(circle at 44% 54%, #4b2b23 0 10%, transparent 10.5%),
        radial-gradient(circle at 58% 54%, #2e1a17 0 10%, transparent 10.5%),
        linear-gradient(#f5f1e9, #c7c1b8);
    }

    .internship-project-card.is-web::after {
      background:
        linear-gradient(18deg, transparent 0 39%, #111111 39% 41%, transparent 41%),
        linear-gradient(164deg, transparent 0 44%, rgba(20, 20, 20, 0.86) 44% 58%, transparent 58%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0 18px, rgba(210, 210, 210, 0.82) 18px 21px),
        #dedbd3;
    }

    .internship-project-card.is-social::after {
      background:
        radial-gradient(circle at 68% 28%, rgba(105, 72, 55, 0.78) 0 20%, transparent 20.5%),
        radial-gradient(circle at 54% 54%, #f1eee8 0 19%, transparent 19.5%),
        linear-gradient(145deg, #b69072, #efe6d8 55%, #a4755e);
    }

    .internship-project-card.is-mobile::after {
      background:
        linear-gradient(82deg, transparent 0 34%, rgba(20, 20, 20, 0.96) 34% 46%, transparent 46%),
        linear-gradient(#ece7d8, #b9b4aa);
    }

    .internship-project-card.is-system::after {
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.78) 0 1px, transparent 1px) 0 0 / 54px 54px,
        linear-gradient(rgba(255, 255, 255, 0.78) 0 1px, transparent 1px) 0 0 / 54px 54px,
        linear-gradient(145deg, #eceae3, #b7b4ac);
    }

    .internship-project-card.is-motion::after {
      background:
        radial-gradient(circle at 60% 35%, #111111 0 25%, transparent 25.5%),
        linear-gradient(120deg, #eae6dc, #a49f96);
    }

    .internship-project-card.has-photo::after {
      background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.04) 34%, rgba(0, 0, 0, 0.3)),
        var(--card-image) var(--card-position, center) / var(--card-size, cover) no-repeat,
        #f4f4f4;
    }

    .internship-project-card.has-runtime-photo::after {
      background: transparent;
      opacity: 1;
    }

    .internship-project-card.clean-photo {
      background: #ffffff;
    }

    .internship-project-card.clean-photo::before {
      background: transparent;
    }

    .internship-project-card.clean-photo::after {
      opacity: 1;
      background:
        var(--card-image) var(--card-position, center) / var(--card-size, contain) no-repeat,
        #ffffff;
    }

    .internship-card-head {
      position: relative;
      z-index: 2;
      display: flex;
      justify-content: space-between;
      gap: 16px;
      padding: 24px;
      font-size: 15px;
      font-weight: 800;
    }

    .internship-card-head h2 {
      margin: 0;
      max-width: 76%;
      font-size: clamp(22px, 2.1vw, 34px);
      line-height: 1.05;
      font-weight: 500;
    }

    .internship-card-head span {
      color: rgba(255, 255, 255, 0.76);
      white-space: nowrap;
    }

    .internship-card-foot {
      position: absolute;
      left: 24px;
      right: 24px;
      bottom: 22px;
      z-index: 2;
      display: flex;
      align-items: end;
      justify-content: flex-end;
      gap: 18px;
      color: rgba(255, 255, 255, 0.78);
      font-size: 13px;
      line-height: 1.45;
    }

    .internship-card-foot p {
      display: none;
    }

    .internship-card-icon {
      flex: 0 0 auto;
      width: 42px;
      height: 42px;
      background:
        radial-gradient(circle, #ffffff 0 2px, transparent 2.5px) 0 0 / 9px 9px;
    }

    .metric-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .metric-card {
      min-height: 190px;
      padding: 28px;
      border: 1px solid var(--line);
      border-radius: 20px;
      background: rgba(255, 255, 255, 0.42);
    }

    .metric-card strong {
      display: block;
      color: #d7d7d7;
      font-size: clamp(58px, 8vw, 118px);
      line-height: 0.9;
      font-weight: 500;
    }

    .metric-card span {
      display: block;
      margin-top: 28px;
      color: #999999;
      font-weight: 800;
    }

    .skill-board {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }

    .skill-card {
      min-height: 220px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: 20px;
      background: #ffffff;
    }

    html.dark-mode .skill-card,
    html.dark-mode .metric-card {
      background: var(--surface);
    }

    .skill-card h3 {
      margin: 0 0 52px;
      font-size: 24px;
    }

    .skill-card p {
      margin: 0;
      color: var(--muted);
      line-height: 1.6;
    }

    .project-files-scene {
      --folder-paper: #F5F5F4;
      --folder-warm: #F5F5F4;
      --folder-line: rgba(15, 15, 15, 0.68);
      position: relative;
      display: grid;
      place-items: center;
      height: 100%;
      min-height: 0;
      padding: 0;
      overflow: hidden;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      background:
        radial-gradient(circle at 52% 38%, rgba(255, 255, 255, 0.78), transparent 34%),
        linear-gradient(180deg, #f7f8f8 0%, #f2f4f4 100%);
      color: var(--ink);
    }

    .project-files-scene::before {
      display: none;
    }

    .project-files-title {
      display: none;
    }

    .project-files-title strong {
      font-size: clamp(24px, 3.2vw, 58px);
      line-height: 0.95;
      font-weight: 900;
    }

    .project-files-title span {
      max-width: 360px;
      color: #858585;
      font-size: clamp(11px, 1vw, 15px);
      line-height: 1.45;
    }

    .project-folder-stack {
      position: relative;
      width: min(72vw, 1420px);
      height: 100%;
      min-width: 300px;
      transform: none;
    }

    .project-folder {
      --row: 0;
      --x: 50%;
      --w: 92%;
      --tone: var(--folder-paper);
      position: absolute;
      left: 50%;
      bottom: calc(-3% + (var(--row) * 13.4%));
      z-index: calc(40 - var(--row));
      width: 100%;
      height: min(54%, 430px);
      padding: 0;
      border: 1px solid var(--folder-line);
      border-radius: 10px 10px 0 0;
      background: #F5F5F4;
      color: #191919;
      box-shadow: none;
      cursor: pointer;
      transform: translateX(-50%);
      transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
    }

    .project-folder::before {
      content: "";
      position: absolute;
      left: var(--x);
      top: min(-11%, -38px);
      width: clamp(300px, 36%, 560px);
      height: 22%;
      border: 1px solid var(--folder-line);
      border-bottom: 0;
      border-radius: 12px 12px 0 0;
      background: #F5F5F4;
      transform: translateX(-50%) skewX(-10deg);
      transform-origin: bottom center;
      box-shadow: none;
    }

    .project-folder::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      height: 18%;
      border-radius: inherit;
      background: transparent;
      pointer-events: none;
    }

    .project-folder.is-dark {
      --folder-paper: #F5F5F4;
      --folder-warm: #F5F5F4;
      color: #191919;
    }

    .project-folder:hover,
    .project-folder:focus-visible {
      transform: translateX(-50%) translateY(-6px);
      filter: none;
      box-shadow:
        0 8px 18px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
      outline: 0;
    }

    .project-folder-title {
      position: absolute;
      left: var(--x);
      top: -18px;
      z-index: 2;
      width: clamp(260px, 34%, 520px);
      padding: 0 14px;
      transform: translateX(-50%);
      overflow: hidden;
      color: #191919;
      text-align: center;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-size: clamp(10px, 0.78vw, 14px);
      font-weight: 900;
      letter-spacing: 0;
      line-height: 1;
      pointer-events: none;
    }

    .project-folder.is-dark .project-folder-title {
      color: #191919;
    }

    .project-folder-meta {
      position: absolute;
      right: clamp(18px, 2vw, 34px);
      bottom: clamp(18px, 2.6vh, 32px);
      z-index: 2;
      max-width: min(40%, 320px);
      overflow: hidden;
      color: rgba(25, 25, 25, 0.42);
      font-size: clamp(11px, 1.02vw, 15px);
      font-weight: 900;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      text-align: right;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .project-folder.is-dark .project-folder-meta {
      color: rgba(25, 25, 25, 0.54);
    }

    .project-drawer {
      display: none;
    }

    .project-drawer::before,
    .project-drawer::after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      width: 7%;
      background: rgba(139, 133, 120, 0.22);
    }

    .project-drawer::before { left: 0; }
    .project-drawer::after { right: 0; }

    .project-drawer-label {
      position: absolute;
      left: 50%;
      top: 23px;
      z-index: 2;
      min-width: 230px;
      padding: 8px 22px 7px;
      border: 1px solid rgba(52, 50, 45, 0.18);
      border-radius: 3px;
      background: #fbfaf4;
      color: #191919;
      text-align: center;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(18px, 2.1vw, 30px);
      font-style: italic;
      transform: translateX(-50%) rotate(-1.5deg);
    }

    .project-file-overlay {
      position: fixed;
      inset: 0;
      z-index: 70;
      display: grid;
      place-items: center;
      padding: clamp(12px, 3vw, 36px);
      background: rgba(238, 241, 241, 0.78);
      backdrop-filter: blur(18px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 190ms ease;
    }

    body.project-file-open { overflow: hidden; }

    body.project-file-open .project-file-overlay {
      opacity: 1;
      pointer-events: auto;
    }

    .project-file-modal {
      position: relative;
      width: min(660px, 92vw);
      height: min(940px, 94vh);
      transform: translateY(28px) scale(0.94);
      transition: transform 260ms cubic-bezier(.18,.82,.18,1);
    }

    body.project-file-open .project-file-modal { transform: translateY(0) scale(1); }

    .project-file-board {
      position: absolute;
      inset: 2.5% 8% 2.5% 4.5%;
      border: 1.5px solid rgba(0, 0, 0, 0.78);
      border-radius: 14px;
      background:
        radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.14) 0 0.6px, transparent 0.9px) 0 0 / 18px 18px,
        #F5F5F4;
      box-shadow: 0 26px 70px rgba(0, 0, 0, 0.12);
    }

    .project-file-board::before {
      display: none;
    }

    .project-clip {
      display: none;
    }

    .project-clip::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 0;
      width: 30px;
      height: 30px;
      border: 7px solid #71695f;
      border-radius: 50%;
      background: radial-gradient(circle, #f2eee6 0 22%, transparent 23%);
      transform: translateX(-50%);
      box-shadow: inset 0 0 0 3px #2e2923;
    }

    .project-clip::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 20px;
      border-radius: 4px;
      background: linear-gradient(#a9a092, #5e574c);
      box-shadow: 0 4px 0 #2c2822;
    }

    .project-paper.grid,
    .project-photo,
    .project-pocket::before,
    .project-evidence-card:nth-child(2),
    .project-evidence-card:nth-child(3) { display: none; }

    .project-log-sheet {
      position: absolute;
      left: 50%;
      top: 7%;
      z-index: 5;
      width: min(85%, 520px);
      min-height: 0;
      padding: 18px 20px 20px;
      border: 1.5px solid rgba(0, 0, 0, 0.62);
      border-radius: 8px;
      background: #F5F5F4;
      box-shadow: none;
      transform: translateX(calc(-50% + var(--project-log-shift, 0px)));
      transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1);
      will-change: transform;
    }

    /* 仅在弹窗完全打开后才启用侧边栏切换动画，防止打开瞬间产生位移闪烁 */
    body:not(.project-file-open) .project-log-sheet,
    body:not(.project-file-open) .project-side-panel {
      transition: none !important;
    }

    .project-log-kicker {
      display: block;
      margin-bottom: 12px;
      color: #2c2722;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0.08em;
      text-align: center;
      text-transform: uppercase;
    }

    .project-log-sheet h2 {
      margin: 0 0 14px;
      padding: 12px 8px 10px;
      border-top: 1px solid rgba(0, 0, 0, 0.42);
      border-bottom: 1px solid rgba(0, 0, 0, 0.42);
      color: #171717;
      text-align: left;
      font-family: var(--font-sans);
      font-size: clamp(24px, 3vw, 36px);
      font-weight: 950;
      letter-spacing: 0;
      line-height: 1.15;
      text-transform: none;
      white-space: normal;
    }

    /* 侧滑面板样式 */
    .project-file-board {
      transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }
    body.side-panel-open .project-file-board {
      transform: none;
    }
    .project-side-panel {
      position: absolute;
      right: 5%;
      top: 7%;
      width: min(86%, 548px);
      height: 90%;
      background: #fbfaf4;
      border: 1.5px solid rgba(0, 0, 0, 0.62);
      border-radius: 8px;
      padding: 10px;
      box-shadow: -18px 18px 42px rgba(0,0,0,0.16);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateX(30px) scale(0.98);
      transform-origin: right center;
      transition: opacity 0.28s ease-out, transform 0.52s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.52s;
      will-change: transform, opacity;
      z-index: 8;
    }
    body.side-panel-open .project-side-panel {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(0) scale(1);
      transition-delay: 0.12s, 0.12s, 0s;
    }
    .side-panel-content {
      display: flex;
      flex-direction: column;
      gap: 8px;
      height: 100%;
      overflow: hidden;
      opacity: 1;
      transition: opacity 180ms ease;
    }
    .project-side-panel[data-content-ready="false"] .side-panel-content {
      opacity: 0;
    }
    #sidePanelMedia {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      align-items: center;
      justify-content: flex-start;
      overflow: hidden;
      --media-viewport-pad-x: 10px;
      --media-viewport-pad-y: 10px;
      --media-scale: 1;
    }
    #sidePanelMedia img {
      width: 100%;
      height: auto;
      display: block;
      box-sizing: border-box;
      border-radius: 6px;
      border: 1px solid rgba(0, 0, 0, 0.08);
      object-fit: contain;
    }
    #sidePanelMedia .side-panel-media-viewport {
      position: relative;
      width: 100%;
      height: 100%;
      min-height: 0;
      padding: var(--media-viewport-pad-y) var(--media-viewport-pad-x);
      box-sizing: border-box;
      overflow: hidden;
    }
    #sidePanelMedia .side-panel-media-canvas {
      position: absolute;
      left: 50%;
      top: var(--media-viewport-pad-y);
      transform: translateX(-50%) scale(var(--media-scale));
      transform-origin: center top;
      box-sizing: border-box;
    }
    #sidePanelMedia.layout-vertical-fit .side-panel-media-canvas {
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: stretch;
    }
    #sidePanelMedia.layout-vertical-fit .side-panel-media-canvas > img,
    #sidePanelMedia.layout-vertical-fit .side-panel-media-canvas > .side-panel-media-item {
      width: var(--media-stack-width, 100%);
      flex: none;
    }
    #sidePanelMedia.use-scroll-rail .side-panel-media-viewport {
      display: flex;
      flex-direction: column;
      align-items: center;
      overflow-x: hidden;
      overflow-y: auto;
      padding-right: 4px;
      scrollbar-gutter: stable;
      scrollbar-width: thin;
    }
    #sidePanelMedia.layout-vertical-fit.use-scroll-rail .side-panel-media-viewport {
      justify-content: flex-start;
    }
    #sidePanelMedia.layout-grid-2x2.use-scroll-rail .side-panel-media-viewport {
      justify-content: center;
    }
    #sidePanelMedia.layout-row .side-panel-media-viewport {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    #sidePanelMedia.layout-row .side-panel-media-canvas {
      position: relative;
      left: auto;
      top: auto;
      transform: none;
      margin: 0 auto;
    }
    #sidePanelMedia.use-scroll-rail .side-panel-media-canvas {
      position: relative;
      left: auto;
      top: auto;
      transform: none;
      margin: 0 auto;
    }
    #sidePanelMedia.layout-grid-2x2 {
      justify-content: center;
    }
    #sidePanelMedia.layout-grid-2x2.layout-grid-2x2-page {
      justify-content: center;
    }
    #sidePanelMedia.layout-grid-2x2 .side-panel-media-canvas {
      display: grid;
      grid-template-columns: repeat(2, auto);
      grid-template-rows: repeat(2, auto);
      gap: 8px;
      align-items: start;
      justify-items: start;
    }
    #sidePanelMedia.layout-grid-2x2 img {
      width: 100%;
      height: 100%;
      border-radius: 6px;
      border: 1px solid rgba(0, 0, 0, 0.08);
      object-fit: contain;
    }
    #sidePanelMedia.layout-row {
      justify-content: center;
    }
    #sidePanelMedia.layout-row .side-panel-media-canvas {
      display: flex;
      flex-direction: row;
      gap: 8px;
      justify-content: flex-start;
      align-items: flex-start;
    }
    #sidePanelMedia.layout-row img {
      width: auto;
      flex: none;
      height: var(--row-image-height, auto);
      border-radius: 6px;
      border: 1px solid rgba(0, 0, 0, 0.08);
      object-fit: contain;
    }
    .side-panel-media-item {
      display: flex;
      flex-direction: column;
      gap: 6px;
      min-width: 0;
      box-sizing: border-box;
    }
    .side-panel-media-caption {
      color: #1b1b1b;
      font-size: 12px;
      font-weight: 800;
      line-height: 1.2;
      text-align: left;
      padding-left: 2px;
    }
    .side-panel-media-item img {
      width: 100%;
      height: auto;
    }
    #sidePanelMedia.layout-col {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    #sidePanelMedia.layout-col img {
      width: 100%;
      height: auto;
      border-radius: 6px;
      border: 1px solid rgba(0, 0, 0, 0.08);
    }
    .side-panel-link-container {
      display: block;
      padding: 10px;
      background: var(--soft);
      border-radius: 8px;
      font-size: 13px;
      font-weight: 800;
      color: #171717;
      line-height: 1.4;
    }
    .side-panel-link-prefix {
      color: #171717;
    }
    .side-panel-link-action {
      color: var(--blue);
      text-decoration: underline;
      cursor: pointer;
    }
    .side-panel-link-action:hover {
      opacity: 0.8;
    }

    .project-log-grid {
      display: grid;
      grid-template-columns: 0.72fr 1fr;
      margin-bottom: 14px;
      border-top: 1px solid rgba(0, 0, 0, 0.26);
      border-left: 0;
      font-size: 13px;
      text-transform: none;
    }

    .project-log-grid span {
      padding: 8px 10px;
      border-right: 0;
      border-bottom: 1px solid rgba(0, 0, 0, 0.26);
    }

    .project-log-grid span:nth-child(even) {
      color: #191919;
      text-transform: none;
    }

    .project-log-sheet p {
      display: none;
    }

    .project-log-points {
      display: grid;
      gap: 6px;
      margin: 0;
      padding: 0;
      list-style: none;
      color: #151515;
      font-size: 13px;
      font-weight: 700;
      line-height: 1.38;
    }

    .project-log-points li {
      position: relative;
      padding-left: 16px;
      white-space: normal;
      text-align: left;
    }

    .project-log-points li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.62em;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--blue);
    }

    .project-pocket {
      position: absolute;
      left: 10%;
      right: 10%;
      bottom: 5%;
      z-index: 6;
      height: auto;
      padding: 20px 26px 22px;
      border: 0;
      background: #ef251d;
      box-shadow: none;
    }

    .project-pocket-label {
      position: static;
      display: block;
      padding: 14px 0 12px;
      margin-bottom: 13px;
      background: linear-gradient(180deg, #232323, #121212);
      color: #d6382f;
      text-align: center;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(28px, 3.4vw, 37px);
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1;
      white-space: nowrap;
      text-transform: uppercase;
    }

    .project-pocket-sub {
      display: block;
      color: #101010;
      text-align: center;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(14px, 1.7vw, 21px);
      font-style: italic;
      font-weight: 800;
      letter-spacing: 0.02em;
    }

    .project-evidence-cards {
      position: absolute;
      right: 24px;
      top: 14px;
      z-index: 10;
      display: flex;
      gap: 12px;
    }

    .project-evidence-card { display: none; }

    .project-evidence-card:first-child {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 8px 20px;
      border: 1.5px solid rgba(0, 0, 0, 0.78);
      border-radius: 6px;
      background: #F5F5F4;
      color: #171717;
      writing-mode: horizontal-tb;
      text-align: center;
      font-family: var(--font-sans);
      font-size: 14px;
      font-weight: 900;
      cursor: pointer;
      box-shadow: 3px 3px 0 rgba(0,0,0,0.15);
      transition: all 0.2s ease;
    }

    .project-evidence-card:first-child:hover {
      background: #ffffff;
      transform: translate(-1px, -1px);
      box-shadow: 4px 4px 0 rgba(0,0,0,0.2);
    }

    .project-evidence-card:first-child:active {
      transform: translate(1px, 1px);
      box-shadow: 1px 1px 0 rgba(0,0,0,0.1);
    }

    .project-file-close {
      position: absolute;
      right: -12px;
      top: -12px;
      z-index: 10;
      display: grid;
      place-items: center;
      width: 44px;
      height: 44px;
      border: 1px solid rgba(21, 21, 21, 0.18);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.78);
      color: #171717;
      font-size: 26px;
      line-height: 1;
      cursor: pointer;
      transition: transform 160ms ease, background 160ms ease;
    }

    .project-file-close:hover,
    .project-file-close:focus-visible {
      background: #ffffff;
      transform: scale(1.06);
      outline: 0;
    }

    .skills-directory {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start;
      height: 100%;
      min-height: 0;
      padding: clamp(18px, 3vh, 38px) clamp(10px, 2vw, 28px) clamp(14px, 2.4vh, 30px);
      overflow: hidden;
    }

    .skill-index {
      display: grid;
      gap: clamp(18px, 3vh, 34px);
      margin: 0;
      padding: 0;
      width: min(100%, 980px);
      list-style: none;
    }

    .skill-index-item {
      display: grid;
      grid-template-columns: 64px minmax(0, 1fr);
      gap: clamp(12px, 1.8vw, 24px);
      align-items: start;
    }

    .skill-number {
      color: #070707;
      font-size: clamp(40px, 3.4vw, 56px);
      line-height: 1;
      font-weight: 500;
      justify-self: center;
    }

    .skill-title {
      color: #070707;
      font-size: clamp(30px, 2.7vw, 44px);
      line-height: 1.05;
      font-weight: 500;
    }

    .skill-title {
      display: block;
      margin-bottom: 13px;
    }

    .skill-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 22px;
    }

    .skill-tag {
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      max-width: min(960px, 100%);
      padding: 6px 17px;
      border-radius: 999px;
      color: #ffffff;
      background: linear-gradient(180deg, #6128ff 0%, #2600ed 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 7px 16px rgba(49, 0, 214, 0.18);
      font-size: clamp(17px, 1.2vw, 21px);
      line-height: 1.2;
      font-weight: 500;
    }

    .skill-tag.long {
      max-width: none;
      min-height: 36px;
      border-radius: 16px;
      padding-block: 8px;
      white-space: nowrap;
      font-size: clamp(14px, 1vw, 18px);
    }

    html.dark-mode .skills-directory h1,
    html.dark-mode .skill-number,
    html.dark-mode .skill-title {
      color: #f3f3f0;
    }

    .project-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 12px;
      font-size: 13px;
    }

    .author {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 800;
    }

    .avatar {
      display: grid;
      place-items: center;
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: #111111;
      color: #ffffff;
      font-size: 13px;
    }

    .stats {
      color: var(--muted);
      font-weight: 700;
    }

    .hero-grid {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 10px;
      height: calc(100vh - 180px);
      min-height: 0;
      margin-bottom: 12px;
    }

    .resume-cover {
      display: grid;
      place-items: center;
      height: calc(100vh - 180px);
      min-height: 0;
      margin-bottom: 12px;
      opacity: 1;
      transform: none;
    }

    .resume-folder-button {
      position: relative;
      display: grid;
      place-items: center;
      width: clamp(320px, 28vw, 520px);
      max-width: 72vw;
      border: 0;
      padding: 0;
      background: transparent;
      cursor: pointer;
      isolation: isolate;
      transition: transform 220ms ease, filter 220ms ease;
    }

    .resume-folder-button:hover,
    .resume-folder-button:focus-visible {
      transform: translateY(-8px) scale(1.02);
      outline: 0;
    }

    .resume-folder {
      position: relative;
      z-index: 2;
      display: block;
      width: 100%;
      max-height: 64vh;
      object-fit: contain;
      mix-blend-mode: multiply;
      pointer-events: none;
    }

    .folder-paper {
      position: absolute;
      z-index: 1;
      top: 38%;
      width: 28%;
      aspect-ratio: 0.76;
      border-radius: 10px;
      background: #f7f7f7;
      box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
      opacity: 0;
      transform: translateY(58px) scale(0.84) rotate(var(--paper-rotate));
      transition: transform 420ms cubic-bezier(0.18, 0.88, 0.26, 1.18), opacity 180ms ease;
      pointer-events: none;
    }

    .folder-paper::before,
    .folder-paper::after {
      content: "";
      position: absolute;
      left: 16%;
      right: 16%;
      height: 7%;
      border-radius: 999px;
      background: #d8d8d8;
    }

    .folder-paper::before {
      top: 22%;
    }

    .folder-paper::after {
      top: 38%;
      right: 32%;
    }

    .folder-paper.paper-left {
      --paper-rotate: -11deg;
      left: 25%;
    }

    .folder-paper.paper-center {
      --paper-rotate: 2deg;
      left: 37%;
      width: 26%;
      transition-delay: 30ms;
    }

    .folder-paper.paper-right {
      --paper-rotate: 10deg;
      right: 25%;
      transition-delay: 60ms;
    }

    .resume-folder-button:hover .folder-paper,
    .resume-folder-button:focus-visible .folder-paper {
      opacity: 1;
    }

    .resume-folder-button:hover .paper-left,
    .resume-folder-button:focus-visible .paper-left {
      transform: translate(-34px, -86px) scale(1) rotate(-14deg);
    }

    .resume-folder-button:hover .paper-center,
    .resume-folder-button:focus-visible .paper-center {
      transform: translateY(-104px) scale(1) rotate(1deg);
    }

    .resume-folder-button:hover .paper-right,
    .resume-folder-button:focus-visible .paper-right {
      transform: translate(36px, -78px) scale(1) rotate(12deg);
    }

    .resume-modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 52;
      display: grid;
      place-items: center;
      padding: 32px clamp(16px, 3vw, 40px);
      background: rgba(16, 17, 18, 0.34);
      backdrop-filter: blur(16px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 180ms ease;
    }

    body.resume-modal-open {
      overflow: hidden;
    }

    body.resume-modal-open .resume-modal-overlay {
      opacity: 1;
      pointer-events: auto;
    }

    .resume-modal {
      position: relative;
      width: min(1120px, calc(100vw - 48px));
      max-width: 1120px;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: visible;
      padding: 0;
      border: 0;
      background: transparent;
      box-shadow: none;
    }

    .campus-experience-modal-overlay,
    .campus-awards-modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 56;
      display: grid;
      place-items: center;
      padding: 32px clamp(16px, 3vw, 40px);
      background: rgba(16, 17, 18, 0.34);
      backdrop-filter: blur(16px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 180ms ease;
    }

    body.campus-experience-modal-open,
    body.campus-awards-modal-open,
    body.campus-award-image-open {
      overflow: hidden;
    }

    body.campus-experience-modal-open .campus-experience-modal-overlay,
    body.campus-awards-modal-open .campus-awards-modal-overlay {
      opacity: 1;
      pointer-events: auto;
    }

    .campus-experience-modal,
    .campus-awards-modal {
      position: relative;
      width: min(920px, calc(100vw - 48px));
      max-height: min(760px, calc(100vh - 48px));
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.62);
      border-radius: 30px;
      background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(247, 247, 250, 0.84));
      box-shadow: 0 28px 80px rgba(15, 15, 18, 0.18);
      transform: translateY(18px) scale(0.98);
      transition: transform 180ms ease;
    }

    .campus-experience-modal {
      overflow: visible;
    }

    .campus-awards-modal {
      height: min(500px, calc(100vh - 48px));
      overflow: visible;
    }

    .campus-awards-modal .campus-experience-modal-close {
      top: calc(50% - 35px);
    }

    body.campus-experience-modal-open .campus-experience-modal,
    body.campus-awards-modal-open .campus-awards-modal {
      transform: translateY(0) scale(1);
    }

    .campus-experience-modal-inner {
      display: grid;
      gap: 22px;
      max-height: inherit;
      padding: clamp(24px, 3vw, 34px);
    }

    .campus-experience-modal-head {
      display: grid;
      grid-template-columns: 1fr;
      gap: 18px;
      align-items: start;
      min-width: 0;
    }

    .campus-experience-modal-copy {
      display: grid;
      gap: 10px;
      min-width: 0;
    }

    .campus-experience-modal-kicker {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      min-height: 28px;
      padding: 0 12px;
      border-radius: 999px;
      background: rgba(75, 35, 255, 0.08);
      color: var(--blue);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .campus-experience-modal-copy h3 {
      margin: 0;
      color: #080808;
      font-size: clamp(28px, 3vw, 38px);
      line-height: 1.02;
      font-weight: 900;
    }

    .campus-experience-modal-copy p {
      margin: 0;
      color: #6f6f6f;
      font-size: 14px;
      line-height: 1.6;
      font-weight: 700;
    }

    .campus-experience-modal-close {
      position: absolute;
      top: calc(50% - 119px);
      right: -92px;
      z-index: 2;
      display: grid;
      place-items: center;
      width: 70px;
      height: 70px;
      border: none;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.94);
      color: #111111;
      font-size: 30px;
      line-height: 1;
      cursor: pointer;
      box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
    }

    .campus-experience-modal-close:hover,
    .campus-experience-modal-close:focus-visible {
      background: var(--blue);
      color: #ffffff;
      transform: translateY(-3px) scale(1.04);
      box-shadow: 0 24px 54px rgba(34, 0, 216, 0.34);
      outline: 0;
    }

    .campus-experience-modal-list {
      position: relative;
      min-height: 548px;
      overflow: auto;
      padding-top: 6px;
      padding-right: 4px;
      padding-bottom: 4px;
    }

    .campus-experience-modal-page {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-auto-rows: 266px;
      align-content: start;
      gap: 16px;
      min-height: 548px;
    }

    .campus-experience-modal-page[hidden] {
      display: none;
    }

    .campus-experience-entry {
      display: grid;
      grid-template-rows: auto 54px 1fr auto;
      align-items: start;
      row-gap: 14px;
      min-height: 266px;
      height: 266px;
      padding: 18px;
      border: 1px solid #dddddd;
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.72);
      box-shadow: 0 14px 36px rgba(20, 20, 20, 0.04);
      cursor: pointer;
      transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease;
    }

    .campus-experience-entry:hover {
      transform: translateY(-4px);
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.12);
      border-color: #5619ff;
      background: #ffffff;
    }

    .campus-experience-entry-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
    }

    .campus-experience-entry-index {
      color: var(--blue);
      font-size: 13px;
      font-weight: 900;
      letter-spacing: 0.08em;
    }

    .campus-experience-entry-time {
      color: #7b7b7b;
      font-size: 12px;
      line-height: 1.35;
      font-weight: 700;
      text-align: right;
    }

    .campus-experience-entry h4 {
      margin: 0;
      color: #080808;
      font-size: 18px;
      line-height: 1.25;
      font-weight: 900;
      align-self: start;
    }

    .campus-experience-entry p {
      margin: 0;
      color: #6f6f6f;
      font-size: 13px;
      line-height: 1.7;
      font-weight: 700;
      align-self: start;
      text-align: justify;
      text-justify: inter-ideograph;
    }

    .campus-experience-entry .campus-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-self: end;
      margin: 0;
    }

    .campus-experience-entry .campus-tags span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 24px;
      padding: 0 10px;
      border: 1.5px solid var(--blue);
      border-radius: 999px;
      color: var(--blue);
      font-size: 10px;
      font-weight: 900;
      line-height: 1;
      white-space: nowrap;
    }

    .campus-experience-modal-nav {
      position: absolute;
      top: calc(50% - 35px);
      right: -92px;
      display: grid;
      gap: 14px;
      align-content: start;
      z-index: 2;
    }

    .campus-experience-modal-switch {
      display: grid;
      place-items: center;
      width: 70px;
      height: 70px;
      border: none;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.94);
      color: #111111;
      font-size: 34px;
      font-weight: 500;
      line-height: 1;
      cursor: pointer;
      box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
    }

    .campus-experience-modal-switch:hover,
    .campus-experience-modal-switch:focus-visible {
      background: var(--blue);
      color: #ffffff;
      transform: translateY(-3px) scale(1.04);
      box-shadow: 0 24px 54px rgba(34, 0, 216, 0.34);
      outline: 0;
    }

    .campus-experience-modal-switch:disabled {
      opacity: 0.34;
      cursor: default;
      transform: none;
      background: rgba(255, 255, 255, 0.8);
      color: #111111;
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
    }

    #campus .campus-value-icon--ring {
      background: transparent;
      box-shadow: none;
      color: #cbb4f7;
    }

    #campus .campus-value-icon--ring svg {
      width: 28px;
      height: 28px;
    }

    #campus .campus-value-icon--ring svg circle {
      fill: currentColor;
      stroke: none;
    }

    #campus .campus-value-icon--ring svg .campus-ring-middle {
      fill: #ffffff;
    }

    .campus-awards-modal .campus-experience-modal-inner {
      height: 100%;
      min-height: 0;
      grid-template-rows: auto minmax(0, 1fr);
      gap: 16px;
      padding: clamp(20px, 2.6vw, 28px);
    }

    .campus-awards-modal-list {
      display: flex;
      flex-direction: column;
      flex: 1;
      gap: 12px;
      min-height: 0;
      min-width: 0;
      overflow: auto;
      padding-right: 4px;
    }

    .campus-awards-modal-list .campus-award-tabs {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      align-items: center;
      color: #111111;
      font-size: 13px;
      font-weight: 900;
      text-align: center;
    }

    .campus-awards-modal-list .campus-award-tab {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 28px;
      border: 0;
      border-radius: 999px;
      padding: 0 12px;
      background: transparent;
      color: inherit;
      font: inherit;
      font-weight: inherit;
      cursor: pointer;
      transition: background 180ms ease, color 180ms ease;
    }

    .campus-awards-modal-list .campus-award-tab:focus-visible {
      outline: 2px solid rgba(75, 35, 255, 0.22);
      outline-offset: 2px;
    }

    .campus-awards-modal-list .campus-award-tab.is-active {
      color: var(--blue);
      background: #eee9ff;
    }

    .campus-award-modal-list-container {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-auto-rows: minmax(78px, auto);
      gap: 16px;
      flex: 1;
      min-height: 0;
      min-width: 0;
      align-content: start;
    }

    .campus-awards-modal-card.is-placeholder {
      visibility: hidden;
      pointer-events: none;
    }

    .campus-awards-modal-card {
      appearance: none;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 14px;
      width: 100%;
      min-height: 0;
      min-width: 0;
      padding: 18px;
      border: 1px solid #dddddd;
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.72);
      color: inherit;
      font: inherit;
      text-align: left;
      cursor: pointer;
      box-shadow: 0 14px 36px rgba(20, 20, 20, 0.04);
      transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
    }

    .campus-awards-modal-card:hover,
    .campus-awards-modal-card:focus-visible {
      border-color: #5619ff;
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.12);
      transform: translateY(-4px);
      background: #ffffff;
      outline: none;
    }

    .campus-awards-modal-card .campus-award-copy {
      display: grid;
      gap: 4px;
      justify-items: start;
      min-width: 0;
    }

    .campus-awards-modal-card .campus-award-copy strong {
      font-size: 15px;
    }

    .campus-awards-modal-card .campus-award-copy span,
    .campus-awards-modal-card .campus-award-year {
      font-size: 12px;
    }

    .campus-award-image-overlay {
      position: fixed;
      inset: 0;
      z-index: 58;
      display: grid;
      place-items: center;
      padding: 28px;
      background: rgba(12, 12, 16, 0.6);
      backdrop-filter: blur(14px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 180ms ease;
    }

    body.campus-award-image-open .campus-award-image-overlay {
      opacity: 1;
      pointer-events: auto;
    }

    .campus-award-image-modal {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 70px;
      grid-template-rows: repeat(3, 70px);
      align-items: center;
      gap: 14px 22px;
      overflow: visible;
    }

    .campus-award-image-close {
      position: absolute;
      top: calc(50% - 119px);
      right: 0;
      font-size: 30px;
      z-index: 2;
    }

    .campus-award-image-prev,
    .campus-award-image-next {
      font-size: 34px;
      font-weight: 500;
    }

    .campus-award-image-close,
    .campus-award-image-switch {
      display: grid;
      place-items: center;
      width: 70px;
      height: 70px;
      border: none;
      background: rgba(255, 255, 255, 0.94);
      border-radius: 50%;
      cursor: pointer;
      color: #111111;
      box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
      line-height: 1;
    }

    .campus-award-image-close:hover,
    .campus-award-image-close:focus-visible,
    .campus-award-image-switch:hover,
    .campus-award-image-switch:focus-visible {
      background: var(--blue);
      color: #ffffff;
      transform: translateY(-3px) scale(1.04);
      box-shadow: 0 24px 54px rgba(34, 0, 216, 0.34);
      outline: 0;
    }

    .campus-award-image-frame {
      grid-row: 1 / 4;
      width: min(980px, calc(100vw - 150px));
      max-height: calc(100vh - 40px);
      min-height: 0;
      overflow: auto;
      padding: 22px 22px 18px;
      border: 1px solid rgba(255, 255, 255, 0.36);
      border-radius: 20px;
      background: rgba(255, 255, 255, 0.92);
      box-shadow: 0 32px 80px rgba(10, 10, 12, 0.28);
      background:
        linear-gradient(180deg, rgba(248, 247, 252, 0.96), rgba(238, 236, 246, 0.92));
    }

    .campus-award-image-frame img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 20px;
    }

    .campus-award-image-nav {
      display: grid;
      position: absolute;
      top: calc(50% - 35px);
      right: 0;
      gap: 14px;
      z-index: 2;
    }

    .campus-award-image-switch {
      font-size: 30px;
    }

    .campus-award-image-switch:disabled {
      opacity: 0.34;
      cursor: default;
      transform: none;
      background: rgba(255, 255, 255, 0.8);
      color: #111111;
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
    }

    .resume-preview-wrap {
      display: grid;
      grid-template-columns: auto 92px;
      grid-template-rows: 1fr auto auto 1fr;
      align-items: stretch;
      gap: 14px 22px;
    }

    .resume-preview-card {
      --resume-scale: 1;
      position: relative;
      grid-row: 1 / 5;
      width: min(640px, 54vw, 62vh);
      aspect-ratio: 210 / 297;
      height: auto;
      padding: 0;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.48);
      border-radius: 22px;
      background: rgba(248, 248, 248, 0.72);
      box-shadow: 0 34px 90px rgba(0, 0, 0, 0.26);
      outline: none;
    }

    .resume-preview-card > .resume-gesture-hint {
      display: none;
    }

    .resume-preview-card::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 20px;
      pointer-events: none;
      opacity: 0;
      transition: opacity 160ms ease;
    }

    .resume-preview-card[data-loading="true"]::after,
    .resume-preview-card[data-error="true"]::after {
      opacity: 1;
    }

    .resume-preview-card[data-loading="true"]::after {
      background: rgba(242, 243, 245, 0.94);
      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
    }

    .resume-preview-card[data-error="true"]::after {
      background: rgba(255, 244, 244, 0.96);
      box-shadow: inset 0 0 0 1px rgba(232, 93, 93, 0.24);
    }

    .resume-canvas-viewport {
      width: 100%;
      height: 100%;
      overflow: auto;
      border-radius: 20px;
      background: transparent;
      scrollbar-width: none;
      cursor: grab;
      user-select: none;
    }

    .resume-canvas-viewport.is-dragging {
      cursor: grabbing;
    }

    .resume-canvas-viewport::-webkit-scrollbar {
      display: none;
    }

    .resume-canvas-sizer {
      position: relative;
      width: 100%;
      height: 100%;
    }

    .resume-canvas-stage {
      position: absolute;
      left: 50%;
      top: 50%;
      display: grid;
      justify-items: center;
      transform: translate(-50%, -50%) scale(var(--resume-scale));
      transform-origin: center center;
    }

    .resume-canvas-stage img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 20px;
      background: #ffffff;
      box-shadow: 0 18px 42px rgba(15, 20, 28, 0.12);
    }

    .resume-gesture-hint {
      grid-column: 2;
      grid-row: 1;
      justify-self: center;
      align-self: start;
      display: grid;
      place-items: center;
      width: 92px;
      min-height: 92px;
      padding: 12px;
      border: 1px solid rgba(255, 255, 255, 0.58);
      border-radius: 24px;
      background: rgba(255, 255, 255, 0.84);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      box-shadow: 0 18px 36px rgba(15, 20, 28, 0.14);
      color: #111111;
      pointer-events: none;
      text-align: center;
    }

    .resume-gesture-icon {
      display: grid;
      place-items: center;
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: #111111;
      color: #ffffff;
      box-shadow: 0 10px 20px rgba(17, 17, 17, 0.16);
      flex: 0 0 auto;
    }

    .resume-gesture-icon svg {
      width: 18px;
      height: 18px;
    }

    .resume-gesture-icon path,
    .resume-gesture-icon line {
      fill: none;
      stroke: currentColor;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .resume-gesture-copy {
      display: none;
    }

    .resume-gesture-copy strong {
      font-size: 12px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }

    .resume-gesture-copy span {
      font-size: 12px;
      color: rgba(17, 17, 17, 0.72);
      letter-spacing: 0.01em;
    }

    .resume-gesture-hint--side {
      place-content: center;
    }

    .resume-gesture-hint--side .resume-gesture-icon,
    .resume-gesture-hint--side .resume-gesture-copy strong {
      display: none;
    }

    .resume-gesture-hint--side .resume-gesture-copy {
      display: grid;
      place-items: center;
      gap: 3px;
      min-height: 100%;
    }

    .resume-gesture-hint--side .resume-gesture-copy span {
      display: block;
      line-height: 1.15;
    }

    .resume-close-button,
    .resume-download-button {
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      width: 70px;
      height: 70px;
      border: 1px solid rgba(255, 255, 255, 0.3);
      border-radius: 50%;
      background: #111111;
      color: #ffffff;
      box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
      cursor: pointer;
    }

    .resume-close-button {
      border: 1px solid rgba(255, 255, 255, 0.5);
      background: rgba(255, 255, 255, 0.94);
      color: #111111;
      font-size: 30px;
      line-height: 1;
      grid-column: 2;
      grid-row: 2;
      align-self: end;
      margin: 0;
    }

    .resume-download-button {
      grid-column: 2;
      grid-row: 3;
      align-self: start;
      margin: 0;
    }

    .resume-close-button:hover,
    .resume-close-button:focus-visible,
    .resume-download-button:hover,
    .resume-download-button:focus-visible {
      background: var(--blue);
      color: #ffffff;
      transform: translateY(-3px) scale(1.04);
      box-shadow: 0 24px 54px rgba(34, 0, 216, 0.34);
      outline: 0;
    }

    .resume-download-button svg {
      width: 28px;
      height: 28px;
    }

    .resume-download-button path,
    .resume-download-button polyline,
    .resume-download-button line {
      fill: none;
      stroke: currentColor;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .hero-card,
    .panel,
    .project-block {
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--surface);
    }

    .hero-card,
    .panel,
    .card,
    .project-block,
    .logo-tile,
    .spec,
    .symbol-sheet,
    .shirt,
    .bag {
      transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
    }

    .hero-card:hover,
    .panel:hover,
    .card:hover,
    .project-block:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 46px rgba(0, 0, 0, 0.08);
    }

    html.dark-mode .hero-card:hover,
    html.dark-mode .panel:hover,
    html.dark-mode .card:hover,
    html.dark-mode .project-block:hover {
      box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
    }

    .hero-title {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 28px;
    }

    .hero-title h1 {
      margin: 0;
      font-size: clamp(46px, 8vw, 86px);
      line-height: 0.9;
      letter-spacing: -1px;
    }

    .hero-title p {
      max-width: 260px;
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
    }

    .hero-art {
      position: relative;
      height: 100%;
      min-height: 0;
      background: var(--blue);
    }

    .hero-art::before,
    .hero-art::after {
      content: "";
      position: absolute;
      background: #ffffff;
    }

    html.dark-mode .dot-button {
      color: var(--muted);
      background: var(--surface);
      border-color: var(--line);
    }

    .hero-art::before {
      width: 58px;
      height: 18px;
      left: 16%;
      bottom: 15%;
      transform: rotate(-8deg);
    }

    .hero-art::after {
      width: 64px;
      height: 20px;
      top: 10%;
      right: 18%;
      transform: rotate(-8deg);
    }

    .circle-mark {
      position: absolute;
      right: 12%;
      bottom: 22%;
      width: 68px;
      height: 68px;
      border-radius: 50%;
      background: #ffffff;
    }

    html.dark-mode .card,
    html.dark-mode .contents,
    html.dark-mode .logo-tile,
    html.dark-mode .spec,
    html.dark-mode .symbol-sheet {
      background: var(--surface);
    }

    .circle-mark::after {
      content: "";
      position: absolute;
      inset: 22px;
      border-radius: 50%;
      background: var(--blue);
    }

    .slash {
      position: absolute;
      left: 12%;
      bottom: 20%;
      width: 78px;
      height: 12px;
      background: #111111;
      transform: rotate(48deg);
    }

    .engagement {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      padding: 10px 2px 22px;
      color: #777777;
      font-size: 12px;
    }

    .mini-actions {
      display: flex;
      gap: 8px;
    }

    .dot-button {
      display: grid;
      place-items: center;
      width: 32px;
      height: 32px;
      border: 1px solid var(--line);
      border-radius: 50%;
      background: #ffffff;
      color: var(--muted);
      font-size: 13px;
      font-weight: 900;
    }

    .profile-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-bottom: 12px;
    }

    .poster-panel {
      position: relative;
      min-height: 330px;
      padding: 22px;
      color: #ffffff;
      background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px) 0 0 / 34px 34px,
        linear-gradient(#1f1f1f, #0e0e0e);
    }

    .poster-panel h2 {
      position: relative;
      z-index: 1;
      max-width: 220px;
      margin: 0;
      font-size: 34px;
      line-height: 0.95;
    }

    .shadow-photo {
      position: absolute;
      right: 18px;
      bottom: 18px;
      width: 46%;
      height: 72%;
      border-radius: 6px;
      background:
        radial-gradient(circle at 48% 30%, rgba(255, 255, 255, 0.42), transparent 15%),
        linear-gradient(90deg, transparent 0 44%, rgba(255, 255, 255, 0.16) 45% 55%, transparent 56%),
        linear-gradient(#3b3b3b, #111111);
      filter: contrast(1.1);
    }

    .intro-card {
      display: grid;
      grid-template-rows: 1fr auto;
      min-height: 330px;
    }

    .intro-visual {
      position: relative;
      min-height: 180px;
      background:
        linear-gradient(135deg, transparent 0 48%, #111111 48% 53%, transparent 53%),
        radial-gradient(circle at 75% 62%, var(--orange) 0 13%, transparent 13.5%),
        #f7f7f7;
    }

    .shoe {
      position: absolute;
      right: 28px;
      bottom: 32px;
      width: 170px;
      height: 76px;
      border-radius: 55% 42% 20% 20%;
      background: #121212;
      transform: rotate(-12deg);
    }

    .shoe::before {
      content: "";
      position: absolute;
      left: 20px;
      top: 18px;
      width: 78px;
      height: 18px;
      border-radius: 999px;
      background: #ffffff;
    }

    .shoe::after {
      content: "";
      position: absolute;
      right: 16px;
      bottom: 12px;
      width: 44px;
      height: 16px;
      border-radius: 999px;
      background: var(--orange);
    }

    .intro-copy {
      padding: 18px;
      border-top: 1px solid var(--line);
    }

    .intro-copy h3,
    .card h3,
    .project-block h3 {
      margin: 0 0 8px;
      font-size: 20px;
      line-height: 1.1;
    }

    .intro-copy p,
    .card p,
    .project-block p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
    }

    .resume-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-bottom: 12px;
    }

    .card {
      min-height: 220px;
      padding: 16px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #ffffff;
    }

    .pill {
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      margin: 10px 6px 0 0;
      padding: 0 9px;
      border-radius: 999px;
      background: var(--blue);
      color: #ffffff;
      font-size: 10px;
      font-weight: 800;
    }

    .timeline {
      display: grid;
      gap: 10px;
      margin-top: 14px;
    }

    .timeline-item {
      padding: 10px;
      border-radius: 6px;
      background: #f3f3f3;
      font-size: 11px;
      line-height: 1.35;
    }

    html.dark-mode .timeline-item,
    html.dark-mode .toc-list a {
      background: var(--soft);
    }

    .phone {
      width: 118px;
      height: 170px;
      margin: 16px auto 0;
      padding: 12px;
      border-radius: 22px;
      background: #161616;
      box-shadow: inset 0 0 0 3px #303030;
    }

    .phone-screen {
      height: 100%;
      border-radius: 14px;
      background:
        linear-gradient(var(--blue), var(--blue)) 18px 26px / 62px 16px no-repeat,
        linear-gradient(#ffffff, #ffffff) 18px 52px / 78px 8px no-repeat,
        linear-gradient(#ffffff, #ffffff) 18px 70px / 46px 8px no-repeat,
        #eeeeee;
    }

    #campus .campus-page {
      display: grid;
      grid-template-rows: minmax(190px, 27vh) minmax(0, 1fr) 42px;
      gap: 10px;
      height: 100%;
      min-height: 0;
      padding: 0;
    }

    #campus .campus-hero {
      position: relative;
      display: grid;
      grid-template-columns: minmax(360px, 0.95fr) minmax(360px, 0.9fr) minmax(260px, 0.75fr);
      align-items: center;
      gap: clamp(24px, 4.2vw, 68px);
      min-height: 0;
      padding: 0 clamp(8px, 2vw, 18px) 2px;
    }

    #campus .campus-title {
      margin: 0;
      color: #080808;
      font-size: clamp(48px, 5.2vw, 84px);
      line-height: 0.92;
      font-weight: 900;
      letter-spacing: 0;
      white-space: nowrap;
    }

    #campus .campus-title span {
      display: inline;
      margin-top: 0;
      color: inherit;
      -webkit-text-stroke: 0;
      text-stroke: 0;
    }

    #campus .campus-lead {
      display: grid;
      gap: 26px;
      align-self: center;
      color: #666666;
    }

    #campus .campus-lead p {
      max-width: none;
      margin: 0;
      font-size: clamp(14px, 1.02vw, 18px);
      line-height: 1.55;
      font-weight: 700;
      white-space: nowrap;
    }

    #campus .campus-values {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px 34px;
    }

    #campus .campus-value {
      display: grid;
      grid-template-columns: 42px 1fr;
      align-items: center;
      gap: 12px;
      min-width: 0;
    }

    #campus .campus-value-icon,
    #campus .campus-panel-icon {
      display: grid;
      place-items: center;
      width: 40px;
      height: 40px;
      border-radius: 999px;
      background: var(--blue);
      color: #ffffff;
      box-shadow: 0 8px 22px rgba(75, 35, 255, 0.26);
    }

    #campus .campus-panel-icon {
      width: 38px;
      height: 38px;
      background: #050505;
      box-shadow: none;
    }

    #campus .campus-value svg,
    #campus .campus-panel-icon svg {
      width: 21px;
      height: 21px;
    }

    #campus .campus-value svg path,
    #campus .campus-value svg polyline,
    #campus .campus-value svg circle,
    #campus .campus-panel-icon svg path,
    #campus .campus-panel-icon svg polyline,
    #campus .campus-panel-icon svg circle {
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    #campus .campus-value strong {
      display: block;
      color: #222222;
      font-size: 15px;
      line-height: 1.35;
    }

    #campus .campus-value > span:not(.campus-value-icon),
    #campus .campus-value > span:not(.campus-value-icon) span {
      display: block;
      color: #6f6f6f;
      font-size: 13px;
      line-height: 1.35;
    }

    #campus .campus-visual {
      position: relative;
      min-height: 190px;
    }

    #campus .campus-orbit {
      position: absolute;
      top: 2px;
      right: 14px;
      width: 128px;
      height: 128px;
      border: 1.5px solid #808080;
      border-left-color: transparent;
      border-bottom-color: transparent;
      border-radius: 50%;
      transform: rotate(-18deg);
    }

    #campus .campus-folder-art {
      position: absolute;
      top: 42px;
      right: 72px;
      width: 108px;
      height: 132px;
      border-radius: 18px;
      background:
        linear-gradient(130deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.18)),
        linear-gradient(145deg, rgba(255, 255, 255, 0.85), rgba(218, 223, 232, 0.22));
      border: 1px solid rgba(190, 194, 202, 0.7);
      box-shadow: 54px -24px 0 -7px rgba(255, 255, 255, 0.62), 80px 0 0 -16px rgba(255, 255, 255, 0.45), 0 18px 38px rgba(75, 35, 255, 0.12);
      transform: skewY(6deg) rotate(-18deg);
    }

    #campus .campus-folder-art::before {
      content: "";
      position: absolute;
      inset: 28px 13px 20px 18px;
      border-radius: 12px;
      background: linear-gradient(135deg, rgba(126, 94, 255, 0.85), rgba(75, 35, 255, 0.92));
      box-shadow: inset 0 0 28px rgba(255, 255, 255, 0.28);
    }

    #campus .campus-folder-art::after {
      content: "X";
      position: absolute;
      top: 42px;
      left: 34px;
      color: rgba(75, 35, 255, 0.55);
      font-size: 26px;
      font-weight: 400;
    }

    #campus .campus-diagonal-line {
      position: absolute;
      top: 100px;
      right: 174px;
      width: 122px;
      height: 2px;
      background: #1d123a;
      transform: rotate(32deg);
      transform-origin: right center;
    }

    #campus .campus-dot-grid {
      position: absolute;
      left: 22px;
      bottom: 26px;
      display: grid;
      grid-template-columns: repeat(5, 5px);
      gap: 18px 20px;
    }

    #campus .campus-dot-grid span {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: #0c0c0c;
    }

    #campus .campus-content {
      display: grid;
      grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.78fr);
      gap: 16px;
      min-height: 0;
    }

    #campus .campus-panel,
    #campus .campus-quote {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.72);
      box-shadow: 0 16px 42px rgba(16, 16, 16, 0.04);
      backdrop-filter: blur(10px);
    }

    #campus .campus-panel {
      min-height: 0;
      padding: 22px 22px 30px;
      overflow: hidden;
    }

    #campus .campus-panel-head {
      display: flex;
      align-items: center;
      gap: 16px;
      padding-bottom: 18px;
      border-bottom: 1px solid var(--line);
    }

    #campus .campus-panel-title {
      display: flex;
      flex: 1;
      align-items: baseline;
      gap: 20px;
      min-width: 0;
    }

    #campus .campus-panel-title h2 {
      margin: 0;
      color: #080808;
      font-size: 25px;
      line-height: 1.15;
      font-weight: 900;
      white-space: nowrap;
    }

    #campus .campus-panel-title span {
      color: #6f6f6f;
      font-size: 14px;
      font-weight: 700;
    }

    #campus .campus-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 34px;
      padding: 0 16px;
      border: 1px solid #cfcfcf;
      border-radius: 999px;
      background: transparent;
      color: #171717;
      font-size: 12px;
      font-family: inherit;
      font-weight: 900;
      cursor: pointer;
      appearance: none;
      white-space: nowrap;
    }

    #campus .campus-link span {
      margin-left: 12px;
      font-size: 18px;
      line-height: 1;
    }

    #campus .campus-timeline {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 18px;
      height: calc(100% - 60px);
      min-height: 0;
      padding-top: 24px;
      margin: 0;
    }

    #campus .campus-timeline-item {
      position: relative;
      display: grid;
      grid-template-rows: auto 64px minmax(0, 1fr);
      min-width: 0;
      min-height: 0;
    }

    #campus .campus-timeline-index {
      display: block;
      color: var(--blue);
      font-size: 18px;
      line-height: 1.1;
      font-weight: 900;
    }

    #campus .campus-timeline-item h3 {
      margin: 6px 0 0;
      color: #080808;
      font-size: 16px;
      line-height: 1.25;
      font-weight: 900;
    }

    #campus .campus-time {
      display: block;
      margin-top: 8px;
      color: #707070;
      font-size: 12px;
      font-weight: 700;
    }

    #campus .campus-line {
      position: relative;
      width: 1px;
      height: 54px;
      margin: 10px 0 0 11px;
      background: #b9b9b9;
    }

    #campus .campus-line::before {
      content: "";
      position: absolute;
      top: -5px;
      left: -5px;
      width: 11px;
      height: 11px;
      border-radius: 50%;
      border: 2px solid var(--blue);
      background: #ffffff;
      box-shadow: inset 0 0 0 2px #ffffff;
    }

    #campus .campus-line::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: -4px;
      width: 9px;
      height: 9px;
      border-radius: 2px;
      background: #9d9d9d;
    }

    #campus .campus-experience-card {
      display: grid;
      grid-template-rows: 38px auto minmax(114px, 1fr) auto;
      align-items: start;
      row-gap: 10px;
      min-height: 258px;
      height: 100%;
      padding: 17px 17px 30px;
      border: 1px solid #dddddd;
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.75);
    }

    #campus .campus-experience-card .campus-value-icon {
      width: 38px;
      height: 38px;
      margin-bottom: 0;
      background: #e8ddff;
      color: var(--blue);
      box-shadow: none;
    }

    #campus .campus-experience-card h4 {
      margin: 0;
      color: #080808;
      font-size: 15px;
      line-height: 1.25;
      font-weight: 900;
    }

    #campus .campus-experience-card p {
      margin: 0;
      color: #777777;
      font-size: 11px;
      line-height: 1.45;
      font-weight: 700;
      text-align: justify;
      text-justify: inter-ideograph;
    }

    #campus .campus-tags {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      align-content: center;
      gap: 6px;
      min-height: 30px;
      align-self: end;
      margin-top: -6px;
      padding-top: 0;
    }

    #campus .campus-tags span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 24px;
      padding: 0 10px;
      border: 1.5px solid var(--blue);
      border-radius: 999px;
      color: var(--blue);
      font-size: 10px;
      font-weight: 900;
      line-height: 1;
      white-space: nowrap;
    }

    #campus .campus-awards {
      display: grid;
      gap: 12px;
      height: calc(100% - 60px);
      min-height: 0;
      padding-top: 18px;
    }

    #campus .campus-award-tabs {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      align-items: center;
      color: #111111;
      font-size: 13px;
      font-weight: 900;
      text-align: center;
    }

    #campus .campus-award-tab {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 28px;
      border: 0;
      border-radius: 999px;
      padding: 0 12px;
      background: transparent;
      color: inherit;
      font: inherit;
      font-weight: inherit;
      cursor: pointer;
      transition: background 180ms ease, color 180ms ease;
    }

    #campus .campus-award-tab:focus-visible {
      outline: 2px solid rgba(75, 35, 255, 0.22);
      outline-offset: 2px;
    }

    #campus .campus-award-tab.is-active {
      color: var(--blue);
      background: #eee9ff;
    }

    #campus .campus-award-list {
      display: grid;
      gap: 7px;
    }

    #campus .campus-award-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 18px;
      min-height: 78px;
      padding: 14px 18px;
      border: 1px solid #dddddd;
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.74);
    }

    #campus .campus-award-item.is-placeholder {
      visibility: hidden;
      pointer-events: none;
    }

    #campus .campus-award-copy {
      display: grid;
      align-content: center;
      justify-items: start;
      gap: 5px;
      min-width: 0;
      text-align: left;
    }

    #campus .campus-award-copy strong {
      display: block;
      color: #111111;
      font-size: 19px;
      line-height: 1.2;
      font-weight: 900;
    }

    #campus .campus-award-copy span {
      color: #777777;
      font-size: 15px;
      line-height: 1.35;
      font-weight: 700;
    }

    #campus .campus-award-year {
      align-self: center;
      color: #777777;
      font-size: 14px;
      line-height: 1;
      font-weight: 700;
      text-align: right;
      white-space: nowrap;
    }

    #campus .campus-quote {
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: center;
      min-height: 0;
      padding: 0 42px 0 58px;
      margin-bottom: 2px;
    }

    #campus .campus-quote p {
      position: relative;
      margin: 0;
      color: #555555;
      font-size: 17px;
      line-height: 1.45;
      font-weight: 700;
    }

    #campus .campus-quote p::before {
      content: "";
      position: absolute;
      left: -26px;
      top: -7px;
      width: 3px;
      height: 36px;
      border-radius: 999px;
      background: var(--blue);
    }

    #campus .campus-quote-mark {
      margin-right: 28px;
      color: #777777;
      font-size: 40px;
      line-height: 0;
      vertical-align: -12px;
    }

    #campus .campus-signature {
      color: #555555;
      font-family: "Brush Script MT", "Segoe Script", cursive;
      font-size: 26px;
      line-height: 1;
      transform: rotate(-8deg);
      white-space: nowrap;
    }

    html.dark-mode #campus .campus-title,
    html.dark-mode #campus .campus-value strong,
    html.dark-mode #campus .campus-panel-title h2,
    html.dark-mode #campus .campus-timeline-item h3,
    html.dark-mode #campus .campus-experience-card h4,
    html.dark-mode #campus .campus-award-copy strong {
      color: var(--ink);
    }

    html.dark-mode #campus .campus-panel,
    html.dark-mode #campus .campus-quote,
    html.dark-mode #campus .campus-experience-card,
    html.dark-mode #campus .campus-award-item {
      background: rgba(23, 25, 27, 0.76);
    }

    html.dark-mode .campus-experience-modal,
    html.dark-mode .campus-awards-modal {
      border-color: rgba(255, 255, 255, 0.08);
      background:
        linear-gradient(180deg, rgba(23, 25, 27, 0.96), rgba(17, 19, 21, 0.92));
      box-shadow: 0 28px 80px rgba(0, 0, 0, 0.42);
    }

    html.dark-mode .campus-experience-modal-copy h3,
    html.dark-mode .campus-experience-entry h4 {
      color: var(--ink);
    }

    html.dark-mode .campus-experience-modal-copy p,
    html.dark-mode .campus-experience-entry p,
    html.dark-mode .campus-experience-entry-time {
      color: #b6bcc7;
    }

    html.dark-mode .campus-experience-entry {
      border-color: rgba(255, 255, 255, 0.08);
      background: rgba(29, 31, 34, 0.82);
    }

    html.dark-mode .campus-awards-modal-card {
      border-color: rgba(255, 255, 255, 0.08);
      background: rgba(29, 31, 34, 0.82);
    }

    html.dark-mode .campus-experience-modal-close {
      background: rgba(33, 35, 38, 0.88);
      color: var(--ink);
    }

    html.dark-mode .campus-experience-modal-close:hover,
    html.dark-mode .campus-experience-modal-close:focus-visible {
      background: rgba(58, 47, 102, 0.92);
    }

    html.dark-mode .campus-award-image-close,
    html.dark-mode .campus-award-image-switch {
      background: rgba(33, 35, 38, 0.92);
      color: var(--ink);
    }

    html.dark-mode .campus-award-image-close:hover,
    html.dark-mode .campus-award-image-close:focus-visible,
    html.dark-mode .campus-award-image-switch:hover,
    html.dark-mode .campus-award-image-switch:focus-visible {
      background: rgba(58, 47, 102, 0.92);
    }

    html.dark-mode .campus-experience-modal-switch {
      background: rgba(33, 35, 38, 0.92);
      color: var(--ink);
    }

    html.dark-mode .campus-experience-modal-switch:hover,
    html.dark-mode .campus-experience-modal-switch:focus-visible {
      background: rgba(58, 47, 102, 0.92);
    }

    html.dark-mode #campus .campus-line::before {
      background: var(--surface);
      box-shadow: inset 0 0 0 2px var(--surface);
    }

    .contents {
      padding: 18px 22px;
      margin-bottom: 12px;
      scroll-margin-top: 90px;
    }

    .contents h2 {
      margin: 0 0 16px;
      font-size: 30px;
    }

    .toc-list {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
      counter-reset: toc;
    }

    .toc-list a {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 36px;
      padding: 0 10px;
      border-radius: 6px;
      background: #f7f7f7;
      color: var(--ink);
      font-size: 14px;
      font-weight: 800;
    }

    .toc-list a::after {
      content: "view";
      padding: 4px 10px;
      border-radius: 999px;
      background: var(--blue);
      color: #ffffff;
      font-size: 10px;
      text-transform: uppercase;
    }

    .project-block {
      margin-bottom: 12px;
      padding: 20px;
      scroll-margin-top: 90px;
    }

    .work-gallery,
    .work-gallery-compact {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 14px;
      grid-auto-flow: dense;
      align-items: stretch;
    }

    .work-group-stack {
      display: grid;
      gap: 18px;
    }

    .work-group {
      display: grid;
      gap: 12px;
    }

    .work-gallery-c4d {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      align-items: start;
    }

    .work-gallery-c4d.compact {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .work-gallery-c4d .work-card {
      margin: 0;
      display: flex;
      align-items: stretch;
      justify-content: center;
      aspect-ratio: 4 / 3;
      background: transparent;
      border: 1px solid color-mix(in srgb, var(--line) 70%, white 30%);
      border-radius: 14px;
      box-shadow: 0 14px 30px rgba(15, 23, 42, 0.05);
    }

    .work-gallery-c4d .work-card img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
      padding: 0;
    }

    .work-gallery-c4d.is-phone .work-card {
      aspect-ratio: 4 / 5;
    }

    #c4d .work-card.is-contain img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      padding: 0;
    }

    #creo .work-card.is-contain {
      aspect-ratio: auto;
      background: transparent;
    }

    #creo .work-card.is-contain img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
      object-position: center;
      padding: 0;
    }

    #keyshot .work-card.is-contain img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      padding: 0;
    }

    .work-row {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 14px;
      align-items: stretch;
      grid-auto-flow: dense;
    }

    .work-row--tomato {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
      align-items: stretch;
      padding-bottom: 8px;
    }

    .work-row--tomato .work-card {
      margin: 0;
      height: auto;
      display: block;
      background: transparent;
      border: 0;
      box-shadow: none;
      border-radius: 0;
    }

    .work-row--tomato .work-card img {
      width: 100%;
      height: auto;
      display: block;
      padding: 0;
      object-fit: contain;
    }

    .work-grid-uniform {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 14px;
      grid-auto-flow: dense;
    }

    .work-grid-uniform .work-card {
      margin: 0;
      grid-column: span 4;
      aspect-ratio: 4 / 5;
      display: block;
      background: #dfe7ef;
    }

    .work-grid-uniform .work-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      padding: 0;
    }

    .work-row .work-card {
      margin: 0;
      grid-column: span 3;
      aspect-ratio: 4 / 5;
      display: block;
      background: #dfe7ef;
    }

    .work-row .work-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      padding: 0;
    }

    .work-group-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding-bottom: 10px;
      border-bottom: 1px dashed var(--line);
    }

    .work-group-head h3 {
      margin: 0;
      font-size: 16px;
      font-weight: 800;
    }

    .work-group-head span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .work-card {
      position: relative;
      display: block;
      margin: 0;
      overflow: hidden;
      min-width: 0;
      border: 1px solid color-mix(in srgb, var(--line) 76%, white 24%);
      border-radius: 14px;
      background: #dfe7ef;
      box-shadow: 0 14px 30px rgba(15, 23, 42, 0.07);
    }

    .work-card img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
      padding: 0;
      transition: transform 220ms ease;
    }

    .work-card:hover img {
      transform: scale(1.03);
    }

    .work-card.is-contain {
      background: #dfe7ef;
    }

    .work-card.is-contain img {
      object-fit: contain;
      padding: 10px;
    }

    .work-row--singleline {
      display: flex;
      flex-wrap: nowrap;
      gap: 20px;
      justify-content: space-between;
      align-items: stretch;
      overflow-x: hidden;
    }

    .work-row--singleline > .work-card,
    .work-row.work-row--singleline > .work-card,
    .work-row--singleline > .work-card:nth-child(n),
    .work-row.work-row--singleline > .work-card:nth-child(n),
    .work-row.work-row--singleline > .work-card:nth-child(5n + 1),
    .work-row.work-row--singleline > .work-card:nth-child(5n + 3),
    .work-row.work-row--singleline > .work-card:nth-child(5n) {
      flex: 0 0 auto;
      width: auto;
      height: clamp(420px, 40vw, 560px);
      aspect-ratio: auto;
      background: transparent;
    }

    .work-row--singleline > .work-card img,
    .work-row.work-row--singleline > .work-card img {
      width: auto;
      height: 100%;
      display: block;
      object-fit: contain;
      object-position: center;
      padding: 0;
    }

    .work-gallery--random {
      display: block;
      column-count: 2;
      column-gap: 14px;
      column-fill: balance;
    }

    .work-gallery--random > .work-card {
      position: relative;
      background: linear-gradient(180deg, #eef2f7 0%, #e2e8f0 100%);
      border: 1px solid color-mix(in srgb, var(--line) 70%, white 30%);
      border-radius: 18px;
      box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
      aspect-ratio: var(--media-ratio, 4 / 5) !important;
      height: auto;
      min-height: 220px;
      break-inside: avoid;
      margin-bottom: 14px;
      display: block;
    }

    .work-gallery--random > .work-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .work-gallery > .work-card,
    .work-gallery-compact > .work-card {
      grid-column: span 4;
      aspect-ratio: 4 / 5;
    }

    .work-gallery > .work-card:nth-child(5n + 1),
    .work-gallery-compact > .work-card:nth-child(5n + 1),
    .work-row > .work-card:nth-child(5n + 1),
    .work-grid-uniform > .work-card:nth-child(5n + 1) {
      grid-column: span 8;
      aspect-ratio: 16 / 10;
    }

    .work-gallery > .work-card:nth-child(5n + 3),
    .work-gallery-compact > .work-card:nth-child(5n + 3),
    .work-row > .work-card:nth-child(5n + 3),
    .work-grid-uniform > .work-card:nth-child(5n + 3) {
      grid-column: span 4;
      aspect-ratio: 3 / 4;
    }

    .work-gallery > .work-card:nth-child(5n),
    .work-gallery-compact > .work-card:nth-child(5n),
    .work-row > .work-card:nth-child(5n),
    .work-grid-uniform > .work-card:nth-child(5n) {
      grid-column: span 6;
      aspect-ratio: 1 / 1;
    }

    .work-gallery--random > .work-card:nth-child(n) { grid-column: auto; aspect-ratio: auto; }

    .work-grid-3x3,
    .work-grid-3x2 {
      display: grid;
      gap: 14px;
      align-items: stretch;
    }

    .work-grid-3x3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .work-grid-3x2 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .work-grid-3x3 .work-card,
    .work-grid-3x2 .work-card {
      margin: 0;
      aspect-ratio: 4 / 3;
      background: #e7edf4;
    }

    .work-grid-rhino {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      align-items: stretch;
    }

    .work-grid-rhino .work-card {
      margin: 0;
      aspect-ratio: auto;
      background: transparent;
    }

    .work-grid-rhino .work-card img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
      object-position: center;
      padding: 0;
    }

    #rhino .work-gallery-compact {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      align-items: stretch;
    }

    #rhino .work-gallery-compact > .work-card,
    #rhino .work-gallery-compact > .work-card:nth-child(n),
    #rhino .work-gallery-compact > .work-card:nth-child(5n + 1),
    #rhino .work-gallery-compact > .work-card:nth-child(5n + 3),
    #rhino .work-gallery-compact > .work-card:nth-child(5n) {
      grid-column: auto;
      aspect-ratio: auto;
      margin: 0;
      background: transparent;
    }

    #rhino .work-gallery-compact > .work-card img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
      object-position: center;
      padding: 0;
    }

    #rhino .work-gallery-compact > .work-card img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: contain;
      object-position: center;
      padding: 0;
    }

    .span-3,
    .span-4,
    .span-5,
    .span-6,
    .span-7,
    .span-8,
    .span-12,
    .row-2,
    .row-3 {
      grid-column: auto;
      grid-row: auto;
    }

    .work-note {
      margin: 0 0 14px;
      break-inside: avoid;
      padding: 18px 20px;
      border: 1px dashed var(--line);
      border-radius: 10px;
      background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
      color: var(--muted);
      font-size: 13px;
      line-height: 1.6;
    }

    @media (max-width: 1100px) {
      .work-gallery,
      .work-gallery-compact {
        grid-template-columns: repeat(8, minmax(0, 1fr));
      }

      .work-row {
        grid-template-columns: repeat(8, minmax(0, 1fr));
      }

      .work-row--singleline {
        gap: 16px;
      }

      .work-gallery-c4d,
      .work-gallery-c4d.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .work-grid-uniform {
        grid-template-columns: repeat(8, minmax(0, 1fr));
      }

      .work-gallery > .work-card,
      .work-gallery-compact > .work-card,
      .work-row > .work-card,
      .work-grid-uniform > .work-card {
        grid-column: span 4;
      }

      .work-gallery > .work-card:nth-child(5n + 1),
      .work-gallery-compact > .work-card:nth-child(5n + 1),
      .work-row > .work-card:nth-child(5n + 1),
      .work-grid-uniform > .work-card:nth-child(5n + 1),
      .work-gallery > .work-card:nth-child(5n),
      .work-gallery-compact > .work-card:nth-child(5n),
      .work-row > .work-card:nth-child(5n),
      .work-grid-uniform > .work-card:nth-child(5n) {
        grid-column: span 8;
      }

      .work-gallery--random > .work-card:nth-child(n) {
        grid-column: auto;
      }

      .work-row--singleline > .work-card:nth-child(n),
      .work-row.work-row--singleline > .work-card:nth-child(n),
      .work-row.work-row--singleline > .work-card:nth-child(5n + 1),
      .work-row.work-row--singleline > .work-card:nth-child(5n + 3),
      .work-row.work-row--singleline > .work-card:nth-child(5n) {
        height: clamp(320px, 34vw, 460px);
      }
    }

    @media (max-width: 700px) {
      .work-row--tomato {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .work-gallery--random {
        column-count: 1;
      }

      .work-gallery,
      .work-gallery-compact {
        grid-template-columns: 1fr;
      }

      .work-row {
        grid-template-columns: 1fr;
      }

      .work-row--singleline {
        display: grid;
        grid-template-columns: 1fr;
      }

      .work-gallery-c4d,
      .work-gallery-c4d.compact {
        grid-template-columns: 1fr;
      }

      .work-grid-uniform {
        grid-template-columns: 1fr;
      }

      .work-grid-3x3,
      .work-grid-3x2 {
        grid-template-columns: 1fr;
      }

      .work-gallery > .work-card,
      .work-gallery-compact > .work-card,
      .work-row > .work-card,
      .work-grid-uniform > .work-card,
      .work-gallery > .work-card:nth-child(5n + 1),
      .work-gallery-compact > .work-card:nth-child(5n + 1),
      .work-row > .work-card:nth-child(5n + 1),
      .work-grid-uniform > .work-card:nth-child(5n + 1),
      .work-gallery > .work-card:nth-child(5n + 3),
      .work-gallery-compact > .work-card:nth-child(5n + 3),
      .work-row > .work-card:nth-child(5n + 3),
      .work-grid-uniform > .work-card:nth-child(5n + 3),
      .work-gallery > .work-card:nth-child(5n),
      .work-gallery-compact > .work-card:nth-child(5n),
      .work-row > .work-card:nth-child(5n),
      .work-grid-uniform > .work-card:nth-child(5n) {
        grid-column: auto;
        aspect-ratio: 4 / 5;
      }

      .work-gallery--random {
        column-count: 1;
      }

      .work-gallery--random > .work-card:nth-child(n) {
        grid-column: auto;
        aspect-ratio: auto;
      }

      .work-row--singleline > .work-card:nth-child(n),
      .work-row.work-row--singleline > .work-card:nth-child(n),
      .work-row.work-row--singleline > .work-card:nth-child(5n + 1),
      .work-row.work-row--singleline > .work-card:nth-child(5n + 3),
      .work-row.work-row--singleline > .work-card:nth-child(5n) {
        width: 100%;
        height: auto;
        grid-column: auto;
      }
    }

    .block-title {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 18px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--line);
    }

    .block-title h2 {
      margin: 0;
      font-size: 28px;
    }

    .block-title span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
    }

    #work .project-block.is-cascade-revealing {
      opacity: 0;
      transform: translateY(42px) scale(0.985);
      filter: blur(12px);
    }

    #work .project-block.is-cascade-revealing.is-cascade-visible {
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
      transition:
        opacity 420ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
        filter 420ms ease;
    }

    .logo-board {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }

    .logo-tile {
      display: grid;
      place-items: center;
      min-height: 92px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fbfbfb;
      font-weight: 900;
      text-align: center;
    }

    .script {
      font-family: Georgia, serif;
      font-style: italic;
      font-size: 30px;
    }

    .mono {
      font-size: 24px;
      letter-spacing: 1px;
    }

    .brand-system {
      display: grid;
      grid-template-columns: 1.05fr 0.95fr;
      gap: 16px;
    }

    .mascot {
      min-height: 260px;
      border-radius: 8px;
      background:
        radial-gradient(circle at 50% 36%, var(--yellow) 0 23%, transparent 23.5%),
        radial-gradient(circle at 42% 31%, #111111 0 4%, transparent 4.5%),
        radial-gradient(circle at 58% 31%, #111111 0 4%, transparent 4.5%),
        linear-gradient(#111111, #111111) 45% 56% / 60px 12px no-repeat,
        var(--cream);
      border: 1px solid var(--line);
    }

    .specs {
      display: grid;
      gap: 10px;
    }

    .spec {
      min-height: 78px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fbfbfb;
    }

    .swatches {
      display: flex;
      gap: 8px;
      margin-top: 10px;
    }

    .swatch {
      width: 34px;
      height: 34px;
      border: 1px solid #cfcfcf;
      border-radius: 50%;
    }

    .mockup-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
      margin-top: 16px;
    }

    .pack {
      min-height: 190px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background:
        linear-gradient(90deg, transparent 0 36%, rgba(0, 0, 0, 0.12) 36% 38%, transparent 38%),
        radial-gradient(circle at 50% 35%, var(--orange) 0 18%, transparent 18.5%),
        var(--cream);
    }

    .poster-wall {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
      margin-top: 16px;
    }

    .brand-poster {
      min-height: 260px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #f8f4ea;
    }

    .brand-poster.dark {
      color: #ffffff;
      background: #151515;
    }

    .brand-poster.blue {
      color: #ffffff;
      background:
        linear-gradient(135deg, transparent 0 44%, #ffffff 44% 49%, transparent 49%),
        var(--blue);
    }

    .brand-poster strong {
      display: block;
      margin-top: 170px;
      font-size: 24px;
      line-height: 0.95;
    }

    .identity-system {
      display: grid;
      grid-template-columns: 0.75fr 1.25fr;
      gap: 16px;
    }

    .symbol-sheet {
      min-height: 280px;
      padding: 24px;
      border-radius: 8px;
      background: #ffffff;
      border: 1px solid var(--line);
    }

    html.dark-mode .logo-process {
      background:
        linear-gradient(90deg, rgba(75, 35, 255, 0.22) 1px, transparent 1px) 0 0 / 26px 26px,
        linear-gradient(rgba(75, 35, 255, 0.22) 1px, transparent 1px) 0 0 / 26px 26px,
        var(--surface);
    }

    .big-symbol {
      display: grid;
      place-items: center;
      width: 110px;
      height: 110px;
      margin-bottom: 16px;
      border-radius: 50%;
      color: #ffffff;
      background: var(--blue);
      font-size: 70px;
      font-weight: 900;
    }

    .logo-process {
      min-height: 280px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background:
        linear-gradient(90deg, rgba(75, 35, 255, 0.14) 1px, transparent 1px) 0 0 / 26px 26px,
        linear-gradient(rgba(75, 35, 255, 0.14) 1px, transparent 1px) 0 0 / 26px 26px,
        #ffffff;
    }

    .merch-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
    }

    .shirt,
    .bag {
      min-height: 280px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fafafa;
      position: relative;
      overflow: hidden;
    }

    .shirt::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 42px;
      width: 180px;
      height: 210px;
      transform: translateX(-50%);
      clip-path: polygon(24% 0, 40% 0, 45% 9%, 55% 9%, 60% 0, 76% 0, 100% 22%, 82% 43%, 82% 100%, 18% 100%, 18% 43%, 0 22%);
      background: #151515;
    }

    .shirt::after {
      content: "URBN";
      position: absolute;
      left: 50%;
      top: 118px;
      transform: translateX(-50%);
      color: var(--blue);
      font-weight: 900;
      font-size: 28px;
    }

    .bag::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 76px;
      width: 190px;
      height: 160px;
      transform: translateX(-50%);
      border: 1px solid #222222;
      border-top: 0;
      background: #f8f8f8;
    }

    .bag::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 44px;
      width: 96px;
      height: 68px;
      transform: translateX(-50%);
      border: 9px solid #222222;
      border-bottom: 0;
      border-radius: 80px 80px 0 0;
    }

    .has-js .reveal {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 520ms ease, transform 520ms ease;
    }

    .has-js .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    .contact-overlay {
      position: fixed;
      inset: 0;
      z-index: 40;
      background: rgba(20, 20, 20, 0.42);
      backdrop-filter: blur(9px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 220ms ease;
    }

    .contact-drawer {
      position: fixed;
      top: 22px;
      right: 22px;
      bottom: 22px;
      z-index: 41;
      width: min(920px, calc(100vw - 44px));
      max-width: 45vw;
      overflow: hidden;
      padding: clamp(28px, 3.2vw, 42px);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 20px;
      background: #030303;
      color: #ffffff;
      box-shadow: 0 28px 70px rgba(0, 0, 0, 0.38);
      transform: translateX(calc(100% + 44px));
      transition: transform 260ms ease;
    }

    body.contact-open {
      overflow: hidden;
    }

    body.contact-open .contact-overlay {
      opacity: 1;
      pointer-events: auto;
    }

    body.contact-open .contact-drawer {
      transform: translateX(0);
    }

    .drawer-head {
      display: flex;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: 30px;
    }

    .drawer-head h2 {
      max-width: 100%;
      white-space: nowrap;
      margin: 0;
      font-size: clamp(38px, 3.8vw, 54px);
      line-height: 0.96;
      letter-spacing: 0;
    }

    .drawer-head h2 span {
      color: #666666;
    }

    .drawer-close {
      display: grid;
      grid-template-columns: repeat(3, 5px);
      gap: 4px;
      width: 42px;
      height: 42px;
      padding: 8px;
      border: 0;
      background: transparent;
      color: #ffffff;
      cursor: pointer;
    }

    .drawer-close span {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: currentColor;
    }

    .contact-form {
      display: grid;
      gap: 14px;
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .contact-form input,
    .contact-form textarea {
      width: 100%;
      min-height: 58px;
      padding: 0 20px;
      border: 1px solid #2c2c2c;
      border-radius: 8px;
      outline: 0;
      background: #050505;
      color: #ffffff;
      font: inherit;
      font-size: 16px;
    }

    .contact-form textarea {
      min-height: 155px;
      padding-top: 20px;
      resize: vertical;
    }

    .contact-form input:focus,
    .contact-form textarea:focus {
      border-color: var(--blue);
    }

    .contact-status {
      min-height: 20px;
      margin: -8px 0 0;
      color: #a9a9a9;
      font-size: 13px;
    }

    .contact-status.is-error {
      color: #ff8b8b;
    }

    .contact-status.is-success {
      color: #9fe3b0;
    }

    .contact-honeypot {
      position: absolute;
      left: -9999px;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }

    .service-title {
      margin: 22px 0 8px;
      font-size: 18px;
      font-weight: 800;
    }

    .service-options {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px 38px;
      margin: 0 0 28px;
      padding: 0;
      border: 0;
    }

    .service-options label {
      display: flex;
      align-items: center;
      gap: 12px;
      color: #888888;
      font-size: 15px;
    }

    .service-options input {
      width: 18px;
      min-height: 18px;
      height: 18px;
      accent-color: #d8d8d8;
    }

    .submit-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 18px;
      width: fit-content;
      min-height: 58px;
      padding: 0 34px;
      border: 0;
      border-radius: 8px;
      background: #d9d9d9;
      color: #111111;
      font: inherit;
      font-size: 18px;
      font-weight: 800;
      cursor: pointer;
    }

    .submit-button::after {
      content: "";
      width: 16px;
      height: 24px;
      background:
        radial-gradient(circle, #111111 0 2px, transparent 2.5px) 0 0 / 8px 8px;
    }

    .footer {
      max-width: 760px;
      margin: 0 auto;
      padding: 26px 0 0;
      color: var(--muted);
      font-size: 12px;
      text-align: center;
    }

    @media (max-width: 720px) {
      .behance-bar {
        grid-template-columns: 52px 1fr 52px;
        min-height: 74px;
        padding: 8px 10px;
      }

      .be-nav {
        gap: 3px;
        width: min(100%, 420px);
        min-height: 42px;
        padding: 5px;
        border-radius: 15px;
        overflow-x: auto;
        scrollbar-width: none;
      }

      .be-nav::-webkit-scrollbar {
        display: none;
      }

      .nav-link {
        min-width: 58px;
        min-height: 32px;
        padding: 0 10px;
        font-size: 12px;
      }

      .be-logo,
      .mail-button {
        width: 46px;
        height: 46px;
      }

      .experience-card-detail {
        margin-top: -14px;
      }

      .experience-card.is-open .experience-card-detail {
        padding-top: 18px;
      }

      .experience-detail-media {
        grid-template-columns: 1fr;
        gap: 10px;
      }

      .experience-detail-media--photo {
        grid-template-columns: 1fr;
      }

      .logo-mark {
        width: 28px;
        height: 28px;
      }

      .page-shell {
        padding-inline: 10px;
      }

      .tab-panel {
        min-height: auto;
      }

      body.lock-skill-scroll .page-shell,
      body.lock-project-scroll .page-shell,
      body.lock-campus-scroll .page-shell {
        height: auto;
        min-height: calc(100dvh - 74px);
        overflow: visible;
      }

      body.lock-skill-scroll #skills,
      body.lock-project-scroll #project,
      body.lock-campus-scroll #campus,
      body.lock-campus-scroll .project-frame,
      body.lock-project-scroll .project-frame {
        height: auto;
        overflow: visible;
      }

      .hero-grid,
      .profile-grid,
      .resume-grid,
      .internship-project-grid,
      .brand-system,
      .identity-system,
      .merch-grid,
      .tab-intro,
      .skill-board,
      .metric-grid,
      .aboutme-grid,
      .intro-box,
      .contact-tile-grid {
        grid-template-columns: 1fr;
      }

      .skills-directory {
        height: 100%;
        min-height: 0;
        padding: 18px 8px;
      }

      .skill-index {
        gap: 15px;
        width: min(100%, 640px);
      }

      .skill-index-item {
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 10px;
      }

      .skill-number {
        font-size: clamp(34px, 10vw, 46px);
      }

      .skill-title {
        font-size: clamp(28px, 8vw, 38px);
      }

      .skill-title {
        margin-bottom: 10px;
      }

      .skill-tags {
        gap: 10px;
      }

      .skill-tag {
        min-height: 34px;
        padding: 6px 13px;
        font-size: 16px;
      }

      .skill-tag.long {
        border-radius: 13px;
        padding-block: 8px;
        font-size: 13px;
      }

      .personal-subnav {
        grid-template-columns: 1fr;
      }

      .personal-tabs {
        gap: 22px;
        overflow-x: auto;
      }

      .personal-detail-page {
        min-height: auto;
      }

      .personal-page-head,
      .personal-page-grid {
        grid-template-columns: 1fr;
      }

      .personal-page-title,
      .personal-page-note {
        min-height: auto;
      }

      .personal-timeline-list li {
        grid-template-columns: 1fr;
        gap: 8px;
      }

      .experience-layout {
        min-height: auto;
        padding: 26px 0 34px;
      }

      .experience-hero {
        padding-right: 56px;
      }

      .experience-hero h2 {
        font-size: clamp(44px, 14vw, 58px);
      }

      .experience-hero p {
        font-size: 16px;
      }

      .experience-down {
        top: 20px;
        right: 0;
        width: 46px;
        height: 46px;
      }

      .experience-list {
        gap: 16px;
        margin: 34px 0 26px;
      }

      .experience-card {
        grid-template-columns: 1fr 48px;
        gap: 14px 18px;
        min-height: 0;
        padding: 22px;
        border-radius: 20px;
      }

      .experience-year {
        grid-column: 1 / -1;
        min-height: 42px;
        padding: 0 16px;
        font-size: 18px;
      }

      .experience-card h3 {
        font-size: 26px;
      }

      .experience-card .experience-place {
        font-size: 19px;
      }

      .experience-card p {
        font-size: 15px;
      }

      .experience-card-toggle {
        width: 46px;
        height: 46px;
      }

      .experience-focus {
        grid-template-columns: 1fr auto 1fr;
        gap: 16px;
        margin: 0;
      }

      .experience-tags {
        gap: 10px;
        margin: 18px 0 0;
      }

      .experience-tags span {
        min-height: 36px;
        padding: 0 16px;
        font-size: 14px;
      }

      .about-photo {
        height: auto;
        min-height: 520px;
      }

      .about-name {
        left: 18px;
        top: 14px;
        max-width: calc(100% - 64px);
        font-size: clamp(36px, 10vw, 56px);
        line-height: 1.08;
      }

      .name-translation {
        font-size: inherit;
      }

      .about-name small {
        font-size: clamp(16px, 4.8vw, 24px);
      }

      .name-tomato {
        left: min(84%, 300px);
        top: 42px;
        width: 58px;
        height: 58px;
      }

      .spline-hint {
        left: 18px;
        bottom: 18px;
      }

      .spline-logo-mask {
        right: 0;
        bottom: 0;
        width: 210px;
        height: 66px;
      }

      .hero-grid,
      .hero-art {
        height: auto;
        min-height: calc(100vh - 130px);
      }

      .internship-stage {
        margin-inline: -10px;
      }

      .internship-hero {
        min-height: calc(100vh - 74px);
        padding: 82px 18px 28px;
        background-position: center;
      }

      .internship-hero-copy {
        max-width: 100%;
        padding-bottom: 0;
      }

      .internship-hero h1 {
        font-size: clamp(31px, 9vw, 46px);
        white-space: normal;
      }

      .internship-hero h1 span {
        font-size: clamp(20px, 5.4vw, 28px);
      }

      .internship-date {
        font-size: 15px;
      }

      .internship-company-panel {
        position: relative;
        right: auto;
        bottom: auto;
        width: auto;
        margin: 24px 0 0;
        font-size: 14px;
        line-height: 1.78;
      }

      .internship-company-panel p + p {
        margin-top: 14px;
      }

      .internship-scroll-cue {
        display: none;
      }

      .internship-projects {
        padding-inline: 10px;
      }

      .internship-project-card,
      .internship-project-card.tall {
        min-height: 0;
        aspect-ratio: 0.8;
      }

      .internship-project-card.wide {
        grid-column: span 1;
      }

      .resume-cover {
        height: auto;
        min-height: calc(100vh - 130px);
        padding: 28px 0 44px;
      }

      .resume-folder {
        max-height: 58vh;
      }

      .resume-folder-button {
        width: min(78vw, 420px);
        max-width: 100%;
      }

      .resume-modal {
        width: min(calc(100vw - 20px), 1120px);
      }

      .resume-preview-wrap {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 12px;
      }

      .resume-preview-card {
        width: min(92vw, 610px);
        height: min(78vh, 860px);
        padding: 4px;
        border-radius: 22px;
      }

      .resume-preview-card::after {
        inset: 4px;
        border-radius: 18px;
      }

      .resume-canvas-viewport {
        border-radius: 18px;
      }

      .resume-gesture-hint {
        width: 62px;
        min-height: 62px;
        padding: 10px;
      }

      .resume-close-button,
      .resume-download-button {
        width: 62px;
        height: 62px;
        margin: 0;
      }

      body.lock-project-scroll .page-shell {
        height: calc(100vh - 74px);
      }

      .project-files-scene {
        padding: 0;
        border-radius: 0;
      }

      .project-files-title {
        left: 14px;
        top: 10px;
      }

      .project-files-title span {
        display: none;
      }

      .project-folder-stack {
        width: 88vw;
        height: min(74vh, 620px);
        min-width: 0;
      }

      .project-folder {
        width: 100%;
        height: clamp(96px, 16vh, 136px);
      }

      .project-folder::before {
        width: clamp(220px, 72vw, 340px);
      }

      .project-folder-title {
        top: -12px;
        width: clamp(210px, 70vw, 330px);
        padding: 0 10px;
        font-size: 9px;
      }

      .project-folder-meta {
        right: 10px;
        bottom: 6px;
        max-width: 48%;
        font-size: 9px;
      }

      .project-drawer {
        width: 96vw;
        height: 84px;
        border-top-width: 12px;
      }

      .project-drawer-label {
        top: 24px;
        min-width: 142px;
        padding-inline: 14px;
      }

      .project-file-modal {
        width: 100vw;
        height: 92vh;
      }

      .project-file-board {
        inset: 3.5% 6% 3.5% 4%;
      }

      .project-log-sheet {
        left: 50%;
        top: 8%;
        width: 70%;
        min-height: 0;
        padding: 14px 13px 15px;
      }

      .project-log-sheet h2 {
        font-size: 23px;
      }

      .project-log-grid,
      .project-log-points {
        font-size: 11px;
      }

      .project-pocket {
        left: 9%;
        right: 9%;
        bottom: 5%;
        padding: 14px 16px 16px;
      }

      .project-pocket-label {
        font-size: clamp(23px, 7.2vw, 28px);
        letter-spacing: 0.055em;
      }

      .project-pocket-sub {
        font-size: 13px;
      }

      .project-file-board::before {
        display: none;
      }

      .project-evidence-cards {
        right: 8px;
        top: 8px;
        width: auto;
        height: auto;
      }

      .project-evidence-card:first-child {
        font-size: 14px;
      }

      .project-side-panel {
        right: 6%;
        top: 8%;
        width: 86%;
        height: 88%;
        padding: 14px;
      }

      body.side-panel-open .project-log-sheet {
        transform: translateX(-65%);
      }

      .project-file-close {
        right: -10px;
        top: -10px;
      }

      body.lock-personal-scroll {
        overflow: auto;
      }

      .personal-shell,
      .aboutme-grid {
        height: auto;
        overflow: visible;
      }

      .about-content {
        height: auto;
      }

      .intro-box h3,
      .intro-text,
      .intro-illustration {
        grid-column: 1;
      }

      .hero-title,
      .hero-art {
        min-height: 310px;
      }

      .logo-board,
      .mockup-grid,
      .poster-wall {
        grid-template-columns: 1fr 1fr;
      }

      .block-title {
        display: grid;
      }

      .contact-drawer {
        top: 10px;
        right: 10px;
        bottom: 10px;
        width: calc(100vw - 20px);
        max-width: none;
        padding: 24px;
      }

      .drawer-head {
        align-items: start;
      }

      .drawer-head h2 {
        white-space: normal;
        font-size: clamp(28px, 9vw, 40px);
        line-height: 1.04;
      }

      #campus .campus-page {
        gap: 12px;
        padding-top: 14px;
      }

      #campus .campus-hero {
        grid-template-columns: 1fr;
        gap: 24px;
        min-height: 0;
        padding: 10px 4px 0;
      }

      #campus .campus-title {
        font-size: clamp(42px, 15vw, 64px);
      }

      #campus .campus-title span {
        margin-top: 0;
      }

      #campus .campus-lead {
        gap: 20px;
      }

      #campus .campus-lead p {
        font-size: 16px;
        white-space: normal;
      }

      #campus .campus-values {
        grid-template-columns: 1fr;
      }

      #campus .campus-visual {
        min-height: 210px;
      }

      #campus .campus-folder-art {
        right: 66px;
        width: 110px;
        height: 138px;
      }

      #campus .campus-orbit {
        right: 4px;
        width: 122px;
        height: 122px;
      }

      #campus .campus-diagonal-line {
        right: 178px;
        width: 92px;
      }

      #campus .campus-dot-grid {
        left: 10px;
        bottom: 24px;
        gap: 14px;
      }

      #campus .campus-content,
      #campus .campus-timeline {
        grid-template-columns: 1fr;
      }

      #campus .campus-panel {
        min-height: 0;
        padding: 22px;
        border-radius: 16px;
      }

      #campus .campus-panel-head {
        display: grid;
        grid-template-columns: 38px 1fr;
        gap: 12px;
        padding-bottom: 20px;
      }

      #campus .campus-panel-title {
        display: grid;
        gap: 4px;
      }

      #campus .campus-panel-title h2 {
        font-size: 24px;
      }

      .campus-experience-modal-overlay,
      .campus-awards-modal-overlay {
        padding: 18px 12px;
      }

      .campus-experience-modal,
      .campus-awards-modal {
        width: min(calc(100vw - 24px), 920px);
        max-height: calc(100dvh - 24px);
        border-radius: 24px;
      }

      .campus-experience-modal-inner {
        gap: 18px;
        padding: 20px 18px 18px;
      }

      .campus-experience-modal-head {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .campus-experience-modal-copy h3 {
        font-size: 28px;
      }

      .campus-experience-modal-list {
        min-height: 0;
      }

      .campus-experience-modal-page {
        grid-template-columns: 1fr;
        min-height: 0;
      }

      .campus-experience-modal-nav {
        top: auto;
        right: 0;
        bottom: 18px;
        grid-auto-flow: column;
        transform: none;
      }

      .campus-experience-modal-close,
      .campus-experience-modal-switch {
        width: 58px;
        height: 58px;
      }

      .campus-experience-modal-close,
      .campus-experience-modal-switch {
        font-size: 26px;
      }

      .campus-experience-modal-close {
        top: auto;
        right: auto;
        left: 0;
        bottom: 18px;
      }

      .campus-awards-modal-list {
        flex-direction: column;
      }

      .campus-awards-modal-list .campus-award-tabs {
        grid-template-columns: 1fr;
        text-align: left;
      }

      .campus-award-modal-list-container {
        grid-template-columns: 1fr;
      }

      .campus-awards-modal-card {
        grid-template-columns: 1fr;
      }

      .campus-awards-modal-card .campus-award-year {
        grid-column: auto;
      }

      .campus-award-image-modal {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr) 58px;
        width: min(100%, calc(100vw - 24px));
        max-height: calc(100dvh - 24px);
        gap: 12px;
      }

      .campus-award-image-nav {
        position: static;
        top: auto;
        right: auto;
        grid-row: 2;
        justify-self: end;
        grid-auto-flow: column;
        gap: 12px;
      }

      .campus-award-image-close,
      .campus-award-image-switch {
        width: 58px;
        height: 58px;
      }

      .campus-award-image-close,
      .campus-award-image-prev,
      .campus-award-image-next {
        position: static;
        top: auto;
        right: auto;
        grid-row: 2;
        align-self: center;
      }

      .campus-award-image-close { justify-self: start; }
      .campus-award-image-prev { justify-self: center; }
      .campus-award-image-next { justify-self: end; }

      #campus .campus-link {
        grid-column: 1 / -1;
        width: fit-content;
      }

      #campus .campus-timeline {
        gap: 18px;
        padding-top: 24px;
      }

      #campus .campus-timeline-item {
        grid-template-rows: auto auto;
        grid-template-columns: 34px 1fr;
        gap: 0 18px;
      }

      #campus .campus-timeline-item > div:first-child,
      #campus .campus-experience-card {
        grid-column: 2;
      }

      #campus .campus-line {
        grid-column: 1;
        grid-row: 1 / 3;
        height: 100%;
        min-height: 188px;
        margin: 12px auto 0;
      }

      #campus .campus-experience-card {
        min-height: 0;
        margin-top: 20px;
      }

      #campus .campus-award-tabs {
        grid-template-columns: 1fr;
        text-align: left;
      }

      #campus .campus-award-tab {
        justify-content: flex-start;
        padding-left: 14px;
      }

      #campus .campus-award-item {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      #campus .campus-award-year {
        grid-column: auto;
        text-align: left;
      }

      #campus .campus-quote {
        grid-template-columns: 1fr;
        gap: 20px;
        min-height: 0;
        padding: 24px 24px 28px 48px;
      }

      #campus .campus-quote p {
        font-size: 16px;
      }

      #campus .campus-signature {
        justify-self: end;
      }

      .form-row,
      .service-options {
        grid-template-columns: 1fr;
      }

      .project-files-title,
      .project-folder-title,
      .project-folder-meta,
      .project-drawer-label {
        white-space: normal;
      }
    }

    /* Row-based stagger reveal for internship cards */
    .has-js .internship-project-card.data-row-1 {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 520ms ease, transform 520ms ease;
    }
    .has-js .internship-project-card.data-row-1.is-visible {
      opacity: 1;
      transform: translateY(0);
    }
    .has-js .internship-project-card.data-row-2 {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 520ms ease, transform 520ms ease;
    }
    .has-js .internship-project-card.data-row-2.is-visible {
      opacity: 1;
      transform: translateY(0);
    }
    .has-js .internship-project-card.data-row-1.is-visible:hover,
    .has-js .internship-project-card.data-row-1.is-visible:focus-visible,
    .has-js .internship-project-card.data-row-2.is-visible:hover,
    .has-js .internship-project-card.data-row-2.is-visible:focus-visible {
      transform: translateY(-6px) scale(1.018);
    }
    .internship-project-card:nth-child(1) { transition-delay: 0ms; }
    .internship-project-card:nth-child(2) { transition-delay: 90ms; }
    .internship-project-card:nth-child(3) { transition-delay: 180ms; }
    .internship-project-card:nth-child(4) { transition-delay: 270ms; }
    .internship-project-card:nth-child(5) { transition-delay: 0ms; }
    .internship-project-card:nth-child(6) { transition-delay: 90ms; }
    .internship-project-card:nth-child(7) { transition-delay: 180ms; }
    .internship-project-card:nth-child(8) { transition-delay: 270ms; }

    /* Internship card modal */
    .internship-modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 72;
      display: grid;
      place-items: center;
      padding: 32px clamp(16px, 3vw, 40px);
      background: rgba(16, 17, 18, 0.34);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 180ms ease;
      will-change: opacity;
    }
    .internship-modal-overlay.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .internship-modal {
      position: relative;
      display: grid;
      width: min(1572px, 100%);
      grid-template-columns: minmax(0, 1fr) 70px;
      grid-template-rows: repeat(3, 70px);
      align-items: center;
      gap: 14px 22px;
      transform: translateY(18px) scale(0.98);
      transition: transform 180ms ease;
      will-change: transform;
    }
    .internship-modal-overlay.is-open .internship-modal {
      transform: translateY(0) scale(1);
    }
    .internship-modal-box {
      grid-row: 1 / 4;
      width: 100%;
      height: min(82vh, 840px);
      background: rgba(248, 248, 248, 0.92);
      border: 1px solid rgba(255, 255, 255, 0.48);
      border-radius: 22px;
      overflow: hidden;
      box-shadow: 0 34px 90px rgba(0, 0, 0, 0.26);
    }
    .internship-modal-page {
      display: none;
      width: 100%;
      height: 100%;
      min-height: 0;
    }
    .internship-modal-page.is-active {
      display: grid;
    }
    .internship-modal-page.is-text {
      align-content: center;
      padding: clamp(34px, 5vw, 72px);
    }
    .internship-modal-page.is-image {
      place-items: center;
      padding: clamp(18px, 2vw, 28px);
      background: #ffffff;
    }
    .internship-modal-image {
      display: block;
      max-width: 100%;
      max-height: 100%;
      width: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      border-radius: 16px;
      min-width: 0;
      min-height: 0;
      transition: opacity 0.3s ease;
    }
    .internship-modal-image.is-loading {
      opacity: 0;
    }
    .internship-modal-action {
      display: grid;
      place-items: center;
      width: 70px;
      height: 70px;
      border: none;
      background: rgba(255, 255, 255, 0.94);
      border-radius: 50%;
      cursor: pointer;
      color: #111111;
      box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
      line-height: 1;
    }
    .internship-modal-close {
      align-self: end;
      font-size: 30px;
    }
    .internship-modal-prev,
    .internship-modal-next {
      font-size: 34px;
      font-weight: 500;
    }
    .internship-modal-action:hover,
    .internship-modal-action:focus-visible {
      background: var(--blue);
      color: #ffffff;
      transform: translateY(-3px) scale(1.04);
      box-shadow: 0 24px 54px rgba(34, 0, 216, 0.34);
      outline: 0;
    }
    .internship-modal-action:disabled {
      opacity: 0.34;
      cursor: default;
      transform: none;
      background: rgba(255, 255, 255, 0.8);
      color: #111111;
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
    }
    .internship-modal-box h2 {
      margin: 0 0 10px;
      font-size: clamp(30px, 3.4vw, 58px);
      font-weight: 700;
      color: #111;
    }
    .internship-modal-box .modal-tag {
      display: inline-block;
      font-size: 13px;
      color: #666;
      margin-bottom: 22px;
    }
    .internship-modal-box .modal-desc {
      max-width: 760px;
      font-size: clamp(15px, 1.05vw, 18px);
      line-height: 1.75;
      color: #444;
      white-space: pre-line;
    }
    .internship-modal-box .modal-desc.is-list {
      display: grid;
      gap: 12px;
      max-width: 1200px;
      margin: 0;
      padding: 0;
      list-style: none;
      white-space: normal;
    }
    .internship-modal-box .modal-desc.is-list li {
      position: relative;
      padding-left: 20px;
      font-size: clamp(14px, 0.95vw, 17px);
      line-height: 1.58;
      color: #333333;
    }
    .internship-modal-box .modal-desc.is-list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.79em;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #111111;
      transform: translateY(-50%);
    }
    .internship-modal-box .modal-desc.is-list li.no-bullet::before {
      display: none;
    }
    .internship-modal-image-grid {
      display: grid;
      place-items: center;
      gap: 18px;
      width: 100%;
      height: 100%;
      min-width: 0;
      min-height: 0;
    }
    .internship-modal-image-grid.is-pair {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: center;
    }
    .internship-modal-image-grid.is-triple {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      align-items: center;
    }
    .internship-modal-image-grid.is-pair .internship-modal-image,
    .internship-modal-image-grid.is-triple .internship-modal-image {
      width: auto;
      height: min(100%, 640px);
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      justify-self: center;
      align-self: center;
      border: 2px solid #111111;
      border-radius: 12px;
    }
    .internship-modal-image-grid.is-pair .internship-modal-image.is-emphasized {
      transform: scale(1.1);
      transform-origin: center;
    }
    .internship-modal-image-grid.is-pair.is-doudai-final {
      grid-template-columns: auto auto;
      justify-content: center;
      align-items: center;
      gap: clamp(16px, 2vw, 28px);
    }
    .internship-modal-image-frame {
      display: grid;
      place-items: center;
      height: min(100%, 680px);
      max-width: 100%;
      aspect-ratio: var(--image-frame-ratio, 1);
      overflow: hidden;
      background: #ffffff;
      border: 2px solid #111111;
      border-radius: 12px;
    }
    .internship-modal-image-frame .internship-modal-image {
      width: 100%;
      height: 100%;
      max-width: none;
      max-height: none;
      border: none !important;
      border-radius: 0;
      object-fit: contain;
      transition: opacity 0.3s ease;
    }
    .internship-modal-image-frame.is-notes .internship-modal-image {
      transform: scale(1.14);
      transform-origin: center;
    }
    .internship-modal-image-grid.no-border .internship-modal-image {
      border: none !important;
    }
    .internship-modal-image-grid.is-pair.no-border {
      grid-template-columns: auto auto;
      justify-content: center;
      align-items: center;
      gap: clamp(48px, 7vw, 120px);
    }
    .internship-modal-image-grid.is-pair.no-border .internship-modal-image {
      width: auto;
      height: min(100%, 704px);
      max-width: none;
      max-height: 100%;
      border-radius: 12px;
      object-fit: contain;
    }
    .internship-modal-count {
      margin-top: 30px;
      color: #999999;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0;
    }

    /* Dark mode for modal */
    html.dark-mode .internship-modal-overlay {
      background: rgba(10, 10, 10, 0.62);
    }
    html.dark-mode .internship-modal-box {
      background: #1e1e1e;
      color: #eee;
    }
    html.dark-mode .internship-modal-box h2 {
      color: #f5f5f5;
    }
    html.dark-mode .internship-modal-box .modal-tag {
      color: #aaa;
    }
    html.dark-mode .internship-modal-box .modal-desc {
      color: #ccc;
    }
    html.dark-mode .internship-modal-action {
      background: rgba(255, 255, 255, 0.08);
      color: #ddd;
    }
    html.dark-mode .internship-modal-action:hover {
      background: rgba(255, 255, 255, 0.14);
    }

    @media (max-width: 760px) {
      .internship-modal {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr) 58px;
        width: min(100%, calc(100vw - 24px));
        height: min(88vh, 720px);
        gap: 12px;
      }

      .internship-modal-box {
        grid-row: 1;
        width: 100%;
        height: 100%;
      }

      .internship-modal-action {
        width: 58px;
        height: 58px;
      }

      .internship-modal-image-grid.is-pair.is-doudai-final {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(2, minmax(0, 1fr));
      }

      .internship-modal-image-frame {
        height: 100%;
        width: auto;
      }

      .internship-modal-close,
      .internship-modal-prev,
      .internship-modal-next {
        grid-row: 2;
        align-self: center;
      }

      .internship-modal-close { justify-self: start; }
      .internship-modal-prev { justify-self: center; }
      .internship-modal-next { justify-self: end; }
    }






    /* Loading Screen */
    .loading-screen {
      position: fixed;
      inset: 0;
      width: 100vw;
      min-height: 100vh;
      min-height: 100dvh;
      background:
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12) 0, rgba(255, 255, 255, 0.03) 18%, transparent 42%),
        linear-gradient(180deg, #5330ff 0%, #4524f2 52%, #3112c8 100%);
      display: flex;
      flex-direction: column;
      gap: 30px;
      justify-content: center;
      align-items: center;
      z-index: 2147483647;
      opacity: 1;
      visibility: visible;
      transition:
        opacity 0.82s cubic-bezier(0.16, 1, 0.3, 1),
        visibility 0s linear 0s;
      will-change: opacity;
    }

    .loading-screen.is-hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition:
        opacity 1.05s cubic-bezier(0.16, 1, 0.3, 1),
        visibility 0s linear 1.05s;
    }

    .loading-spinner {
      position: relative;
      width: clamp(92px, 8.6vw, 128px);
      aspect-ratio: 1;
      border-radius: 50%;
      opacity: 0;
      filter: drop-shadow(0 18px 42px rgba(18, 7, 80, 0.22));
      animation: loadingSpinnerIn 0.42s cubic-bezier(0.16, 1, 0.3, 1) 0.1s forwards;
    }

    .loading-spinner-core {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 50%;
      animation: loadingSpin 1.05s linear infinite;
      transform: rotate(-88deg);
    }

    .loading-spinner-core::before {
      content: "";
      position: absolute;
      border-radius: 50%;
      inset: 0;
      background: conic-gradient(
        from 18deg,
        transparent 0deg,
        rgba(255, 255, 255, 0.04) 12deg,
        rgba(255, 255, 255, 0.16) 54deg,
        rgba(255, 255, 255, 0.42) 112deg,
        rgba(255, 255, 255, 0.72) 178deg,
        rgba(255, 255, 255, 0.94) 252deg,
        #ffffff 324deg,
        transparent 352deg,
        transparent 360deg
      );
    }

    .loading-spinner-core::after {
      content: "";
      position: absolute;
      inset: 17%;
      border-radius: 50%;
      background: #4524f2;
    }

    .loading-spinner-head {
      content: "";
      position: absolute;
      top: 3.5%;
      left: 65.5%;
      width: 25%;
      aspect-ratio: 1;
      border-radius: 50%;
      background: #ffffff;
      box-shadow: 0 0 16px rgba(255, 255, 255, 0.2);
      transform: scale(1);
      transform-origin: center;
    }

    .loading-label {
      color: #ffffff;
      font-family: Arial, "Microsoft YaHei", sans-serif;
      font-size: clamp(26px, 3vw, 40px);
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.12em;
      text-shadow: 0 10px 30px rgba(15, 5, 70, 0.22);
    }

    .loading-spinner,
    .loading-label {
      transition:
        opacity 0.32s ease,
        transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }

    html.is-revealing .loading-spinner,
    html.is-revealing .loading-label {
      opacity: 0;
      transform: translateY(-14px) scale(0.92);
    }

    @keyframes loadingSpin {
      from {
        transform: rotate(-88deg);
      }

      to {
        transform: rotate(272deg);
      }
    }

    @keyframes loadingSpinnerIn {
      to {
        opacity: 1;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html.is-loading:not(.is-revealing) body > .behance-bar,
      html.is-loading:not(.is-revealing) body > .page-shell {
        transform: none;
      }

      html.is-ready body > .behance-bar,
      html.is-ready body > .page-shell,
      .loading-screen,
      .loading-screen.is-hidden,
      .loading-spinner,
      .loading-label {
        transition-duration: 0.01ms;
      }
    }
