.work-view {
    min-height: 100svh;
    overflow-x: clip;
    background: #EFEFE5;
}

.work-orb-row {
    width: 100%;
    height: 12.5vw;
    display: flex;
    overflow: visible;
}

.work-orb {
    position: relative;
    flex: 0 0 12.5vw;
    width: 12.5vw;
    aspect-ratio: 1;
}

.work-orb::before {
    content: '';
    position: absolute;
    inset: -4%;
    border-radius: 50%;
    background: radial-gradient(
        circle closest-side,
        var(--work-orb-core) 0 72%,
        var(--work-orb-edge) 82%,
        transparent 96%
    );
}

.work-blob {
    position: absolute;
    display: block;
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(clamp(5px, 0.85vw, 14px));
    will-change: transform;
}

.work-blob-a {
    width: 38%;
    left: 18%;
    top: 18%;
    background: var(--work-color-a);
    animation: work-orbit-a 12s ease-in-out infinite;
}

.work-blob-b {
    width: 31%;
    right: 14%;
    bottom: 18%;
    background: var(--work-color-b);
    animation: work-orbit-b 14s ease-in-out infinite;
}

.work-orb:nth-child(1) { --work-color-a: #21f06f; --work-color-b: #163cff; --work-orb-core: rgba(185, 222, 202, 0.62); --work-orb-edge: rgba(185, 222, 202, 0.24); }
.work-orb:nth-child(2) { --work-color-a: #ff7a00; --work-color-b: #6d28d9; --work-orb-core: rgba(231, 205, 180, 0.62); --work-orb-edge: rgba(231, 205, 180, 0.24); }
.work-orb:nth-child(3) { --work-color-a: #00c9d8; --work-color-b: #ff2e88; --work-orb-core: rgba(181, 216, 224, 0.62); --work-orb-edge: rgba(181, 216, 224, 0.24); }
.work-orb:nth-child(4) { --work-color-a: #f5e900; --work-color-b: #083d77; --work-orb-core: rgba(230, 225, 174, 0.62); --work-orb-edge: rgba(230, 225, 174, 0.24); }
.work-orb:nth-child(5) { --work-color-a: #e63946; --work-color-b: #70e000; --work-orb-core: rgba(226, 193, 190, 0.62); --work-orb-edge: rgba(226, 193, 190, 0.24); }
.work-orb:nth-child(6) { --work-color-a: #a855f7; --work-color-b: #00a86b; --work-orb-core: rgba(213, 192, 228, 0.62); --work-orb-edge: rgba(213, 192, 228, 0.24); }
.work-orb:nth-child(7) { --work-color-a: #ff5c35; --work-color-b: #65d9ff; --work-orb-core: rgba(230, 204, 188, 0.62); --work-orb-edge: rgba(230, 204, 188, 0.24); }
.work-orb:nth-child(8) { --work-color-a: #191970; --work-color-b: #ff66c4; --work-orb-core: rgba(191, 192, 221, 0.62); --work-orb-edge: rgba(191, 192, 221, 0.24); }

.work-orb:nth-child(2n) .work-blob-a { animation-delay: -4s; }
.work-orb:nth-child(3n) .work-blob-b { animation-delay: -7s; }
.work-orb:nth-child(4n) .work-blob-a { animation-delay: -9s; }

@keyframes work-orbit-a {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(26%, -18%); }
    45% { transform: translate(10%, 30%); }
    70% { transform: translate(-28%, 16%); }
    86% { transform: translate(-16%, -22%); }
}

@keyframes work-orbit-b {
    0%, 100% { transform: translate(0, 0); }
    18% { transform: translate(-24%, 20%); }
    42% { transform: translate(-12%, -28%); }
    68% { transform: translate(24%, -14%); }
    84% { transform: translate(18%, 22%); }
}

.work-toolbar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    width: min(100% - 40px, 1440px);
    margin-inline: auto;
    padding-top: clamp(18px, 2.4vw, 34px);
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1;
}

.work-toolbar p {
    margin: 0;
    justify-self: center;
}

.work-toolbar a {
    color: inherit;
    text-decoration: none;
    transition: opacity 180ms ease;
}

.work-toolbar a:last-child { justify-self: end; }
.work-toolbar a:hover, .work-toolbar a:focus-visible { opacity: 0.5; }

.work-content {
    width: min(100% - 40px, 1440px);
    margin-inline: auto;
    padding-block: clamp(78px, 11vw, 168px) clamp(58px, 8vw, 112px);
}

.work-intro {
    display: grid;
    grid-template-columns: minmax(140px, 0.46fr) minmax(0, 1.54fr);
    column-gap: clamp(24px, 5vw, 92px);
    align-items: end;
    margin-bottom: clamp(72px, 11vw, 170px);
}

.work-kicker,
.project-type,
.project-title small,
.project-stack,
.feature-footer,
.project-index {
    font-size: clamp(12px, 0.9vw, 15px);
    letter-spacing: 0.045em;
    line-height: 1.2;
}

.work-kicker,
.project-type,
.project-title small,
.project-stack {
    text-transform: lowercase;
}

.work-kicker { margin: 0 0 10px; }

.work-intro h1 {
    max-width: 980px;
    margin: 0;
    font-size: clamp(58px, 10.5vw, 156px);
    font-weight: 300;
    line-height: 0.82;
    letter-spacing: -0.045em;
}

.work-intro h1 em {
    display: inline-block;
    margin-left: clamp(30px, 8vw, 128px);
    font-style: normal;
}

.work-lede {
    max-width: 270px;
    margin: 0 0 5px;
    font-size: clamp(20px, 1.7vw, 27px);
    line-height: 1.12;
}

.work-feature {
    display: grid;
    grid-template-columns: minmax(300px, 0.98fr) minmax(280px, 1.02fr);
    align-items: stretch;
    min-height: clamp(430px, 47vw, 690px);
    margin-bottom: clamp(110px, 16vw, 240px);
}

.feature-art {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #dcdcd2;
}

.feature-art p {
    position: absolute;
    right: 8%;
    bottom: 7%;
    margin: 0;
    color: rgba(0, 0, 0, 0.6);
    font-size: clamp(19px, 2vw, 30px);
    line-height: 0.85;
    text-align: right;
}

.feature-art-shibuya {
    background:
        radial-gradient(circle at 20% 18%, rgba(255, 215, 75, 0.86), transparent 16%),
        radial-gradient(circle at 76% 30%, rgba(65, 224, 207, 0.76), transparent 28%),
        radial-gradient(circle at 38% 82%, rgba(235, 54, 126, 0.76), transparent 24%),
        #d4d7d0;
}

.feature-orb {
    position: relative;
    width: min(62%, 430px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle closest-side, rgba(237, 237, 231, 0.62) 0 70%, rgba(237, 237, 231, 0.18) 85%, transparent 96%);
    filter: blur(0.2px);
}

.feature-orb span {
    position: absolute;
    display: block;
    border-radius: 50%;
    filter: blur(clamp(12px, 1.8vw, 28px));
    animation: work-feature-orbit 14s ease-in-out infinite;
}

.feature-orb span:nth-child(1) { width: 32%; aspect-ratio: 1; left: 20%; top: 20%; background: #ff5e36; }
.feature-orb span:nth-child(2) { width: 38%; aspect-ratio: 1; right: 12%; top: 35%; background: #5d32e9; animation-delay: -5s; }
.feature-orb span:nth-child(3) { width: 22%; aspect-ratio: 1; left: 37%; bottom: 12%; background: #12cfa5; animation-delay: -9s; }

@keyframes work-feature-orbit {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(16%, -12%) scale(1.12); }
    66% { transform: translate(-13%, 15%) scale(0.9); }
}

.feature-copy {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(28px, 4.4vw, 68px);
    background: #e5e5dc;
}

.project-type { margin: 0; }

.feature-copy h2 {
    margin: auto 0 clamp(30px, 5vw, 72px);
    font-size: clamp(54px, 8vw, 122px);
    font-weight: 300;
    line-height: 0.82;
    letter-spacing: -0.045em;
}

.feature-description {
    max-width: 440px;
    margin: 0 0 30px;
    font-size: clamp(20px, 1.85vw, 29px);
    line-height: 1.08;
}

.feature-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: rgba(0, 0, 0, 0.6);
}

.work-section-heading {
    display: grid;
    grid-template-columns: minmax(140px, 0.46fr) minmax(0, 1.54fr);
    column-gap: clamp(24px, 5vw, 92px);
    align-items: end;
    margin-bottom: clamp(34px, 5vw, 70px);
}

.work-section-heading .work-kicker { align-self: start; }

.work-section-heading h2 {
    margin: 0;
    font-size: clamp(38px, 5.5vw, 82px);
    font-weight: 300;
    line-height: 0.9;
    letter-spacing: -0.035em;
}

.work-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(18px, 4vw, 62px);
    border-top: 1px solid rgba(0, 0, 0, 0.28);
}

.work-project {
    min-width: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.28);
}

.work-project summary {
    display: grid;
    grid-template-columns: clamp(54px, 7vw, 104px) minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(14px, 2vw, 30px);
    min-height: clamp(120px, 12vw, 188px);
    cursor: pointer;
    list-style: none;
    outline-offset: 8px;
}

.work-project summary::-webkit-details-marker { display: none; }
.work-project summary:focus-visible { outline: 1px solid currentColor; }

.project-mark {
    position: relative;
    display: block;
    width: clamp(54px, 7vw, 104px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--project-orb, rgba(207, 207, 199, 0.75));
    overflow: hidden;
}

.project-mark i {
    position: absolute;
    display: block;
    width: var(--mark-size, 34%);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--mark-color);
    filter: blur(clamp(4px, 0.7vw, 9px));
    transition: transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.project-mark i:nth-child(1) { left: 16%; top: 23%; --mark-color: var(--project-a); }
.project-mark i:nth-child(2) { right: 10%; top: 38%; width: 42%; --mark-color: var(--project-b); }
.project-mark i:nth-child(3) { left: 36%; bottom: 10%; width: 24%; --mark-color: var(--project-c); }
.work-project summary:hover .project-mark i:nth-child(1), .work-project[open] .project-mark i:nth-child(1) { transform: translate(12%, 18%); }
.work-project summary:hover .project-mark i:nth-child(2), .work-project[open] .project-mark i:nth-child(2) { transform: translate(-12%, -16%); }
.work-project summary:hover .project-mark i:nth-child(3), .work-project[open] .project-mark i:nth-child(3) { transform: translate(18%, -10%); }

.project-title { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.project-title small { color: rgba(0, 0, 0, 0.58); }
.project-title strong { font-size: clamp(27px, 3vw, 45px); font-weight: 300; line-height: 0.9; letter-spacing: -0.025em; }
.project-index { align-self: start; padding-top: 3px; color: rgba(0, 0, 0, 0.52); }
.project-index::after { content: '+'; display: inline-block; margin-left: 8px; font-size: 1.15em; transition: transform 220ms ease; }
.work-project[open] .project-index::after { content: '−'; }

.project-body {
    display: grid;
    grid-template-columns: clamp(54px, 7vw, 104px) minmax(0, 1fr) auto;
    gap: clamp(14px, 2vw, 30px);
    padding: 0 0 clamp(24px, 3vw, 42px);
}

.project-body p:first-child {
    grid-column: 2;
    max-width: 430px;
    margin: 0;
    font-size: clamp(18px, 1.5vw, 23px);
    line-height: 1.12;
}

.project-stack {
    grid-column: 3;
    align-self: end;
    max-width: 110px;
    margin: 0;
    color: rgba(0, 0, 0, 0.58);
    text-align: right;
}

.project-canvas { --project-orb: rgba(185, 222, 202, 0.65); --project-a: #21f06f; --project-b: #163cff; --project-c: #f5e900; }
.project-toyphony { --project-orb: rgba(231, 205, 180, 0.65); --project-a: #ff7a00; --project-b: #6d28d9; --project-c: #ffcf4a; }
.project-aime { --project-orb: rgba(181, 216, 224, 0.65); --project-a: #00c9d8; --project-b: #ff2e88; --project-c: #083d77; }
.project-fred { --project-orb: rgba(230, 225, 174, 0.65); --project-a: #f5e900; --project-b: #083d77; --project-c: #e63946; }
.project-reader { --project-orb: rgba(226, 193, 190, 0.65); --project-a: #e63946; --project-b: #70e000; --project-c: #ffb000; }
.project-keeb { --project-orb: rgba(213, 192, 228, 0.65); --project-a: #a855f7; --project-b: #00a86b; --project-c: #65d9ff; }
.project-printer { --project-orb: rgba(230, 204, 188, 0.65); --project-a: #ff5c35; --project-b: #65d9ff; --project-c: #191970; }

.work-footer {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 30px;
    margin-top: clamp(100px, 16vw, 230px);
    font-size: clamp(18px, 1.5vw, 24px);
}

.work-footer p { margin: 0; }
.work-footer nav { display: flex; gap: clamp(18px, 3vw, 44px); }
.work-footer a { color: inherit; text-decoration: none; }
.work-footer a:hover, .work-footer a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 760px) {
    .work-orb-row { height: calc(50vw + clamp(10px, 3vw, 16px)); padding-top: clamp(10px, 3vw, 16px); flex-wrap: wrap; }
    .work-orb { flex: 0 0 25vw; width: 25vw; }
    .work-toolbar, .work-content { width: min(100% - 28px, 1440px); }
    .work-toolbar { grid-template-columns: 1fr auto; }
    .work-toolbar p { display: none; }
    .work-toolbar a:last-child { grid-column: 2; }
    .work-content { padding-top: 82px; }
    .work-intro, .work-section-heading { display: block; }
    .work-intro .work-kicker, .work-section-heading .work-kicker { margin-bottom: 30px; }
    .work-intro h1 { font-size: clamp(54px, 15vw, 105px); }
    .work-intro h1 em { margin-left: clamp(18px, 7vw, 56px); }
    .work-lede { max-width: 290px; margin: 36px 0 0 auto; }
    .work-feature { display: block; min-height: 0; }
    .feature-art { min-height: 78vw; }
    .feature-copy { min-height: 440px; padding: 26px 22px 28px; }
    .feature-copy h2 { margin-top: 80px; }
    .feature-description { max-width: 340px; }
    .work-section-heading h2 { max-width: 360px; }
    .work-grid { display: block; }
    .work-project summary { grid-template-columns: 62px minmax(0, 1fr) auto; gap: 16px; min-height: 125px; }
    .project-mark { width: 62px; }
    .project-title strong { font-size: clamp(25px, 7vw, 36px); }
    .project-body { grid-template-columns: 62px minmax(0, 1fr); gap: 16px; }
    .project-body p:first-child { grid-column: 2; }
    .project-stack { grid-column: 2; max-width: none; margin-top: 12px; text-align: left; }
    .work-footer { align-items: start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .work-blob, .feature-orb span, .project-mark i { animation: none; transition: none; }
}
