@import url("./assets/fonts/fonts.css");
:root{--blue:#002fa7;--black:#080808;--panel:#191a1c;--white:#f4f3ee;--muted:#a4a5aa;--pad:clamp(22px,4vw,72px);--title-font:"RRPL","Microsoft YaHei",sans-serif;--display-font:"USMCCyuanjiantecu","Microsoft YaHei",sans-serif;--text-font:"LXGW ZhiSong CL","Microsoft YaHei",serif;--latin-font:"ZSFT-ak",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--black);color:var(--white);font-family:var(--text-font);font-weight:normal}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;min-height:44px}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #99b0ff;outline-offset:6px}button:hover{color:#bacaff}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero{height:100svh;min-height:640px;position:relative;z-index:0;isolation:isolate;background:var(--black)}.tiles{--flip-duration:650ms;--flip-step:14ms;position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);perspective:1400px}.tile{position:relative;transform-style:preserve-3d;touch-action:manipulation;transition:transform var(--flip-duration) cubic-bezier(.25,.8,.2,1);transition-delay:var(--delay)}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.front{background:var(--panel);clip-path:inset(2px round 4px)}.back{background:var(--blue);transform:rotateX(180deg)}.scene{position:absolute;left:calc(-1 * var(--slice-x));top:calc(-1 * var(--slice-y));width:var(--stage-width);height:var(--stage-height);pointer-events:none}.front-scene{background:var(--panel)}.back-scene{background:var(--blue)}.hero.is-back .tile{transform:rotateX(-180deg)}.hero.is-back{background:var(--blue)}.hero:not(.is-back) .tile.peek{animation:peek .72s cubic-bezier(.3,.7,.2,1)}@keyframes peek{from{transform:rotateX(0)}to{transform:rotateX(-360deg)}}
.hero-copy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 var(--pad)}.studio-title{font-family:var(--title-font);font-size:clamp(67px,13.1vw,230px);line-height:1.3;letter-spacing:.02em;font-weight:normal;margin:0;white-space:nowrap}.blue-intro{height:100%;padding:100px var(--pad) 100px;display:grid;grid-template-columns:1.15fr 1fr;gap:6vw;align-items:center}.intro-title{font-family:var(--latin-font);font-weight:normal;font-size:clamp(58px,7vw,140px);line-height:1.08;letter-spacing:-.035em;margin:0}.intro-title>span{display:block}.intro-second{font-size:.58em;white-space:nowrap;margin-top:.25em}.multiply{font-size:.85em}.intro-copy{font-size:clamp(17px,1.45vw,23px);font-weight:normal;line-height:1.85;letter-spacing:0;text-align:left;max-width:28em;margin:0}.intro-copy p{margin:0 0 1.2em;text-wrap:pretty;line-break:strict;word-break:normal;overflow-wrap:break-word}.intro-copy p:last-child{margin-bottom:0}
.scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:12px;font-family:Arial,sans-serif;font-size:11px;letter-spacing:2px;padding:12px;z-index:3}.scroll-line{height:32px;width:1px;background:var(--white);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;inset:0;background:var(--blue);animation:scroll 2s infinite}@keyframes scroll{from{transform:translateY(-100%)}to{transform:translateY(100%)}}.edge-label{position:absolute;right:18px;top:50%;writing-mode:vertical-rl;font-size:12px;letter-spacing:2px;color:var(--muted);z-index:3}.interaction-hint{position:absolute;left:var(--pad);bottom:22px;font-size:14px;letter-spacing:1px;color:var(--muted);z-index:3}.is-back .edge-label,.is-back .interaction-hint{color:var(--white)}.is-back .scroll-line:after{background:#aec0ff}
.section-label{font-family:var(--display-font);font-size:clamp(22px,3vw,38px);font-weight:normal;letter-spacing:.02em;margin:0 0 50px}.capabilities{padding:110px var(--pad)}.capability{display:grid;grid-template-columns:70px 1.2fr 1fr;align-items:start;border-top:1px solid #343438;padding:36px 0;gap:25px}.capability>span{font-family:var(--display-font);font-size:20px;color:var(--muted);padding-top:8px}.capability h3{font-family:var(--display-font);font-size:clamp(26px,3vw,42px);line-height:1.4;font-weight:normal;margin:0}.capability p{font-family:var(--text-font);font-weight:normal;font-size:18px;color:#c3c3c7;line-height:1.9;margin:0}.capability:last-child{border-bottom:1px solid #343438}footer{padding:32px var(--pad);border-top:1px solid #343438;display:flex;justify-content:space-between;gap:20px;font-size:14px;letter-spacing:1px}
@media(max-width:700px){.tiles{--flip-duration:580ms;--flip-step:12ms;grid-template-columns:repeat(3,1fr)}.hero{min-height:700px}.studio-title{font-size:14.6vw}.menu-icon{margin-left:4px}.blue-intro{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:88px 32px 115px;gap:32px}.intro-title{font-size:clamp(48px,15vw,84px);line-height:1.05}.intro-second{font-size:.56em}.intro-copy{font-size:17px;line-height:1.8;max-width:28em}.intro-copy p{margin-bottom:1em}.interaction-hint{bottom:18px;font-size:12px;letter-spacing:0}.scroll{bottom:22px;font-size:10px;letter-spacing:1px}.edge-label{right:10px;font-size:10px}.capability{grid-template-columns:28px 1fr;gap:14px}.capability p{grid-column:2;font-size:17px}.capabilities{padding:75px var(--pad)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tile{transition:none;animation:none!important}.scroll-line:after{animation:none}}
.hero{overflow:hidden}

/* Full-width accordion rows follow the recorded JUNNI service interaction. */
.project-gradient{position:relative;z-index:1;background:#edf3fa;padding:72px 0 65px;color:#121d32}.projects-heading{padding:0 var(--pad) 38px;text-align:center}.projects-heading h2{font:normal clamp(32px,4.2vw,60px)/1.15 var(--latin-font);letter-spacing:.01em;margin:0 0 14px}.projects-heading p{font-size:15px;line-height:1.6;margin:0;color:#53627a}.project-list{border-top:1px solid #17315a25}.project-row{border-bottom:1px solid #17315a25;transition:background-color .3s,color .3s}.project-row-heading{margin:0;font-weight:normal}.project-toggle{display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:28px;width:100%;padding:28px max(var(--pad),calc((100% - 1120px)/2));text-align:left;color:inherit}.project-number{font:normal 56px/1 Arial,sans-serif;-webkit-text-stroke:1px currentColor;color:transparent;transition:color .3s}.project-heading-copy{display:flex;flex-direction:column;gap:9px}.project-name{font:normal clamp(25px,3vw,39px)/1.35 var(--display-font)}.project-one-line{font:normal 15px/1.7 var(--text-font);color:#53627a}.project-plus{width:32px;height:32px;position:relative;justify-self:end}.project-plus:before,.project-plus:after{content:'';position:absolute;top:15px;left:0;width:32px;height:1px;background:currentColor;transition:transform .35s}.project-plus:after{transform:rotate(90deg)}.project-toggle:hover{color:inherit}.project-toggle:focus-visible{outline:2px solid #517be0;outline-offset:-7px}.project-row.is-open{background:#151c29;color:#f4f3ee}.project-row.is-open .project-one-line{color:#bcc8dd}.project-row.is-open .project-number{color:var(--blue);-webkit-text-stroke-color:var(--blue)}.project-row.is-open .project-plus{color:#91b5ff}.project-row.is-open .project-plus:before{transform:rotate(45deg)}.project-row.is-open .project-plus:after{transform:rotate(135deg)}.project-reveal{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .55s cubic-bezier(.2,.7,.2,1),visibility .55s}.project-row.is-open .project-reveal{grid-template-rows:1fr;visibility:visible}.project-reveal-inner{min-height:0;overflow:hidden}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:1120px;margin:auto;padding:12px 0 38px 118px;opacity:0;transform:translateY(12px);transition:opacity .3s,transform .4s}.project-row.is-open .project-details{opacity:1;transform:none}.project-category{font:11px/1.5 Arial,sans-serif;letter-spacing:1.2px;color:#91b5ff;margin:0 0 14px}.project-summary{font-size:17px;line-height:1.85;color:#c3cddd;margin:0 0 24px}.project-description dl{display:grid;grid-template-columns:64px 1fr;gap:15px;font-size:14px;line-height:1.85;color:#bdc9dc;margin:0}.project-description dt{font-family:Arial,'Microsoft YaHei',sans-serif;font-weight:600;color:#f4f3ee}.project-description dd{margin:0}.project-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.project-tags span{font:12px/1.4 Arial,'Microsoft YaHei',sans-serif;color:#91b5ff}.project-tags span+span{border-left:1px solid #667389;padding-left:10px}.project-visual{align-self:start;background:linear-gradient(145deg,#002fa7,#214f9e);padding:22px 24px;color:#f4f3ee;border-radius:2px}.visual-top{display:flex;justify-content:space-between;gap:15px;font:10px/1.5 Arial,'Microsoft YaHei',sans-serif;color:#c3d6ff;border-bottom:1px solid #ffffff30;padding-bottom:12px}.project-total{padding:20px 0}.project-total>span{font-size:13px}.project-total strong{font:normal clamp(46px,5vw,70px)/1.15 Arial,sans-serif;letter-spacing:-3px;display:inline-block;margin-top:8px}.project-total small{font-size:13px;margin-left:10px}.system-flow{display:flex;align-items:center;gap:12px;margin-bottom:20px}.system-flow span{font-size:11px;flex:1;border-bottom:1px solid #ffffff55;padding-bottom:8px}.system-flow i{font:12px Arial,sans-serif;color:#aecaFF}.visual-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid #ffffff30;padding-top:16px}.visual-stats strong{display:block;font:normal clamp(19px,2vw,27px)/1.2 Arial,'Microsoft YaHei',sans-serif;letter-spacing:-.5px;white-space:nowrap}.visual-stats span{display:block;font-size:10px;color:#c3d6ff;margin-top:8px}.data-caption{max-width:1120px;margin:25px auto 0;padding:0;font:11px/1.8 Arial,'Microsoft YaHei',sans-serif;color:#66778f}footer{background:#edf3fa;color:#121d32;border-color:#17315a25}
@media(max-width:1260px){.project-details{margin:0 var(--pad);gap:40px;padding-left:118px}.data-caption{margin-left:var(--pad);margin-right:var(--pad)}}
@media(max-width:900px){.project-toggle{grid-template-columns:65px 1fr 34px;gap:20px}.project-number{font-size:46px}.project-details{grid-template-columns:1fr 1fr;gap:28px;padding-left:85px}.project-description dl{grid-template-columns:1fr;gap:7px}.project-description dd+dt{margin-top:10px}.project-visual{padding:18px}.visual-stats{gap:10px}.visual-stats strong{font-size:18px}}
@media(max-width:700px){.project-gradient{padding-top:48px}.projects-heading{padding-bottom:26px}.projects-heading h2{font-size:34px}.projects-heading p{font-size:13px}.project-toggle{grid-template-columns:38px 1fr 24px;gap:14px;padding:23px var(--pad)}.project-number{font-size:32px}.project-name{font-size:23px}.project-heading-copy{gap:6px}.project-one-line{font-size:13px;line-height:1.7}.project-plus{width:23px;height:23px}.project-plus:before,.project-plus:after{top:11px;width:23px}.project-details{grid-template-columns:1fr;padding:7px 0 30px 52px;gap:25px;margin:0 var(--pad)}.project-summary{font-size:15px;line-height:1.85;margin-bottom:20px}.project-description dl{grid-template-columns:58px 1fr;font-size:13px;gap:12px}.project-description dd+dt{margin-top:0}.project-tags{margin-top:18px;gap:8px}.project-tags span{font-size:11px}.project-visual{padding:17px}.project-total strong{font-size:49px}.visual-stats strong{font-size:20px}.visual-stats span{font-size:10px}.system-flow{gap:8px}.system-flow span{font-size:10px}.visual-top{font-size:9px}.data-caption{font-size:10px;margin-top:20px}}
@media(prefers-reduced-motion:reduce){.project-row,.project-reveal,.project-details,.project-number,.project-plus:before,.project-plus:after{transition:none}}
.visual-stats strong.stat-text{font:normal 17px/1.3 var(--text-font);letter-spacing:0}
@media(max-width:700px){.visual-stats strong.stat-text{font-size:13px}}
.project-number{-webkit-text-stroke-color:var(--blue)}
/* Fine mouse cursor: precise dot, contextual ring, explicit contrast. */
#custom-cursor{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;opacity:0;will-change:transform;color:#121d32;--cursor-accent:var(--blue)}#custom-cursor.cursor-on-dark{color:var(--white);--cursor-accent:var(--white)}.cursor-ring{position:absolute;left:0;top:0;width:12px;height:12px;border:1px solid var(--cursor-accent);border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:width .2s cubic-bezier(.2,.8,.2,1),height .2s cubic-bezier(.2,.8,.2,1),opacity .15s;display:flex;align-items:center;justify-content:center}.cursor-dot{position:absolute;left:0;top:0;width:6px;height:6px;background:currentColor;border-radius:50%;transform:translate(-50%,-50%);transition:opacity .15s}.cursor-symbol{font:18px/1 Arial,sans-serif;color:var(--cursor-accent);opacity:0;transition:opacity .15s}.cursor-interactive .cursor-ring{width:44px;height:44px;opacity:1}.cursor-interactive .cursor-dot{opacity:0}.cursor-interactive .cursor-symbol{opacity:1}.cursor-pressed .cursor-dot{width:4px;height:4px}.cursor-pressed.cursor-interactive .cursor-ring{width:34px;height:34px}
@media(hover:hover) and (pointer:fine){body.has-custom-cursor,body.has-custom-cursor button,body.has-custom-cursor a{cursor:none}body.has-custom-cursor #custom-cursor{opacity:1}}
@media(hover:none),(pointer:coarse){#custom-cursor{display:none}}
@media(prefers-reduced-motion:reduce){.cursor-ring,.cursor-dot,.cursor-symbol{transition:none}}
/* Component spacing and outlined controls mirror the Figma component sheet. */
.project-plus{width:44px;height:44px;border:1px solid #263b5940;border-radius:50%;transition:border-color .25s,background .25s}.project-plus:before,.project-plus:after{width:16px;top:21px;left:13px}.project-row.is-open .project-plus{border-color:#f4f3ee55}.project-row.is-open .project-plus{background:#f4f3ee08}.project-tags{gap:8px;margin-top:24px}.project-tags span{padding:6px 9px;border:1px solid #91b5ff35;border-radius:4px;line-height:1.4;color:#bdc9dc}.project-tags span+span{border-left:1px solid #91b5ff35;padding-left:9px}.project-description dl{grid-template-columns:48px 1fr;gap:14px}.project-description dt{font-size:11px;letter-spacing:.08em;padding-top:2px;color:#91b5ff}.project-visual{background:linear-gradient(145deg,#002fa7,#163c8c);border:1px solid #ffffff18;border-radius:4px}.visual-top{font-size:11px;line-height:1.6}.system-flow{margin-top:20px}.project-one-line{max-width:52em}
@media(max-width:900px){.project-toggle{grid-template-columns:65px 1fr 44px}.project-description dl{grid-template-columns:1fr}}
@media(max-width:700px){.project-toggle{grid-template-columns:30px 1fr 34px;gap:12px}.project-number{font-size:28px}.project-name{font-size:21px}.project-plus{width:34px;height:34px}.project-plus:before,.project-plus:after{width:14px;top:16px;left:9px}.project-details{padding-left:42px}.project-description dl{grid-template-columns:1fr;gap:8px}.project-tags span{font-size:11px;padding:5px 7px}.project-tags span+span{padding-left:7px}}

/* JUNNI reference: rotating letter orbit and an elastic outline cursor. */
.scroll{width:112px;height:112px;bottom:22px;padding:0;gap:0;display:grid;place-items:center;letter-spacing:0}.scroll-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:orbit-spin 22s linear infinite}.scroll-orbit text{fill:var(--white);font:normal 11px Arial,sans-serif;letter-spacing:1.7px}.orbit-dot{fill:var(--blue);font-size:18px}.scroll-arrow{font:normal 25px/1 Arial,sans-serif;transition:transform .25s;color:var(--white)}.scroll:hover .scroll-arrow{transform:translateY(5px)}.hero.is-back .orbit-dot{fill:var(--white)}.scroll:focus-visible{outline-offset:8px;border-radius:50%}@keyframes orbit-spin{to{transform:rotate(360deg)}}
.cursor-ring{width:var(--cursor-width,20px);height:var(--cursor-height,20px);border-radius:7px;opacity:.9;transition:border-color .15s,opacity .15s;transform:translate(-50%,-50%)}#custom-cursor{--cursor-accent:var(--blue)}#custom-cursor.cursor-on-dark{--cursor-accent:#91b5ff}.cursor-dot{width:3px;height:3px;transform:translate(calc(var(--dot-x,0px) - 50%),calc(var(--dot-y,0px) - 50%))}.cursor-interactive .cursor-ring{width:var(--cursor-width,32px);height:var(--cursor-height,32px);opacity:1}.cursor-interactive .cursor-dot{opacity:1}.cursor-symbol{display:none}.cursor-pressed.cursor-interactive .cursor-ring{width:var(--cursor-width,32px);height:var(--cursor-height,32px);opacity:.5}
.project-plus,.project-row.is-open .project-plus{border:0;background:none;border-radius:0}.project-plus:before,.project-plus:after{width:30px;left:7px}.project-row.is-open .project-plus{color:#91b5ff}
.project-tags{counter-reset:tech;gap:14px}.project-tags span{counter-increment:tech;border:0;border-radius:0;padding:6px 0;display:inline-flex;align-items:center;gap:9px}.project-tags span:before{content:counter(tech,decimal-leading-zero);font:10px/1 Arial,sans-serif;color:#91b5ff}.project-tags span+span{border-left:1px solid #91b5ff35;padding-left:14px}
.project-visual{background:transparent;border:0;border-left:2px solid var(--blue);border-radius:0;padding-top:0;padding-bottom:0}.system-flow{margin-top:24px}
@media(max-width:700px){.scroll{width:86px;height:86px;bottom:15px}.scroll-orbit text{font-size:11px}.scroll-arrow{font-size:22px}.project-plus:before,.project-plus:after{width:24px;left:5px}.project-tags span{padding:5px 0}.project-tags span+span{padding-left:12px}.project-visual{padding-left:16px}}
@media(prefers-reduced-motion:reduce){.scroll-orbit{animation:none}.scroll-arrow{transition:none}}


/* Render the settled blue introduction once instead of keeping 36 3D slices visible. */
.flat-back{display:none;position:absolute;inset:0}
.flat-back>.scene{left:0;top:0;width:100%;height:100%}
.hero.is-static-back .flat-back{display:block}
.hero.is-static-back .tiles{visibility:hidden}

/* Continuous section background; Aura layers add atmosphere without separate panel edges. */
body{background-color:#faf8f2}
.project-gradient{--aura-height:140svh;background:linear-gradient(180deg,#002fa7 0,#002fa7 7svh,#234cc0 26svh,#7c9bdf 53svh,#d0dcef 80svh,#eef0f2 108svh,#faf8f2 140svh);isolation:isolate;padding-top:47svh;overflow:hidden}
.aura-bg{position:absolute;left:0;right:0;top:0;height:var(--aura-height);overflow:hidden;pointer-events:none;background:transparent;mask-image:linear-gradient(transparent 5%,#000 35%,#000 65%,transparent 100%)}
.aura-layer{position:absolute;inset:0 -130px;mix-blend-mode:multiply;filter:blur(130px);pointer-events:none;transform:translateZ(0)}
.aura-layer-1{background:linear-gradient(0deg,rgba(0,0,0,0) 0%,rgba(0,47,167,.12) 28%,rgb(255,255,255) 18%,rgb(100,136,223) 68%,rgb(41,76,174) 100%)}
.aura-layer-2{background:linear-gradient(0deg,rgba(0,0,0,0) 0%,rgba(0,47,167,.22) 34%,rgb(255,255,255) 66%,rgb(118,151,231) 82%,rgb(56,89,190) 100%)}
.projects-accordion{position:relative;z-index:1;background:transparent}
.projects-heading{position:relative;color:#121d32;padding-bottom:70px}
.projects-heading p{color:#121d32}
.project-one-line{color:#354962}
footer{background:#faf8f2}
@media(max-width:700px){.project-gradient{padding-top:44svh}.aura-layer{inset:0 -90px;filter:blur(90px)}.projects-heading{padding-bottom:45px}}

/* Background unfolds from the centre; title glyphs roll from left to right. */
.project-row{overflow:hidden}
.project-toggle{display:block;padding:0;position:relative;isolation:isolate;user-select:none;-webkit-user-select:none}
.project-toggle:before,.project-toggle:after{content:'';position:absolute;inset:0;pointer-events:none;transform:scaleY(0);transform-origin:center;transition:transform .28s cubic-bezier(.22,.7,.2,1)}
.project-toggle:before{background:var(--blue);transition-delay:.025s}
.project-toggle:after{background:#151c29}
.project-heading-flipper{position:relative;z-index:1;display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:28px;padding:28px max(var(--pad),calc((100% - 1120px)/2));pointer-events:none}
.project-name{perspective:700px;transform:scaleX(.94);transform-origin:left center}
.project-letter{position:relative;display:inline-block;white-space:pre;transform-style:preserve-3d;transition:transform .32s cubic-bezier(.22,.7,.2,1);transition-delay:calc(var(--letter)*10ms)}
.project-letter-front,.project-letter-back{display:inline-block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.project-letter-front{color:#121d32}
.project-letter-back{position:absolute;inset:0;color:#f4f3ee;transform:rotateX(180deg)}
.project-row.is-highlighted .project-toggle:before,.project-row.is-open .project-toggle:before,.project-row:has(.project-toggle:focus-visible) .project-toggle:before{transform:scaleY(1);transition-delay:0s}
.project-row.is-highlighted .project-toggle:after,.project-row.is-open .project-toggle:after,.project-row:has(.project-toggle:focus-visible) .project-toggle:after{transform:scaleY(1);transition-delay:.035s}
.project-row.is-highlighted .project-letter,.project-row.is-open .project-letter,.project-row:has(.project-toggle:focus-visible) .project-letter{transform:rotateX(-180deg)}
.project-row.is-highlighted .project-number,.project-row.is-open .project-number,.project-row:has(.project-toggle:focus-visible) .project-number{color:var(--blue);-webkit-text-stroke-color:var(--blue)}
.project-row.is-highlighted .project-one-line,.project-row.is-open .project-one-line,.project-row:has(.project-toggle:focus-visible) .project-one-line{color:#bcc8dd;animation:project-subtitle-roll .34s ease-out}
.project-row.is-highlighted .project-plus,.project-row.is-open .project-plus,.project-row:has(.project-toggle:focus-visible) .project-plus{color:#91b5ff}
.project-one-line{transition:color .18s}
@keyframes project-subtitle-roll{from{opacity:0;transform:translateY(5px) rotateX(-35deg)}to{opacity:1;transform:none}}
.project-details{opacity:1;transform:none}
.project-description>*{opacity:0;transform:translateY(16px);transition:opacity .32s ease,transform .46s cubic-bezier(.2,.7,.2,1);transition-delay:0s}
.project-row.is-open .project-description>*{opacity:1;transform:none;transition-delay:.10s}
.project-row.is-open .project-description>:nth-child(2){transition-delay:.16s}
.project-row.is-open .project-description>:nth-child(3){transition-delay:.22s}
.project-row.is-open .project-description>:nth-child(4){transition-delay:.28s}
.project-tags span{opacity:0;transform:translateY(8px);transition:opacity .28s ease,transform .38s ease;transition-delay:0s}
.project-row.is-open .project-tags span{opacity:1;transform:none;transition-delay:.30s}
.project-row.is-open .project-tags span:nth-child(2){transition-delay:.34s}
.project-row.is-open .project-tags span:nth-child(3){transition-delay:.38s}
.project-row.is-open .project-tags span:nth-child(4){transition-delay:.42s}
.project-visual{opacity:0;transform:translateY(18px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:0s}
.project-row.is-open .project-visual{opacity:1;transform:none;transition-delay:.22s}
@media(max-width:900px){.project-heading-flipper{grid-template-columns:65px 1fr 34px;gap:20px}}
@media(max-width:700px){.project-heading-flipper{grid-template-columns:38px 1fr 24px;gap:14px;padding:23px var(--pad)}}
@media(prefers-reduced-motion:reduce){.project-letter,.project-toggle:before,.project-toggle:after,.project-description>*,.project-tags span,.project-visual{transition:none!important;transition-delay:0s!important}.project-one-line{animation:none!important}}
