/* The same white canvas, with quiet movement inside the capability entrances. */
.capability-portals{align-items:start;gap:24px;padding:12px 0 30px}
.capability-portal{--portal-color:#85607b;--portal-wash:#eadde9;min-height:535px;position:relative;isolation:isolate;overflow:hidden;transition:transform .4s,border-color .4s,box-shadow .4s;background:#fffffff2}
.capability-portal[data-portal=visual]{--portal-color:#698b94;--portal-wash:#dbe9ee;margin-top:32px}
.capability-portal[data-portal=growth]{--portal-color:#998058;--portal-wash:#eee5d8;margin-top:12px}
.capability-portal:hover,.capability-portal:focus-within{transform:translateY(-6px);border-color:var(--portal-color);box-shadow:0 26px 65px #2922300e}
.capability-portal .portal-arrow{color:var(--portal-color);transition:transform .3s}
.capability-portal:hover .portal-arrow{transform:translate(3px,-3px)}
.portal-network{height:208px;margin:8px -12px 16px;position:relative;filter:none!important;isolation:isolate}
.portal-network__wash{position:absolute;inset:8% 8% 10%;border-radius:50%;background:radial-gradient(ellipse,var(--portal-wash),transparent 68%);opacity:.65;filter:blur(12px);z-index:-1}
.portal-network svg{width:100%;height:190px;overflow:visible;stroke-width:1;stroke:var(--portal-color)}
.portal-network .portal-wire{opacity:.3;stroke-dasharray:4 6;animation:portal-flow 15s linear infinite;animation-delay:var(--flow-delay);animation-play-state:paused}
.portal-network rect{fill:#ffffffed;stroke:#dedbe4;stroke-width:1;filter:drop-shadow(0 3px 4px #29233007)}
.portal-network circle{fill:var(--portal-color);stroke:none}
.portal-network text{fill:#666070;stroke:none;font-family:var(--type-body);font-size:9px;letter-spacing:0}
.portal-network .portal-network__core rect{fill:#fff;stroke:var(--portal-color)}
.portal-network .portal-network__core text{font-size:12px;fill:var(--portal-color);font-weight:500}
.portal-network .portal-network__core .portal-core-sub{font-family:var(--type-mono);font-size:5px;letter-spacing:.5px;fill:#98909f}
.portal-float{animation:portal-float 6s ease-in-out infinite;animation-delay:var(--float-delay);animation-play-state:paused}
.portal-float--1,.portal-float--4{animation-direction:reverse;animation-duration:7.5s}
.portal-network>span{font-size:7px;letter-spacing:.14em;color:#9a929f;margin-top:-3px}
.capability-portal.is-in-view .portal-float,.capability-portal.is-in-view .portal-wire{animation-play-state:running}
.capability-portal:hover .portal-network__core{filter:drop-shadow(0 2px 8px var(--portal-wash))}
@keyframes portal-float{0%,100%{transform:translate(0,0)}50%{transform:translate(2px,-5px)}}
@keyframes portal-flow{to{stroke-dashoffset:-160}}
.graph-signal{opacity:.65;pointer-events:none}
.graph-shell.is-motion-paused .graph-wire{animation-play-state:paused}
.graph-shell.is-motion-paused .graph-signal{opacity:0}
.graph-tools button:disabled{cursor:default;color:#8d8794;background:#f4f2f6}
/* Full artwork inside a uniform 4:3 presentation cover. */
.p-slide__inner{grid-template-columns:minmax(0,1.38fr) minmax(0,1fr);gap:clamp(28px,4vw,65px)}
.p-slide__camera-frame{aspect-ratio:4/3;max-height:63svh;overflow:hidden}
.p-slide__cover-open{display:block;width:100%;height:100%;position:relative;padding:0;background:#fff;cursor:pointer}
.p-slide__cover-open img{display:block;width:100%;height:100%;object-fit:contain}
.p-slide__frame-badge{z-index:2;pointer-events:none}
.cover-open-label{position:absolute;right:18px;bottom:18px;border-radius:25px;background:#fffffff0;backdrop-filter:blur(12px);border:1px solid #ffffffa0;padding:9px 14px;color:#36313b;font-size:11px;box-shadow:0 4px 14px #0000000c}
.p-slide__info{padding:clamp(24px,2.8vw,40px)}
.p-slide__title{font-size:clamp(22px,2.15vw,32px);line-height:1.5;margin-bottom:15px}
.p-slide__desc{line-height:1.95;margin:16px 0;color:#5d5864}
.p-slide__context{border-top:1px solid #e5e1e8;padding-top:15px;margin:16px 0 0}
.p-slide__context small{font-size:8px;color:#978395;letter-spacing:.04em;display:block;margin-bottom:7px}
.p-slide__context strong{font-size:12px;font-weight:500;color:#655161;display:block;line-height:1.7}
.p-slide__context p{font-size:11px;line-height:1.9;color:#827888;margin:7px 0 0}
.p-slide__source{font-size:9px;line-height:1.8;color:#8e8393;margin:15px 0 20px}
.p-slide__source span{display:block;font-size:8px;color:#a49aa8}
/* One scroll surface carries both rows. The second row is offset by half a card. */
.horizontal-workspace{--catalog-card-width:clamp(240px,21vw,290px);--catalog-gap:22px;padding-top:calc(var(--nav-height) + 88px)}
.horizontal-workspace__header{margin-bottom:18px}
.horizontal-workspace__header h3{font-size:29px}
.horizontal-workspace .catalog-controls{margin-bottom:19px}
.horizontal-workspace .works-grid{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:var(--catalog-card-width);gap:20px var(--catalog-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;align-items:stretch;padding:6px calc((var(--catalog-card-width) + var(--catalog-gap)) / 2 + 4px) 22px 2px}
.horizontal-workspace .work-card{width:var(--catalog-card-width);min-width:0;scroll-snap-align:start;transform:none;border-radius:19px;box-shadow:0 6px 20px #25202d04}
.horizontal-workspace .work-card:nth-child(even){transform:translateX(calc((var(--catalog-card-width) + var(--catalog-gap)) / 2))}
.horizontal-workspace .work-card__media{aspect-ratio:4/3}
.horizontal-workspace .work-card__body{padding:13px 16px 14px}
.horizontal-workspace .work-card__meta{font-size:8px;gap:8px}
.horizontal-workspace .work-card__title{font-size:14px;line-height:1.5;min-height:3em;margin:9px 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.horizontal-workspace .work-card__footer{padding-top:9px;margin-top:10px}
.horizontal-workspace .work-card__btn,.horizontal-workspace .work-card__ext{font-size:9px}
.horizontal-workspace .work-card__num,.horizontal-workspace .work-card__video-tag{font-size:8px}
.horizontal-footer{margin-top:10px}
/* Shared work/project history: swipe the same arc, open the same chapter explorer. */
.history-mode-switch{display:inline-flex;padding:4px;border:1px solid #dfdbe4;background:#fff;border-radius:28px;gap:4px;margin:3px 0 7px}
.history-mode-switch button{border-radius:24px;padding:10px 20px;font-size:12px;color:#8d8192;min-height:44px;display:flex;align-items:center;gap:12px}
.history-mode-switch button span{font-family:var(--type-mono);font-size:8px;opacity:.6}
.history-mode-switch button[aria-selected=true]{background:#26212b;color:#fff}
.fff-card__summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.fff-card__role small{font-size:11px;line-height:1.6;opacity:.8}
.fff-card__stat b{font-size:19px}
.fff-wheel-stage.is-dragging{cursor:grabbing;user-select:none}
.fff-card:focus-visible{outline:3px solid #8b667e;outline-offset:5px}
@media(min-width:1101px) and (max-height:850px){.capability-portal{min-height:520px}.p-slide__camera-frame{max-height:57svh}.p-slide__inner{padding-top:calc(var(--nav-height) + 92px);padding-bottom:85px}.p-slide__info{padding:23px 26px}.p-slide__title{font-size:25px;margin-bottom:11px}.p-slide__desc{font-size:11px;margin:11px 0;line-height:1.8}.p-slide__context{padding-top:10px;margin-top:11px}.p-slide__context p{font-size:10px}.p-slide__source{margin:10px 0 14px}.p-slide__actions .btn{font-size:10px;padding:9px 14px}}
@media(max-width:1100px){.capability-portal{min-height:0;grid-template-columns:minmax(0,1fr) 280px;margin-top:0!important}.capability-portal .portal-network{height:208px;margin:0 -10px;width:calc(100% + 20px)}.p-slide__inner{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:25px}.p-slide__info{padding:23px}.p-slide__context p{font-size:10px}.horizontal-workspace{--catalog-card-width:260px;--catalog-gap:18px}.horizontal-workspace__header>p{font-size:10px}}
@media(max-width:768px){.capability-portals{padding-top:0;gap:20px}.capability-portal{min-height:500px;padding:26px}.capability-portal .portal-network{height:208px;margin:8px -10px 14px}.capability-portal .portal-desc{font-size:12px}.p-slide__inner{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:13px;padding:calc(var(--nav-height) + 79px) 20px 122px}.p-slide__camera-frame{aspect-ratio:4/3;max-height:32svh;flex:none}.p-slide__info{padding:17px 19px;flex:none;max-height:34svh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.p-slide__title{font-size:20px;margin-bottom:8px}.p-slide__index{margin-bottom:6px}.p-slide__meta{margin-bottom:8px;gap:5px}.p-slide__tag{font-size:8px}.p-slide__desc{display:block;font-size:10px;line-height:1.8;margin:8px 0 11px}.p-slide__context{margin-top:12px;padding-top:11px}.p-slide__context strong{font-size:11px}.p-slide__context p{font-size:10px}.p-slide__source{font-size:8px;margin:11px 0}.p-slide__source span{font-size:7px}.p-slide__actions .btn{font-size:9px;padding:7px 11px}.cover-open-label{font-size:9px;padding:6px 10px;bottom:12px;right:12px}.horizontal-workspace{--catalog-card-width:240px;--catalog-gap:16px;padding-top:calc(var(--nav-height) + 82px)}.horizontal-workspace__header{display:block;margin-bottom:18px}.horizontal-workspace__header h3{font-size:25px}.horizontal-workspace__header>p{margin:10px 0 0;font-size:10px}.horizontal-workspace .works-grid{gap:18px var(--catalog-gap)}.horizontal-workspace .work-card__body{padding:13px 15px}.horizontal-workspace .work-card__title{font-size:14px}.horizontal-workspace .work-card__btn,.horizontal-workspace .work-card__ext{font-size:9px}.history-mode-switch button{padding:9px 16px;font-size:11px}.fff-card__stat b{font-size:17px}.fff-card__role small{font-size:10px}.experience-section .section-header{margin-bottom:25px}}
html[data-reduced-motion=true] .portal-float,html[data-reduced-motion=true] .portal-wire{animation:none!important}html[data-reduced-motion=true] .capability-portal{transform:none!important;transition:none}html[data-reduced-motion=true] .graph-signal{display:none}
@media(prefers-reduced-motion:reduce){.portal-float,.portal-wire{animation:none!important}.capability-portal,.portal-arrow{transition:none!important}.capability-portal:hover{transform:none}.graph-signal{display:none}}
.horizontal-workspace .works-grid{grid-template-columns:none}
@media(min-width:1101px){.horizontal-workspace{--catalog-card-width:clamp(224px,17.5vw,250px);padding-top:calc(var(--nav-height) + 8px)}#portfolio[data-view=strip] .portfolio-mode-switch{top:16px}}
.fff-wheel-stage{height:580px}
.fff-card{height:490px;padding:26px;gap:16px}
.fff-card__num{font-size:44px;line-height:1}
.fff-card__mid{margin-block:0;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}
.fff-card__period{font-size:10px;margin:0 0 8px;flex:none}
.fff-card__org{font-size:22px;line-height:1.4;margin-bottom:7px;flex:none}
.fff-card__role{font-size:12px;line-height:1.7;margin:0 0 10px;flex:none}
.fff-card__role small{font-size:10px}
.fff-card__summary{font-size:11px;line-height:1.8;-webkit-line-clamp:2;flex:none}
.fff-card__stats{margin-top:14px;padding-top:13px;gap:10px 13px;flex:none}
.fff-card__stat b{font-size:19px;line-height:1.4}
.fff-card__stat span{font-size:9px;line-height:1.5;display:block;margin-top:3px}
.fff-card__bottom{font-size:9px;padding-top:13px;flex:none;gap:10px}
@media(max-width:768px){.fff-wheel-stage{height:525px}.fff-card{height:465px;padding:22px;gap:13px}.fff-card__num{font-size:40px}.fff-card__org{font-size:21px}.fff-card__stat b{font-size:17px}.fff-card__badge{font-size:9px}.fff-card__bottom{font-size:8px}}
.fff-card{height:510px;gap:13px}
.fff-card__summary{display:none}
@media(max-width:768px){.fff-card{height:490px}.fff-wheel-stage{height:550px}}
@media(max-width:1100px){.morph__copy{padding-top:100svh}}

.p-slide__context small,.p-slide__source,.p-slide__source span{color:#776b7c}
