:root,:root[data-theme=light]{--cn-bg:#f4f6fb;--cn-bg-soft:#fff;--cn-ink:#0b0e14;--cn-muted:#566074;--cn-accent:#2f5bff;--cn-accent-deep:#1737b8;--cn-line:#0b0e142b;--cn-line-light:#ffffff4d;--cn-action-bg:#2f5bff;--cn-action-ink:#fff;--cn-overlay-bg:#090b10fc;--cn-control-bg:#fff;--cn-control-shadow:0 8px 24px #22367d14;--cn-electric:#2f5bff;--cn-acid:#37c8ff;--cn-rose:#37c8ff;--cn-surface:#fff;--cn-tag-bg:#2f5bff12;--cn-tag-bg-hover:#2f5bff1f;--cn-tag-ink:#2448d8;--cn-tag-border:#2f5bff2e;--cn-tag-shadow:#2f5bff1a;--cn-portrait-opacity:.18;--cn-portrait-blend:multiply;--cn-portrait-filter:grayscale(1) contrast(1.08) brightness(1.08);--cn-project-shadow:0 28px 76px #22367d24;--cn-canvas-opacity:.7;--cn-texture-opacity:.08;--cn-texture-blend:multiply;--cn-fallback-one:#2f5bff2b;--cn-fallback-two:#37c8ff1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--cn-bg:#090b10;--cn-bg-soft:#11151d;--cn-ink:#f5f7ff;--cn-muted:#a8b2c4;--cn-accent:#6f8cff;--cn-accent-deep:#b2c0ff;--cn-line:#f5f7ff33;--cn-line-light:#f5f7ff3d;--cn-action-bg:#6f8cff;--cn-action-ink:#070910;--cn-overlay-bg:#05070bfc;--cn-control-bg:#151923;--cn-control-shadow:0 10px 28px #00000038;--cn-electric:#6f8cff;--cn-acid:#54d6ff;--cn-rose:#54d6ff;--cn-surface:#151923;--cn-tag-bg:#6f8cff1a;--cn-tag-bg-hover:#6f8cff29;--cn-tag-ink:#b8c6ff;--cn-tag-border:#6f8cff3d;--cn-tag-shadow:#4d6ae021;--cn-portrait-opacity:.14;--cn-portrait-blend:screen;--cn-portrait-filter:grayscale(1) contrast(1.1) brightness(.78);--cn-project-shadow:0 26px 72px #0000004d;--cn-canvas-opacity:.72;--cn-texture-opacity:.1;--cn-texture-blend:screen;--cn-fallback-one:#6f8cff33;--cn-fallback-two:#54d6ff1c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--cn-content:min(100% - 80px, 1480px);--cn-header-height:88px;--cn-ease:cubic-bezier(.22, 1, .36, 1);--cn-overlay-ink:#f4f0f4;--cn-transition-origin-y:50vh;color:var(--cn-ink);font-synthesis:none;text-rendering:optimizelegibility;font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--cn-bg);scroll-behavior:smooth;min-width:320px;min-height:100%}body{min-width:320px;min-height:100%;color:var(--cn-ink);background:var(--cn-bg);margin:0;font-size:16px;line-height:1.6;transition:color .36s,background-color .36s;overflow-x:hidden}body.cn-menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}img{max-width:100%;display:block}::selection{color:var(--cn-action-ink);background:var(--cn-action-bg)}.cn-shell{isolation:isolate;min-height:100svh;position:relative;overflow-x:clip}.cn-skip-link{z-index:1100;color:var(--cn-bg-soft);background:var(--cn-ink);padding:9px 13px;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.cn-skip-link:focus{transform:translateY(0)}.mist-canvas{z-index:-3;background:var(--cn-bg);pointer-events:none;transition:background-color .36s;position:fixed;inset:0;overflow:hidden}.mist-canvas canvas{opacity:var(--cn-canvas-opacity);transition:opacity .36s;display:block}.mist-canvas__fallback{background:radial-gradient(circle at 78% 25%, var(--cn-fallback-one), transparent 38%), radial-gradient(circle at 18% 76%, var(--cn-fallback-two), transparent 34%);filter:blur(34px);position:absolute;inset:-12%}.cn-paper-texture{z-index:700;pointer-events:none;opacity:var(--cn-texture-opacity);mix-blend-mode:var(--cn-texture-blend);background-image:repeating-linear-gradient(0deg,#ffffff2e 0 1px,#0000 1px 4px),repeating-linear-gradient(90deg,#18151a06 0 1px,#0000 1px 5px);transition:opacity .36s;position:fixed;inset:0}.cn-header{z-index:500;width:var(--cn-content);height:var(--cn-header-height);transition:top .38s var(--cn-ease), width .38s var(--cn-ease), height .38s var(--cn-ease), padding .38s var(--cn-ease), border-color .26s ease, background-color .26s ease, box-shadow .32s ease, transform .38s var(--cn-ease);background:0 0;border:1px solid #0000;border-radius:0;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;padding:0;display:grid;position:fixed;top:0;left:0;right:0}.cn-header--scrolled{border-color:color-mix(in srgb, var(--cn-ink) 14%, transparent);background:var(--cn-bg-soft);width:min(100% - 32px,1480px);height:68px;box-shadow:0 16px 48px color-mix(in srgb, var(--cn-ink) 11%, transparent);border-radius:8px;padding:0 18px;top:10px}.cn-header--hidden{transform:translateY(calc(-100% - 22px))}.cn-brand{align-items:baseline;gap:15px;width:max-content;display:flex}.cn-brand strong{letter-spacing:-.04em;font-size:1rem;font-weight:700}.cn-brand span{color:var(--cn-muted);font-size:.8rem}.cn-desktop-nav{align-items:center;gap:clamp(28px,3.5vw,58px);display:flex}.cn-desktop-nav>a,.cn-friend-menu>summary,.cn-header-github{padding:10px 0;font-size:.875rem;font-weight:500;position:relative}.cn-desktop-nav>a:after,.cn-friend-menu>summary:after,.cn-header-github:after{content:"";transform-origin:100%;height:1px;transition:transform .28s var(--cn-ease);background:currentColor;position:absolute;bottom:3px;left:0;right:0;transform:scaleX(0)}.cn-desktop-nav>a:hover:after,.cn-desktop-nav>a:focus-visible:after,.cn-desktop-nav>a.router-link-active:after,.cn-friend-menu>summary:hover:after,.cn-friend-menu>summary:focus-visible:after,.cn-friend-menu[open]>summary:after,.cn-header-github:hover:after,.cn-header-github:focus-visible:after{transform-origin:0;transform:scaleX(1)}.cn-header-actions{justify-self:end;align-items:center;gap:22px;display:flex}.cn-header-github{justify-self:end}.cn-friend-menu{position:relative}.cn-friend-menu>summary{cursor:pointer;list-style:none;position:relative}.cn-friend-menu>summary::-webkit-details-marker{display:none}.cn-friend-menu__list{border:1px solid var(--cn-line);background:var(--cn-bg-soft);width:310px;box-shadow:0 18px 48px color-mix(in srgb, var(--cn-ink) 14%, transparent);border-radius:6px;padding:6px;display:grid;position:absolute;top:calc(100% + 12px);right:0}.cn-friend-menu__list a{border-bottom:1px solid var(--cn-line);min-height:68px;transition:padding .22s var(--cn-ease), background-color .18s ease;grid-template-columns:1fr 18px;align-items:center;gap:12px;padding:10px 9px;display:grid}.cn-friend-menu__list a:last-child{border-bottom:0}.cn-friend-menu__list a:hover,.cn-friend-menu__list a:focus-visible{background:color-mix(in srgb, var(--cn-accent) 7%, var(--cn-bg-soft));padding-left:13px;padding-right:13px}.cn-friend-menu__list a>span{gap:2px;display:grid}.cn-friend-menu__list strong{font-size:.86rem;font-weight:650}.cn-friend-menu__list small{color:var(--cn-muted);font-size:.72rem}.cn-friend-menu__list i{font-style:normal}.cn-theme-switcher{z-index:30;position:relative}.cn-theme-trigger{border:1px solid var(--cn-line);min-height:40px;color:var(--cn-ink);background:var(--cn-control-bg);cursor:pointer;border-radius:4px;align-items:center;gap:9px;padding:0 12px;font-size:.76rem;transition:border-color .22s,background-color .22s;display:inline-flex}.cn-theme-trigger:hover,.cn-theme-trigger:focus-visible,.cn-theme-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--cn-accent) 56%, var(--cn-line))}.cn-theme-trigger>span{color:var(--cn-muted)}.cn-theme-trigger strong{font-weight:650}.cn-theme-trigger i{font-style:normal;transition:transform .22s}.cn-theme-trigger[aria-expanded=true] i{transform:rotate(180deg)}.cn-theme-panel{visibility:hidden;border:1px solid var(--cn-line);background:var(--cn-bg-soft);width:min(340px,100vw - 28px);box-shadow:0 18px 48px color-mix(in srgb, var(--cn-ink) 14%, transparent);opacity:0;pointer-events:none;transition:opacity .18s ease, transform .22s var(--cn-ease), visibility .18s;border-radius:6px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;transform:translateY(-6px)}.cn-theme-panel--open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.cn-theme-panel__header{border-bottom:1px solid var(--cn-line);justify-content:space-between;align-items:center;min-height:52px;padding:0 14px;display:flex}.cn-theme-panel__header span{font-size:.82rem;font-weight:650}.cn-theme-panel__header button{cursor:pointer;background:0 0;border:0;width:34px;height:34px;padding:0;font-size:1.25rem}.cn-theme-panel__list{max-height:min(420px,62vh);padding:6px;display:grid;overflow-y:auto}.cn-theme-option{border:0;border-bottom:1px solid var(--cn-line);text-align:left;cursor:pointer;min-height:70px;transition:background-color .18s ease, padding .22s var(--cn-ease);background:0 0;grid-template-columns:12px 1fr 20px;align-items:center;gap:12px;padding:10px 9px;display:grid}.cn-theme-option:last-child{border-bottom:0}.cn-theme-option:hover,.cn-theme-option:focus-visible,.cn-theme-option--active{background:color-mix(in srgb, var(--cn-accent) 7%, var(--cn-bg-soft));padding-left:13px;padding-right:13px}.cn-theme-option__mark{background:#2f5bff;width:6px;height:34px}.cn-theme-option--dark .cn-theme-option__mark{background:#54d6ff}.cn-theme-option__copy{gap:3px;display:grid}.cn-theme-option__copy strong{font-size:.88rem;font-weight:650}.cn-theme-option__copy small{color:var(--cn-muted);font-size:.74rem;line-height:1.5}.cn-theme-option__state{text-align:center;font-size:.84rem}.cn-menu-button,.cn-mobile-nav{display:none}.cn-page{z-index:2;position:relative}.cn-page-frame{opacity:1;filter:none;min-height:100svh;transform-origin:50% var(--cn-transition-origin-y);will-change:transform, opacity, filter;transform:scale(1)}.cn-page-frame--idle{transition:none}.cn-page-frame--shrinking{opacity:.82;filter:saturate(.72)brightness(.82);transition:transform .7s cubic-bezier(.32,.72,0,1),opacity .62s,filter .62s;transform:scale(.93)}.cn-page-frame--covering{opacity:.22;filter:saturate(.62)brightness(.5);pointer-events:none;transition:transform .24s cubic-bezier(.32,.72,0,1),opacity .22s,filter .22s;transform:scale(.9)}.cn-page-frame--revealing{opacity:1;filter:none;transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .7s,filter .76s;transform:scale(1)}[data-reveal]{opacity:0;transition:opacity .58s ease, transform .7s var(--cn-ease);transform:translateY(24px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.cn-home-hero{width:var(--cn-content);min-height:100svh;padding:calc(var(--cn-header-height) + 42px) 0 46px;isolation:isolate;grid-template-rows:auto 1fr auto auto;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);align-items:center;gap:30px clamp(48px,7vw,118px);margin:0 auto;display:grid;position:relative}.cn-home-meta{color:var(--cn-muted);letter-spacing:.08em;grid-column:1/-1;justify-content:space-between;padding-top:8px;font-size:.8rem;display:flex}.cn-home-meta,.cn-home-kicker,.cn-home-copy h1,.cn-home-intro,.cn-home-links{opacity:1;animation:cn-home-enter .52s var(--cn-ease) both;transform:none}.cn-home-kicker{animation-delay:40ms}.cn-home-copy h1{animation-delay:80ms}.cn-home-intro{animation-delay:.12s}.cn-home-links{animation-delay:.16s}.cn-home-copy{z-index:2;grid-area:2/1;align-self:center;position:relative}.cn-home-kicker{color:var(--cn-accent);letter-spacing:0;align-items:center;gap:12px;margin:0 0 28px;font-size:.85rem;display:flex}.cn-home-kicker:before{background:var(--cn-electric);width:26px;height:2px;box-shadow:9px 0 0 var(--cn-acid);content:""}.cn-home-copy h1{letter-spacing:-.09em;margin:0;font-size:clamp(4.7rem,8.4vw,9rem);font-weight:650;line-height:.98}.cn-home-copy h1 span{display:block}.cn-home-copy h1 span:last-child{color:#0000;-webkit-text-stroke:1.5px var(--cn-ink);margin-top:7px}.cn-home-intro{gap:9px;max-width:680px;margin-top:clamp(42px,6vh,72px);display:grid}.cn-home-intro p{margin:0;font-size:clamp(1.05rem,1.2vw,1.18rem);line-height:1.75}.cn-home-intro p:last-child{max-width:590px;color:var(--cn-muted);font-size:1rem}.cn-home-links{border-top:1px solid var(--cn-line);width:min(100%,610px);margin-top:38px;display:grid}.cn-home-links a{border-bottom:1px solid var(--cn-line);min-height:54px;transition:padding .28s var(--cn-ease), color .24s ease, background .24s ease;justify-content:space-between;align-items:center;padding:0 2px;font-size:.95rem;display:flex}.cn-home-links a:hover,.cn-home-links a:focus-visible{color:var(--cn-action-ink);background:var(--cn-action-bg);padding:0 14px}.cn-home-links i{transition:transform .24s var(--cn-ease);font-style:normal}.cn-home-links a:hover i,.cn-home-links a:focus-visible i{transform:translate(4px)}.cn-portrait{--portrait-x:0px;--portrait-y:0px;z-index:0;pointer-events:auto;width:min(20vw,280px);margin:0;position:absolute;top:48%;right:clamp(40px,7vw,130px);translate:0 -48%}.cn-portrait__image{height:clamp(280px,32vw,390px);opacity:var(--cn-portrait-opacity);mix-blend-mode:var(--cn-portrait-blend);transform:translate3d(var(--portrait-x), var(--portrait-y), 0);transition:opacity .36s ease, transform .6s var(--cn-ease);position:relative;overflow:visible;-webkit-mask-image:radial-gradient(at 50% 47%,#000 20%,#000000b8 42%,#0000 69%);mask-image:radial-gradient(at 50% 47%,#000 20%,#000000b8 42%,#0000 69%)}.cn-portrait__image img{object-fit:cover;object-position:50% 42%;width:100%;height:100%;filter:var(--cn-portrait-filter);transform:scale(1.055)}.cn-home-repository{z-index:2;border-top:1px solid var(--cn-line);border-bottom:1px solid var(--cn-line);min-height:64px;transition:padding .28s var(--cn-ease), color .24s ease, background .24s ease;grid-area:3/2;grid-template-columns:92px 1fr 20px;align-items:center;padding:0 2px;display:grid;position:relative}.cn-home-repository:hover,.cn-home-repository:focus-visible{color:var(--cn-action-ink);background:var(--cn-action-bg);padding:0 14px}.cn-home-repository span,.cn-home-repository strong{font-size:.82rem;font-weight:500}.cn-home-repository i{font-style:normal}.cn-home-stack-preview{z-index:2;min-height:72px;color:var(--cn-muted);flex-wrap:wrap;grid-area:4/1/auto/-1;justify-content:flex-start;align-items:center;gap:12px;padding:16px 0;font-size:.82rem;display:flex;position:relative}.cn-home-stack-preview span{border:1px solid var(--cn-tag-border);min-height:38px;color:var(--cn-tag-ink);background:var(--cn-tag-bg);transition:border-color .22s ease, background-color .22s ease, box-shadow .22s ease, transform .22s var(--cn-ease);border-radius:4px;align-items:center;gap:8px;padding:7px 12px;font-weight:650;display:inline-flex}.cn-home-stack-preview span:hover{border-color:color-mix(in srgb, var(--cn-accent) 38%, var(--cn-tag-border));background:var(--cn-tag-bg-hover);box-shadow:0 8px 20px var(--cn-tag-shadow);transform:translateY(-1px)}.cn-home-stack-preview span:before{background:var(--cn-accent);content:"";border-radius:50%;width:5px;height:5px}.cn-home-stack-preview span:nth-child(2n):before,.cn-home-stack-preview span:nth-child(3n):before{background:var(--cn-accent)}.cn-home-projects{width:var(--cn-content);grid-template-columns:minmax(270px,.52fr) minmax(0,1.48fr);align-items:start;gap:clamp(58px,7vw,120px);margin:0 auto;padding:clamp(120px,14vw,210px) 0 clamp(150px,17vw,250px);display:grid;position:relative}.cn-home-projects:before{background:linear-gradient(90deg, var(--cn-electric), var(--cn-line) 28%, var(--cn-line) 72%, var(--cn-acid));content:"";height:1px;position:absolute;top:76px;left:0;right:0}.cn-home-projects__intro{align-content:start;min-height:calc(100svh - 170px);display:grid;position:sticky;top:116px}.cn-home-projects__intro>div{color:var(--cn-muted);gap:22px;font-size:.875rem;display:flex}.cn-home-projects__intro>div span{color:var(--cn-electric);font-weight:800}.cn-home-projects__intro>div p{margin:0}.cn-home-projects__intro h2{letter-spacing:0;max-width:560px;margin:clamp(70px,10vh,120px) 0 0;font-size:clamp(3.2rem,4.4vw,5.2rem);font-weight:620;line-height:1.02}.cn-home-projects__intro h2 span{display:block}.cn-home-projects__intro>p{max-width:440px;color:var(--cn-muted);margin:34px 0 0;font-size:1rem;line-height:1.8}.cn-home-projects__intro>a{border-top:1px solid var(--cn-line);border-bottom:1px solid var(--cn-line);width:min(100%,360px);min-height:58px;transition:padding .28s var(--cn-ease), color .24s ease, background-color .24s ease;justify-content:space-between;align-items:center;margin-top:48px;padding:0 2px;display:flex}.cn-home-projects__intro>a:hover,.cn-home-projects__intro>a:focus-visible{color:var(--cn-action-ink);background:var(--cn-action-bg);padding:0 14px}.cn-home-projects__intro i,.cn-home-project-card__copy i{font-style:normal}.cn-home-projects__stack{gap:clamp(100px,12vh,150px);padding-bottom:7vh;display:grid}.cn-home-project-card{--project-rx:0deg;--project-ry:0deg;--project-light-x:72%;--project-light-y:20%;top:var(--project-sticky-top);z-index:var(--project-z);perspective:1300px;min-height:min(62svh,620px);position:sticky}.cn-home-project-card__surface{border:1px solid color-mix(in srgb, var(--project-tone) 36%, var(--cn-line));background:linear-gradient(125deg, color-mix(in srgb, var(--project-tone) 6%, var(--cn-bg-soft)), var(--cn-bg-soft) 42%), var(--cn-bg-soft);min-height:min(62svh,620px);box-shadow:0 32px 90px color-mix(in srgb, var(--cn-ink) 14%, transparent), inset 0 1px 0 #ffffff70;transform:rotateX(var(--project-rx)) rotateY(var(--project-ry));transform-style:preserve-3d;transition:transform .52s var(--cn-ease), border-color .32s ease, box-shadow .32s ease;border-radius:8px;grid-template-columns:minmax(260px,.78fr) minmax(340px,1.22fr);display:grid;position:relative;overflow:hidden}.cn-home-project-card__surface:before{z-index:2;background:radial-gradient(circle at var(--project-light-x) var(--project-light-y), #ffffff52, transparent 28%);content:"";pointer-events:none;position:absolute;inset:0}.cn-home-project-card__surface:after{z-index:3;background:linear-gradient(90deg, var(--project-tone), color-mix(in srgb, var(--project-tone) 10%, transparent));content:"";height:5px;position:absolute;bottom:0;left:0;right:0}.cn-home-project-card:hover .cn-home-project-card__surface,.cn-home-project-card:focus-within .cn-home-project-card__surface{border-color:color-mix(in srgb, var(--project-tone) 68%, var(--cn-line));box-shadow:0 42px 110px color-mix(in srgb, var(--project-tone) 19%, transparent), inset 0 1px 0 #ffffff8a}.cn-home-project-card__visual{border-right:1px solid color-mix(in srgb, var(--project-tone) 42%, var(--cn-line));color:#ffffffeb;background:linear-gradient(145deg, color-mix(in srgb, var(--project-tone) 72%, #15161a), #16171b);isolation:isolate;position:relative;overflow:hidden}.cn-home-project-card__visual:before{z-index:1;opacity:.34;content:"";background:repeating-linear-gradient(0deg,#ffffff29 0 1px,#0000 1px 36px),repeating-linear-gradient(90deg,#ffffff1a 0 1px,#0000 1px 52px);position:absolute;inset:0}.cn-home-project-card__visual>span,.cn-home-project-card__visual>strong{z-index:2;position:absolute;left:clamp(22px,3vw,42px)}.cn-home-project-card__visual>span{font-size:.86rem;top:clamp(22px,3vw,40px)}.cn-home-project-card__visual>strong{font-size:clamp(1.5rem,2.8vw,3rem);font-weight:560;line-height:1.14;bottom:clamp(24px,3vw,42px);right:26px}.cn-home-project-card__signal{z-index:1;opacity:.72;clip-path:polygon(4% 8%,100% 0,94% 92%,0 100%);background:linear-gradient(90deg,#0000 0 16%,#ffffff38 16% 16.5%,#0000 16.5% 64%,#fff3 64% 64.5%,#0000 64.5%),repeating-linear-gradient(0deg,#fff3 0 1px,#0000 1px 38px);position:absolute;inset:21% 9% 22% 11%;transform:skewY(-6deg)}.cn-home-project-card__signal:before{content:"";background:linear-gradient(90deg,#0000,#ffffff9e,#0000);width:22%;animation:5.5s ease-in-out infinite cn-project-scan;position:absolute;top:0;bottom:0;left:0}.cn-home-project-card__signal:after{background:linear-gradient(90deg, var(--project-tone), #ffffffdb);height:3px;box-shadow:0 0 18px color-mix(in srgb, var(--project-tone) 42%, transparent);content:"";transform-origin:0;animation:cn-project-pulse 3.8s var(--cn-ease) infinite alternate;position:absolute;top:36%;left:6%;right:8%;transform:scaleX(.78)}.cn-home-project-card__palette{display:none}.cn-home-project-card__palette i{background:var(--project-tone);width:24px;height:5px;box-shadow:0 0 14px color-mix(in srgb, var(--project-tone) 56%, transparent);transform-origin:0;animation:cn-palette-breathe 2.8s var(--cn-ease) infinite alternate;display:block}.cn-home-project-card__palette i:nth-child(2){background:var(--project-tone-2);box-shadow:0 0 14px color-mix(in srgb, var(--project-tone-2) 56%, transparent);animation-delay:.18s}.cn-home-project-card__palette i:nth-child(3){background:var(--project-tone-3);box-shadow:0 0 14px color-mix(in srgb, var(--project-tone-3) 56%, transparent);animation-delay:.36s}.cn-home-project-card__copy{z-index:4;flex-direction:column;padding:clamp(34px,5vw,72px);display:flex;position:relative}.cn-home-project-card__meta{border-bottom:1px solid var(--cn-line);color:var(--cn-muted);justify-content:space-between;gap:18px;padding-bottom:18px;font-size:.78rem;display:flex}.cn-home-project-card__meta span:last-child{border:1px solid var(--cn-tag-border);color:var(--cn-tag-ink);background:var(--cn-tag-bg);border-radius:3px;padding:4px 8px;font-weight:650}.cn-home-project-card__copy>p:first-of-type{border:1px solid color-mix(in srgb, var(--project-tone) 24%, var(--cn-line));width:max-content;color:var(--project-tone);background:color-mix(in srgb, var(--project-tone) 8%, var(--cn-bg-soft));border-radius:4px;margin:auto 0 12px;padding:6px 10px;font-size:.84rem;font-weight:700;display:inline-flex}.cn-home-project-card__copy h3{letter-spacing:0;margin:0;font-size:clamp(2.8rem,3.8vw,4.8rem);font-weight:580;line-height:1.02}.cn-home-project-card__copy>p:last-of-type{max-width:650px;color:var(--cn-muted);margin:30px 0 0;font-size:1rem;line-height:1.8}.cn-home-project-card__copy ul{border-top:1px solid var(--cn-line);margin:32px 0 0;padding:0;list-style:none;display:grid}.cn-home-project-card__copy li{border-bottom:1px solid var(--cn-line);padding:12px 0 12px 18px;font-size:.9rem;position:relative}.cn-home-project-card__copy li:before{background:var(--project-tone);content:"";width:6px;height:6px;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(45deg)}.cn-home-project-card__copy>a{min-height:54px;transition:padding .26s var(--cn-ease), color .22s ease, background-color .22s ease;justify-content:space-between;align-items:center;margin-top:26px;padding:0 2px;font-size:.9rem;display:flex}.cn-home-project-card__copy>a:hover,.cn-home-project-card__copy>a:focus-visible{color:var(--cn-action-ink);background:var(--cn-action-bg);padding:0 14px}.cn-page-heading{width:var(--cn-content);min-height:78svh;padding:calc(var(--cn-header-height) + 60px) 0 90px;grid-template-rows:auto 1fr auto;grid-template-columns:1fr .55fr;align-content:space-between;margin:0 auto;display:grid}.cn-page-heading>div{color:var(--cn-muted);grid-column:1/-1;gap:26px;font-size:.82rem;display:flex}.cn-page-heading>div p{margin:0}.cn-page-heading>div span{color:var(--cn-accent);font-weight:750}.cn-page-heading h1{letter-spacing:-.1em;grid-column:1/-1;align-self:center;margin:0;font-size:clamp(5rem,11vw,11rem);font-weight:650;line-height:1}.cn-page-heading>p{max-width:430px;color:var(--cn-muted);grid-column:2;margin:0;font-size:1.05rem;line-height:1.8}.cn-stack-list{border-top:1px solid var(--cn-line)}.cn-stack-item{--stack-accent:var(--cn-electric);--stack-accent-2:var(--cn-acid);--stack-accent-3:var(--cn-rose);border-bottom:1px solid var(--cn-line);background:linear-gradient(90deg, color-mix(in srgb, var(--stack-accent) 5%, transparent), transparent 34%);isolation:isolate;grid-template-columns:60px minmax(260px,.75fr) minmax(420px,1.25fr);align-items:center;gap:42px;min-height:220px;padding:42px max(40px,50vw - 740px);transition:background-color .3s,border-color .3s;display:grid;position:relative;overflow:hidden}.cn-stack-item:before{background:var(--stack-accent);width:5px;box-shadow:10px 0 34px color-mix(in srgb, var(--stack-accent) 28%, transparent);content:"";transform-origin:50%;transition:transform .36s var(--cn-ease);position:absolute;top:0;bottom:0;left:0;transform:scaleY(.34)}.cn-stack-item:after{z-index:-1;background:color-mix(in srgb, var(--stack-accent) 8%, transparent);content:"";opacity:.18;width:min(38vw,520px);height:76%;transition:opacity .36s ease, transform .46s var(--cn-ease);position:absolute;top:12%;right:-8%;transform:skew(-18deg)scaleX(.72)}.cn-stack-item>*{z-index:1;position:relative}.cn-stack-item:hover,.cn-stack-item:focus-within{background-color:color-mix(in srgb, var(--stack-accent) 9%, var(--cn-bg));border-color:color-mix(in srgb, var(--stack-accent) 48%, var(--cn-line))}.cn-stack-item:hover:before,.cn-stack-item:focus-within:before{transform:scaleY(1)}.cn-stack-item:hover:after,.cn-stack-item:focus-within:after{opacity:.36;transform:skew(-18deg)scaleX(1)}.cn-stack-item__index{color:var(--stack-accent);align-self:start;font-size:.8rem;font-weight:800}.cn-stack-item__copy h2{letter-spacing:-.06em;transition:color .28s ease, transform .34s var(--cn-ease);margin:0 0 16px;font-size:clamp(2.3rem,4vw,4.4rem);font-weight:520;line-height:1}.cn-stack-item__copy h2:after{background:var(--stack-accent);content:"";vertical-align:.14em;width:.34em;height:.11em;margin-left:.18em;display:inline-block}.cn-stack-item__copy p{max-width:390px;color:var(--cn-muted);margin:0;font-size:1rem;line-height:1.7;transition:color .26s}.cn-stack-item:hover .cn-stack-item__copy h2,.cn-stack-item:focus-within .cn-stack-item__copy h2{color:var(--stack-accent);transform:translate(6px)}.cn-stack-item ul{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cn-stack-item li{--chip-accent:var(--stack-accent);border:1px solid var(--cn-tag-border);min-height:42px;color:var(--cn-tag-ink);background:var(--cn-tag-bg);opacity:1;transition:background-color .24s ease, box-shadow .24s ease, transform .28s var(--cn-ease);border-radius:4px;align-items:center;gap:8px;padding:7px 13px 7px 7px;font-size:.84rem;font-weight:650;display:inline-flex}.cn-stack-item li:nth-child(2){transition-delay:25ms}.cn-stack-item li:nth-child(3){transition-delay:50ms}.cn-stack-item li:nth-child(4){transition-delay:75ms}.cn-stack-item li:nth-child(5){transition-delay:.1s}.cn-stack-item li:nth-child(6){transition-delay:.125s}.cn-stack-item:hover li,.cn-stack-item:focus-within li{border-color:color-mix(in srgb, var(--cn-accent) 38%, var(--cn-tag-border));background:var(--cn-tag-bg-hover);box-shadow:0 8px 20px var(--cn-tag-shadow);transform:translateY(-2px)}.cn-skill-chip__icon{border:1px solid color-mix(in srgb, var(--cn-accent) 24%, transparent);width:27px;min-width:27px;height:27px;color:var(--cn-accent);background:color-mix(in srgb, var(--cn-accent) 10%, transparent);border-radius:3px;place-items:center;font-size:.57rem;font-weight:850;line-height:1;display:grid}.cn-skill-chip__icon--brand:before{content:"";width:15px;height:15px;-webkit-mask:var(--skill-icon) center / contain no-repeat;-webkit-mask:var(--skill-icon) center / contain no-repeat;mask:var(--skill-icon) center / contain no-repeat;background:currentColor}.cn-icon-attribution{width:var(--cn-content);border-bottom:1px solid var(--cn-line);min-height:58px;color:var(--cn-muted);align-items:center;gap:18px;margin:0 auto;font-size:.78rem;display:flex}.cn-icon-attribution span{color:var(--cn-ink);font-weight:650}.cn-icon-attribution a{position:relative}.cn-icon-attribution a:after{content:"";transform-origin:100%;height:1px;transition:transform .24s var(--cn-ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.cn-icon-attribution a:hover:after,.cn-icon-attribution a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.cn-repository-section{width:var(--cn-content);grid-template-columns:.8fr 1.2fr;gap:90px;min-height:64svh;margin:0 auto;padding:120px 0;display:grid}.cn-repository-section>div>span{color:var(--cn-muted);font-size:.82rem}.cn-repository-section h2{letter-spacing:-.07em;white-space:pre-line;margin:38px 0 0;font-size:clamp(3rem,5.5vw,5.8rem);font-weight:520;line-height:1.08}.cn-repository-section nav{border-top:1px solid var(--cn-line);height:max-content;display:grid}.cn-repository-section a{border-bottom:1px solid var(--cn-line);min-height:110px;transition:padding .28s var(--cn-ease), color .24s ease, background .24s ease;grid-template-columns:90px 1fr 24px;align-items:center;padding:0 2px;display:grid}.cn-repository-section a:hover,.cn-repository-section a:focus-visible{color:var(--cn-action-ink);background:var(--cn-action-bg);padding:0 16px}.cn-repository-section a span,.cn-repository-section a strong{font-size:.86rem;font-weight:500}.cn-repository-section a i{font-style:normal}.cn-page-heading--work{min-height:82svh}.cn-work-list{width:var(--cn-content);gap:clamp(120px,14vw,220px);margin:0 auto;padding:40px 0 170px;display:grid}.cn-work-item{grid-template-columns:minmax(0,1.03fr) minmax(390px,.77fr);align-items:start;gap:clamp(50px,7vw,110px);display:grid}.cn-work-item:nth-child(2n){grid-template-columns:minmax(390px,.77fr) minmax(0,1.03fr)}.cn-work-item:nth-child(2n) .cn-project-visual{order:2}.cn-project-visual{--project-tone-2:var(--cn-acid);--project-tone-3:var(--cn-rose);aspect-ratio:16/10;border:1px solid color-mix(in srgb, var(--project-tone) 36%, var(--cn-line));background:color-mix(in srgb, var(--project-tone) 72%, #15161a);box-shadow:var(--cn-project-shadow);position:sticky;top:118px;overflow:hidden}.cn-project-visual>img{object-fit:cover;filter:saturate(.68)contrast(.96);width:100%;height:100%;transition:transform .52s var(--cn-ease), filter .36s ease}.cn-project-visual:hover>img{filter:saturate(.82)contrast();transform:scale(1.018)}.cn-project-placeholder{color:#f6f2f6ed;background:linear-gradient(145deg, color-mix(in srgb, var(--project-tone) 72%, #15161a), #15161a);align-items:flex-end;width:100%;height:100%;padding:28px;display:flex;position:relative;overflow:hidden}.cn-project-placeholder:before{opacity:.46;content:"";background-image:linear-gradient(#f8f3f81f 1px,#0000 1px),linear-gradient(90deg,#f8f3f81f 1px,#0000 1px);background-size:12.5% 12.5%;position:absolute;inset:0}.cn-project-placeholder:after{background:linear-gradient(90deg, var(--project-tone), color-mix(in srgb, var(--project-tone) 12%, transparent));content:"";height:6px;position:absolute;bottom:0;left:0;right:0}.cn-project-placeholder__mist{background:linear-gradient(140deg,#fff3,#0000);width:72%;height:116%;animation:7s ease-in-out infinite alternate cn-placeholder-float;position:absolute;top:-8%;right:-14%;transform:skew(-18deg)}.cn-project-placeholder__index{border:1px solid var(--cn-tag-bg);color:var(--cn-tag-ink);background:var(--cn-tag-bg);border-radius:3px;padding:5px 8px;font-size:.8rem;font-weight:800;position:absolute;top:24px;left:28px}.cn-project-placeholder>div:last-child{z-index:1;position:relative}.cn-project-placeholder p{letter-spacing:-.07em;margin:0;font-size:clamp(2.4rem,5vw,5rem);font-weight:520;line-height:1}.cn-project-placeholder small{opacity:.82;font-size:.8rem}.cn-work-item__content{padding-top:4px}.cn-work-item__meta{border-bottom:1px solid var(--cn-line);color:var(--cn-muted);justify-content:space-between;padding-bottom:16px;font-size:.8rem;display:flex}.cn-work-item__category{color:var(--cn-muted);margin:38px 0 12px;font-size:.85rem}.cn-work-item h2{letter-spacing:-.075em;margin:0;font-size:clamp(3.1rem,5.2vw,5.6rem);font-weight:520;line-height:1.05}.cn-work-item__role{border:1px solid var(--cn-tag-border);width:max-content;color:var(--cn-tag-ink);background:var(--cn-tag-bg);border-radius:4px;align-items:center;margin:19px 0 38px;padding:7px 11px;font-size:.9rem;font-weight:650;display:inline-flex}.cn-work-item__role:before{background:var(--cn-accent);content:"";border-radius:50%;width:5px;height:5px;margin-right:8px;display:block}.cn-work-item__summary{margin:0;font-size:1.05rem;line-height:1.85}.cn-work-item__responsibility{border-top:1px solid var(--cn-line);grid-template-columns:78px 1fr;gap:22px;margin-top:36px;padding-top:22px;display:grid}.cn-work-item__responsibility strong{font-size:.82rem;font-weight:600}.cn-work-item__responsibility p{color:var(--cn-muted);margin:0;font-size:1rem;line-height:1.8}.cn-work-item__outcomes{border-top:1px solid var(--cn-line);margin:34px 0 0;padding:0;list-style:none;display:grid}.cn-work-item__outcomes li{border-bottom:1px solid var(--cn-line);padding:13px 0 13px 18px;font-size:.95rem;position:relative}.cn-work-item__outcomes li:before{background:var(--cn-rose);content:"";border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cn-work-item__stack{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.cn-work-item__stack span{border:1px solid var(--cn-tag-border);color:var(--cn-tag-ink);background:var(--cn-tag-bg);transition:border-color .22s ease, background-color .22s ease, box-shadow .22s ease, transform .22s var(--cn-ease);border-radius:4px;padding:8px 11px;font-size:.82rem;font-weight:650}.cn-work-item__stack span:hover{border-color:color-mix(in srgb, var(--cn-accent) 38%, var(--cn-tag-border));background:var(--cn-tag-bg-hover);box-shadow:0 8px 20px var(--cn-tag-shadow);transform:translateY(-1px)}.cn-links-directory{width:var(--cn-content);margin:0 auto;padding:0 0 clamp(140px,16vw,230px)}.cn-links-directory__header{border-top:1px solid var(--cn-line);border-bottom:1px solid var(--cn-line);min-height:64px;color:var(--cn-muted);justify-content:space-between;align-items:center;font-size:.82rem;display:flex}.cn-links-directory__header strong{color:var(--cn-ink);font-weight:650}.cn-links-list a{border-bottom:1px solid var(--cn-line);min-height:118px;transition:background-color .24s ease, padding .32s var(--cn-ease);grid-template-columns:52px minmax(260px,1fr) minmax(170px,.42fr) 24px;align-items:center;gap:28px;padding:0 2px;display:grid}.cn-links-list a:hover,.cn-links-list a:focus-visible{background:color-mix(in srgb, var(--cn-accent) 6%, transparent);padding:0 18px}.cn-links-list__index{color:var(--cn-accent);font-size:.78rem;font-weight:750}.cn-links-list__copy{gap:5px;display:grid}.cn-links-list__copy strong{font-size:clamp(1.35rem,2vw,2rem);font-weight:580;line-height:1.2}.cn-links-list__copy small,.cn-links-list__host{color:var(--cn-muted);font-size:.84rem}.cn-links-list__host{text-align:right}.cn-links-list i{color:var(--cn-accent);text-align:right;transition:transform .26s var(--cn-ease);font-style:normal}.cn-links-list a:hover i,.cn-links-list a:focus-visible i{transform:translate(3px,-3px)}.cn-image-note{width:var(--cn-content);border-top:1px solid var(--cn-line);border-bottom:1px solid var(--cn-line);grid-template-columns:110px 1fr;gap:28px;margin:0 auto 130px;padding:22px 0;display:grid}.cn-image-note span{font-size:.82rem}.cn-image-note p{max-width:620px;color:var(--cn-muted);margin:0;font-size:1rem;line-height:1.7}.cn-footer{z-index:3;width:var(--cn-content);border-top:1px solid var(--cn-line);min-height:88px;color:var(--cn-muted);justify-content:space-between;align-items:center;margin:0 auto;font-size:.8rem;display:flex;position:relative}.cn-page-curtain{z-index:1000;visibility:hidden;color:var(--cn-overlay-ink);background:var(--cn-overlay-bg);opacity:0;pointer-events:none;will-change:opacity;place-items:center;transition:opacity .18s,visibility .18s;display:grid;position:fixed;inset:0}.cn-page-curtain:before{background:color-mix(in srgb, var(--cn-overlay-ink) 72%, transparent);content:"";opacity:.72;transform-origin:0;height:3px;position:absolute;bottom:10%;left:8%;right:8%;transform:scaleX(0)}.cn-page-curtain span{opacity:0;letter-spacing:-.06em;font-size:clamp(2.8rem,7vw,6.8rem);font-weight:520;transform:translateY(18px)scale(.86)}.cn-page-curtain--idle{visibility:hidden;opacity:0;transition:none}.cn-page-curtain--shrinking{visibility:visible;opacity:.16;transition:opacity .7s,visibility .7s}.cn-page-curtain--covering{visibility:visible;opacity:1;transition:opacity .24s,visibility .24s}.cn-page-curtain--covering:before{transition:transform .42s var(--cn-ease) 40ms;transform:scaleX(1)}.cn-page-curtain--covering span{opacity:1;transition:opacity .22s ease 60ms, transform .42s var(--cn-ease) 30ms;transform:translateY(0)scale(1)}.cn-page-curtain--revealing{visibility:hidden;opacity:0;transition:opacity .72s 80ms,visibility .85s}.cn-page-curtain--revealing span{opacity:0;transition:opacity .18s,transform .3s;transform:translateY(-14px)scale(1.06)}.cn-route-enter-active,.cn-route-leave-active{transition:opacity .32s,transform .52s cubic-bezier(.16,1,.3,1)}.cn-route-enter-from{opacity:0;transform:translateY(14px)scale(.97)}.cn-route-leave-to{opacity:0;width:100%;position:absolute;transform:translateY(-10px)scale(.975)}a:focus-visible,button:focus-visible{outline:2px solid var(--cn-ink);outline-offset:4px}@keyframes cn-placeholder-float{0%{transform:translate(-6%,5%)skew(-18deg)scale(.94)}to{transform:translate(5%,-4%)skew(-18deg)scale(1.06)}}@keyframes cn-project-palette{0%{background-position:0}to{background-position:100%}}@keyframes cn-palette-breathe{0%{opacity:.58;transform:scaleX(.72)}to{opacity:1;transform:scaleX(1)}}@keyframes cn-project-scan{0%,14%{opacity:0;transform:translate(-120%)}34%,70%{opacity:.82}88%,to{opacity:0;transform:translate(620%)}}@keyframes cn-project-pulse{0%{opacity:.34;transform:scaleX(.52)}to{opacity:.9;transform:scaleX(1)}}@keyframes cn-home-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){:root{--cn-content:min(100% - 40px, 960px)}.cn-header{grid-template-columns:1fr auto auto;gap:12px}.cn-desktop-nav,.cn-header-github{display:none}.cn-menu-button{z-index:20;border:1px solid var(--cn-line);background:var(--cn-control-bg);border-radius:50%;place-content:center;gap:6px;width:44px;height:44px;padding:0;display:grid;position:relative}.cn-menu-button span{width:17px;height:1px;transition:transform .26s var(--cn-ease);background:currentColor;display:block}.cn-menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px)rotate(45deg)}.cn-menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.cn-mobile-nav{z-index:10;visibility:hidden;color:var(--cn-overlay-ink);background:var(--cn-overlay-bg);opacity:0;flex-direction:column;justify-content:center;padding:120px 24px 42px;transition:opacity .28s,visibility .28s;display:flex;position:fixed;inset:0}.cn-mobile-nav--open{visibility:visible;opacity:1}.cn-brand,.cn-header-actions{z-index:20;position:relative}body.cn-menu-open .cn-header{width:100%;height:var(--cn-header-height);padding:0 max(20px, calc((100vw - var(--cn-content)) / 2));box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;border-radius:0;top:0;transform:none}body.cn-menu-open .cn-brand,body.cn-menu-open .cn-menu-button{color:var(--cn-overlay-ink)}body.cn-menu-open .cn-menu-button{border-color:var(--cn-line-light)}.cn-mobile-nav>a{border-bottom:1px solid var(--cn-line-light);letter-spacing:-.05em;align-items:center;min-height:76px;font-size:clamp(2rem,7vw,3.4rem);font-weight:500;display:flex}.cn-mobile-friends{border-bottom:1px solid var(--cn-line-light);gap:0;padding:20px 0;display:grid}.cn-mobile-friends>span{color:color-mix(in srgb, var(--cn-overlay-ink) 62%, transparent);margin-bottom:8px;font-size:.78rem}.cn-mobile-friends a{border-bottom:1px solid color-mix(in srgb, var(--cn-overlay-ink) 12%, transparent);align-content:center;gap:2px;min-height:52px;padding:8px 0;display:grid}.cn-mobile-friends a:last-child{border-bottom:0}.cn-mobile-friends strong{font-size:1rem;font-weight:550}.cn-mobile-friends small{color:color-mix(in srgb, var(--cn-overlay-ink) 62%, transparent);font-size:.74rem}.cn-home-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.78fr)}.cn-home-copy h1{font-size:clamp(4.2rem,8.8vw,6.6rem)}.cn-portrait{width:min(25vw,250px);right:28px}.cn-home-projects{grid-template-columns:1fr;gap:74px}.cn-home-projects__intro{min-height:0;position:relative;top:auto}.cn-home-projects__intro h2{max-width:760px;margin-top:72px}.cn-home-projects__intro>p{max-width:600px}.cn-stack-item{grid-template-columns:45px .75fr 1.25fr;padding-left:20px;padding-right:20px}.cn-work-item,.cn-work-item:nth-child(2n){grid-template-columns:1fr;gap:55px}.cn-work-item:nth-child(2n) .cn-project-visual{order:initial}.cn-project-visual{position:relative;top:0}.cn-work-item__content{width:min(100%,720px);margin-left:auto}}@media (width<=720px){:root{--cn-content:calc(100% - 28px);--cn-header-height:74px}.cn-brand span{display:none}.cn-header{gap:8px}.cn-header--scrolled{width:calc(100% - 16px);height:62px;padding:0 10px;top:8px}.cn-theme-switcher{position:static}.cn-theme-trigger{min-height:38px;padding:0 10px}.cn-theme-trigger strong{display:none}.cn-theme-panel{width:min(340px,100vw - 28px);position:fixed;top:74px;right:14px}.cn-home-hero{flex-direction:column;min-height:100svh;padding:104px 0 34px;display:flex}.cn-home-meta span:last-child{display:none}.cn-home-copy{margin-top:74px}.cn-home-kicker{margin-bottom:20px}.cn-home-copy h1{font-size:clamp(3.6rem,17vw,5rem);line-height:1.02}.cn-home-copy h1 span:last-child{-webkit-text-stroke-width:1px}.cn-home-intro{margin-top:38px}.cn-home-intro p{font-size:1rem}.cn-home-links{margin-top:30px}.cn-portrait{pointer-events:none;width:145px;margin:0;top:330px;right:10px;translate:0 -50%}.cn-portrait__image{height:195px;opacity:calc(var(--cn-portrait-opacity) * .7)}.cn-home-repository{grid-template-columns:72px 1fr 20px;width:100%;margin-top:48px}.cn-home-repository strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cn-home-stack-preview{flex-wrap:wrap;justify-content:flex-start;gap:14px 22px;margin-top:42px;padding:16px 0}.cn-home-projects{gap:58px;padding:102px 0 132px}.cn-home-projects:before{top:54px}.cn-home-projects__intro h2{margin-top:52px;font-size:clamp(3rem,14vw,4.2rem)}.cn-home-projects__intro>p{margin-top:26px}.cn-home-projects__intro>a{margin-top:34px}.cn-home-projects__stack{gap:78px;padding-bottom:0}.cn-home-project-card{min-height:0}.cn-home-project-card__surface{grid-template-columns:1fr;min-height:0}.cn-home-project-card__visual{border-right:0;border-bottom:1px solid color-mix(in srgb, var(--project-tone) 42%, var(--cn-line));min-height:230px}.cn-home-project-card__visual>strong{max-width:290px;font-size:2.1rem}.cn-home-project-card__copy{padding:28px 22px 24px}.cn-home-project-card__copy>p:first-of-type{margin-top:44px}.cn-home-project-card__copy h3{font-size:2.75rem}.cn-home-project-card__copy>p:last-of-type{margin-top:24px}.cn-home-project-card__copy ul{margin-top:26px}.cn-page-heading{flex-direction:column;justify-content:space-between;min-height:68svh;padding:110px 0 72px;display:flex}.cn-page-heading h1{margin:105px 0 85px;font-size:clamp(3.8rem,17vw,5rem);line-height:1.05}.cn-page-heading>p{max-width:340px;font-size:1rem}.cn-page-heading--work h1{font-size:clamp(4.2rem,20vw,6rem)}.cn-stack-item{grid-template-columns:34px 1fr;gap:18px;min-height:0;padding:30px 14px;display:grid}.cn-stack-item__copy h2{font-size:2.2rem}.cn-stack-item ul{grid-column:2}.cn-stack-item li{min-height:39px;padding:6px 10px 6px 6px;font-size:.82rem}.cn-icon-attribution{flex-wrap:wrap;gap:8px 16px;min-height:0;padding:18px 0}.cn-repository-section{min-height:0;padding:95px 0;display:block}.cn-repository-section h2{margin-top:28px;font-size:3.1rem}.cn-repository-section nav{margin-top:64px}.cn-repository-section a{grid-template-columns:64px 1fr 20px;min-height:94px}.cn-repository-section a strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.cn-work-list{gap:110px;padding:20px 0 110px}.cn-project-visual{aspect-ratio:4/3}.cn-project-placeholder{padding:20px}.cn-project-placeholder p{font-size:2.5rem}.cn-work-item h2{font-size:3rem}.cn-work-item__responsibility{display:block}.cn-work-item__responsibility p{margin-top:13px}.cn-image-note{margin-bottom:100px;display:block}.cn-image-note p{margin-top:13px}.cn-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:13px;min-height:130px;padding:28px 0}.cn-page-curtain span{font-size:3.2rem}}.cn-brand span,.cn-home-meta,.cn-home-kicker,.cn-home-repository span,.cn-home-repository strong,.cn-home-stack-preview,.cn-page-heading>div,.cn-stack-item__index,.cn-stack-item li,.cn-repository-section>div>span,.cn-repository-section a span,.cn-repository-section a strong,.cn-project-placeholder__index,.cn-work-item__meta,.cn-work-item__category,.cn-work-item__responsibility strong,.cn-work-item__stack span,.cn-footer{font-size:.875rem}h1,h2,.cn-brand strong,.cn-home-meta,.cn-project-placeholder p,.cn-page-curtain span,.cn-mobile-nav a{letter-spacing:0}@media (width<=720px){.cn-page-heading--links h1{font-size:clamp(4.2rem,20vw,6rem)}.cn-links-directory{padding-bottom:120px}.cn-links-directory__header{min-height:56px}.cn-links-list a{grid-template-columns:34px minmax(0,1fr) 22px;gap:8px 12px;min-height:112px;padding:20px 0}.cn-links-list a:hover,.cn-links-list a:focus-visible{padding:20px 10px}.cn-links-list__copy strong{font-size:1.25rem}.cn-links-list__host{text-align:left;grid-column:2}.cn-links-list i{grid-area:1/3/span 2}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}
