.pcrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:107.9%;margin-top:clamp(36px,4vw,60px);margin-bottom:56px;@media(max-width:760px){grid-template-columns:1fr;gap:20px;width:100%;margin-bottom:0}}.pc{--slant: 15%;position:relative;display:block;aspect-ratio:3 / 4.1;clip-path:polygon(var(--slant) 0,100% 0,calc(100% - var(--slant)) 100%,0 100%);color:#eef0f2;overflow:hidden;transition:transform .7s cubic-bezier(.2,.7,.2,1);&:nth-child(2){transform:translate(calc(-11% - 6.15px),56px)}&:nth-child(3){transform:translate(calc(-22% + 2.64px),-24px)}>.codepic{position:absolute;inset:0;width:100%;height:100%;display:block;filter:grayscale(1) contrast(1.15) brightness(.8);transition:filter .7s}&:hover{z-index:3;color:#eef0f2;.pcdesc{max-height:12em;opacity:1}.pcread{max-height:24px;opacity:1}.pcring{--ring: 3px;background:var(--color-accent)}.pctitle{color:#fff}>.codepic{filter:none}}&.pc-soon{cursor:default;&:hover .pcring{--ring: 1px;background:var(--color-divider)}}@media(max-width:760px){--slant: 7%;&,&:nth-child(2),&:nth-child(3){transform:none;aspect-ratio:4 / 3.4}}}.pcshade{position:absolute;inset:0;background:linear-gradient(180deg,#131c2733,#131c2799 45%,#131c27f5),color-mix(in srgb,var(--color-accent) 22%,transparent);transition:opacity .7s}.pcbody{position:absolute;left:0;right:0;bottom:0;padding:0 22% 9% 9%;display:flex;flex-direction:column;align-items:flex-start;gap:10px;@media(max-width:760px){padding:0 14% 9% 10%}}.pctitle{border-left:3px solid var(--color-accent);padding-left:14px;font-family:var(--font-heading);font-weight:700;font-size:clamp(22px,2.1vw,30px);line-height:1.08;text-wrap:pretty}.pcdesc{font-size:14px;line-height:1.55;color:#eef0f2db;max-height:0;opacity:0;overflow:hidden;text-wrap:pretty;transition:max-height .6s cubic-bezier(.2,.7,.2,1),opacity .45s .1s}.pcread{font-family:var(--font-heading);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);max-height:0;opacity:0;overflow:hidden;transition:max-height .5s cubic-bezier(.2,.7,.2,1),opacity .4s}.pcdesc,.pcread{@media(hover:none),(max-width:760px){max-height:none!important;opacity:1!important}}.pcring{--ring: 1px;position:absolute;inset:0;background:var(--color-divider);pointer-events:none;transition:clip-path .3s cubic-bezier(.2,.6,.2,1),background .3s;clip-path:polygon(evenodd,var(--slant) 0,100% 0,calc(100% - var(--slant)) 100%,0 100%,var(--slant) 0,calc(var(--slant) + var(--ring)) var(--ring),calc(var(--ring) * 1.25) calc(100% - var(--ring)),calc(100% - var(--slant) - var(--ring)) calc(100% - var(--ring)),calc(100% - var(--ring) * 1.25) var(--ring),calc(var(--slant) + var(--ring)) var(--ring))}.pckicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}.codepic{.cb{transform:scaleX(0);animation:codegrow 9s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:var(--d);@media(prefers-reduced-motion:reduce){animation:none;transform:none}}.cursor{animation:blink 1s steps(1) infinite;@media(prefers-reduced-motion:reduce){animation:none;transform:none}}}.advpic{.sk{stroke-dasharray:1;stroke-dashoffset:1;animation:sketch 12s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:var(--d);@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1}}}.labpic{.lq{stroke-dasharray:1;stroke-dashoffset:1;animation:lqdraw 9s cubic-bezier(.2,.7,.2,1) infinite;@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1;transform:none}}.lq2{animation-delay:.5s}.kpi{opacity:0;animation:sketchfade 9s linear infinite;animation-delay:1.8s;@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1;transform:none}}.wb{transform:scaleY(0);animation:wbgrow 9s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:var(--d);@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1;transform:none}}.cv{opacity:0;transform:translateY(14px);animation:cvin 9s cubic-bezier(.2,.7,.2,1) infinite;animation-delay:var(--d);@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1;transform:none}}.rec{animation:blink 1.2s steps(1) infinite;@media(prefers-reduced-motion:reduce){animation:none;stroke-dashoffset:0;opacity:1;transform:none}}}@keyframes codegrow{0%{transform:scaleX(0)}6%{transform:scaleX(1)}78%{transform:scaleX(1);opacity:1}86%{opacity:0}to{opacity:0;transform:scaleX(0)}}@keyframes sketch{0%{stroke-dashoffset:1;opacity:1}7%{stroke-dashoffset:0}78%{stroke-dashoffset:0;opacity:1}88%{opacity:0}to{opacity:0;stroke-dashoffset:1}}@keyframes sketchfade{0%{opacity:0;transform:translateY(4px)}4%{opacity:1;transform:none}78%{opacity:1}88%{opacity:0}to{opacity:0}}@keyframes lqdraw{0%{stroke-dashoffset:1;opacity:1}22%{stroke-dashoffset:0}80%{stroke-dashoffset:0;opacity:1}90%{opacity:0}to{opacity:0;stroke-dashoffset:1}}@keyframes wbgrow{0%{transform:scaleY(0)}10%{transform:scaleY(1)}80%{transform:scaleY(1);opacity:1}90%{opacity:0}to{opacity:0;transform:scaleY(0)}}@keyframes cvin{0%{opacity:0;transform:translateY(14px)}6%{opacity:1;transform:none}80%{opacity:1}90%{opacity:0}to{opacity:0;transform:translateY(14px)}}@keyframes blink{50%{opacity:0}}.u1{*{--T: 13s;--D: -2.5s}.u1row{animation:u1row var(--T) steps(1) var(--D) infinite}.u1h{animation:u1h var(--T) cubic-bezier(.4,0,.2,1) var(--D) infinite}.u1f{animation:u1f var(--T) cubic-bezier(.4,0,.2,1) var(--D) infinite}.u1a{animation:u1a var(--T) ease var(--D) infinite}.u1b{stroke-dasharray:1;stroke-dashoffset:1;animation:u1b var(--T) cubic-bezier(.2,.7,.2,1) var(--D) infinite}.u1k1{animation:u1k1 var(--T) steps(1) var(--D) infinite}.u1k2{opacity:0;animation:u1k2 var(--T) steps(1) var(--D) infinite}.u1tip{opacity:0;transform:translateY(6px);animation:u1tip var(--T) cubic-bezier(.2,.7,.2,1) var(--D) infinite}}.u2{*{--T: 11s;--D: -7s}.u2card{animation:u2card var(--T) cubic-bezier(.4,0,.2,1) var(--D) infinite}.u2shift{animation:u2shift var(--T) cubic-bezier(.2,.7,.2,1) var(--D) infinite}.u2ok{opacity:0;transform:scale(.4);transform-origin:415px 314px;animation:u2ok var(--T) cubic-bezier(.3,1.5,.5,1) var(--D) infinite}}.u3{*{--T: 14s;--D: -4.5s}.u3dot{animation:u3dot var(--T) steps(1) var(--D) infinite}.u3btn{animation:u3btn var(--T) steps(1) var(--D) infinite}.u3bar{animation:u3bar var(--T) cubic-bezier(.2,.7,.2,1) var(--D) infinite}.u3new{animation:u3new var(--T) cubic-bezier(.2,.7,.2,1) var(--D) infinite}.u3type{animation:u3type var(--T) steps(12) var(--D) infinite}.u3tot1{animation:u3tot1 var(--T) steps(1) var(--D) infinite}.u3tot2{opacity:0;animation:u3tot2 var(--T) steps(1) var(--D) infinite}}@keyframes u1row{0%,7%{opacity:0;transform:translateY(0)}8%{opacity:1;transform:translateY(0)}14%{transform:translateY(52px)}20%,to{opacity:0}}@keyframes u1h{0%,32%{cx:130px}56%,to{cx:510px}}@keyframes u1f{0%,32%{transform:scaleX(.2)}56%,to{transform:scaleX(.8)}}@keyframes u1a{0%,34%{opacity:1}46%,to{opacity:0}}@keyframes u1b{0%,36%{stroke-dashoffset:1;opacity:1}58%,92%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes u1k1{0%,44%{opacity:1}45%,to{opacity:0}}@keyframes u1k2{0%,44%{opacity:0}45%,96%{opacity:1}97%,to{opacity:0}}@keyframes u1tip{0%,58%{opacity:0;transform:translateY(6px)}63%,92%{opacity:1;transform:none}97%,to{opacity:0}}@keyframes u2card{0%,32%{transform:translate(0)}54%,to{transform:translate(330px)}}@keyframes u2shift{0%,56%{transform:translate(0)}66%,to{transform:translateY(-110px)}}@keyframes u2ok{0%,57%{opacity:0;transform:scale(.4)}62%,94%{opacity:1;transform:scale(1)}98%,to{opacity:0}}@keyframes u3dot{0%,26%{fill:#eef0f259}27%,to{fill:#e8763a}}@keyframes u3btn{0%,26%{stroke:#eef0f226}27%,to{stroke:#e8763a}}@keyframes u3bar{0%,27%{transform:scaleY(.55)}90%,to{transform:scaleY(1)}}@keyframes u3new{0%,29%{opacity:0;transform:translateY(12px)}38%,to{opacity:1;transform:none}}@keyframes u3type{0%,38%{transform:scaleX(0)}58%,to{transform:scaleX(1)}}@keyframes u3tot1{0%,60%{opacity:1}61%,to{opacity:0}}@keyframes u3tot2{0%,60%{opacity:0}61%,to{opacity:1}}@media(prefers-reduced-motion:reduce){.u1 *,.u2 *,.u3 *{animation:none!important}.u1 .u1row,.u1 .u1a,.u1 .u1k1,.u3 .u3tot1{opacity:0}.u1 .u1h{cx:510px}.u1 .u1f{transform:scaleX(.8)}.u1 .u1b{stroke-dashoffset:0}.u1 .u1k2,.u2 .u2ok,.u3 .u3tot2,.u3 .u3new{opacity:1}.u1 .u1tip{opacity:1;transform:none}.u2 .u2ok{transform:none}.u2 .u2card{transform:translate(330px)}.u2 .u2shift{transform:translateY(-110px)}.u3 .u3dot{fill:#e8763a}.u3 .u3btn{stroke:#e8763a}.u3 .u3bar,.u3 .u3type,.u3 .u3new{transform:none}}:root{--color-bg: #131c27;--color-surface: #1b2634;--color-text: #eef0f2;--color-accent: #e8763a;--color-accent-600: #d2652b;--color-accent-700: #b8551f;--color-accent-hover: #f59a68;--color-divider: rgba(238, 240, 242, .18);--color-paper: #f2f2f3;--color-ink: #1d1f20;--font-heading: "Geist", system-ui, sans-serif;--font-heading-weight: 700;--font-body: "Geist", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--space-1: 3.4px;--space-2: 6.8px;--space-3: 10.2px;--space-4: 13.6px;--space-6: 20.4px;--space-8: 27.2px;--dens: 1}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{overflow-x:clip}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0 0 var(--space-2)}p{margin:0 0 var(--space-3)}img,video{display:block;max-width:100%;height:auto}a{color:var(--color-accent);text-decoration:none;transition:color .2s;&:hover{color:var(--color-accent-hover)}}::selection{background:color-mix(in srgb,var(--color-accent) 34%,transparent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input,textarea,button{font:inherit}.on-paper{--color-bg: var(--color-paper);--color-text: var(--color-ink);--color-divider: rgba(29, 31, 32, .24);--color-surface: #e9e9ea;background:var(--color-paper);color:var(--color-ink)}.on-accent{--color-text: #131c27;--color-divider: rgba(19, 28, 39, .4);background:var(--color-accent);color:#131c27}.langseg{transition:color .25s,box-shadow .25s}.wrap{max-width:1240px;margin:0 auto;padding:0 28px}.sect{padding:calc(clamp(64px,8vw,118px) * var(--dens, 1)) 0}.g2{display:grid;grid-template-columns:1fr 1fr;gap:calc(clamp(32px,4vw,64px) * var(--dens, 1));@media(max-width:1000px){grid-template-columns:1fr}}.g2w{display:grid;grid-template-columns:.98fr 1.02fr;gap:calc(clamp(32px,4vw,60px) * var(--dens, 1));align-items:center;@media(max-width:1024px){grid-template-columns:1fr}}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(clamp(20px,2.4vw,34px) * var(--dens, 1));@media(max-width:1000px){grid-template-columns:1fr 1fr}@media(max-width:640px){grid-template-columns:1fr}}.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:calc(clamp(4px,.5vw,8px) * var(--dens, 1)) 0;@media(max-width:1000px){grid-template-columns:repeat(3,1fr)}@media(max-width:640px){grid-template-columns:1fr;gap:calc(clamp(20px,3vw,32px) * var(--dens, 1))}}.wall{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,56px);align-items:center;@media(max-width:600px){grid-template-columns:1fr}}.pxgrid{isolation:isolate;position:relative;&:before{content:"";position:absolute;z-index:-1;right:-20px;bottom:-20px;width:58%;height:58%;background-image:linear-gradient(var(--color-accent) 1px,transparent 1px),linear-gradient(90deg,var(--color-accent) 1px,transparent 1px);background-size:15px 15px;opacity:.4;pointer-events:none}&:after{content:"";position:absolute;z-index:-1;left:-22px;top:-30px;width:84px;height:2px;background:var(--color-accent);opacity:.55;pointer-events:none;@media(max-width:1024px){display:none}}}[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);&.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){opacity:1;transform:none;transition:none}}[data-paused] *,[data-paused] *:before,[data-paused] *:after{animation-play-state:paused!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid var(--color-divider);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:0;white-space:nowrap;transition:background .2s,color .25s,border-color .25s;&.ctl-lg{padding:0 30px}&.ctl-sm{padding:0 16px;@media(max-width:640px){padding:0 12px}}svg{display:block}&:disabled{opacity:.45;cursor:not-allowed}}.ctl-lg{height:54px;font-size:18px}.ctl-sm{height:36px;font-size:14px;@media(max-width:640px){height:34px;font-size:13px}}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#131c27;&:hover{background:var(--color-accent-600);color:#fff}&:active{background:var(--color-accent-700)}}.btn-secondary{&:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent);color:var(--color-text)}&:active{background:color-mix(in srgb,var(--color-text) 14%,transparent)}}.herobtn{color:var(--color-text);border-color:color-mix(in srgb,var(--color-text) 32%,transparent);&:hover{color:var(--color-accent);border-color:var(--color-accent);background:transparent}}.skewbtn,.langtoggle{transform:skew(-7deg)}.skewbtn{>*{display:inline-block;transform:skew(7deg)}}.langtoggle{display:flex;align-items:stretch;border:0;background:none;padding:0;cursor:pointer;font-family:var(--font-heading);font-weight:600;letter-spacing:.1em;&.ctl-sm{--segpad: 10px}>.langseg{padding:0 var(--segpad, 16px);display:flex;align-items:center;background:transparent;color:#eef0f28c;text-decoration:none;line-height:1.2;border:1px solid var(--color-divider);>b{display:inline-block;transform:skew(7deg);font-weight:inherit}+.langseg{margin-left:-1px}&[aria-current=page]{position:relative;z-index:1;background:var(--color-accent);border-color:var(--color-accent);color:#131c27}&:not([aria-current]):hover{box-shadow:inset 0 0 0 1.5px var(--color-accent);color:var(--color-accent)}}}.field{>label{display:block;font-size:12px;margin-bottom:5px;color:color-mix(in srgb,var(--color-text) 70%,transparent)}}.input{width:100%;min-height:36px;padding:6px 10px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;&:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}&:focus-visible{border-color:var(--color-accent);outline-offset:0}}textarea.input{min-height:90px;resize:vertical}.lift{transition:transform .3s cubic-bezier(.2,.6,.2,1);&:hover{transform:translateY(-6px)}}.fline{display:flex;align-items:center;gap:9px;color:var(--color-text);transition:color .2s;&:hover{color:var(--color-accent)}}.mono{font-family:var(--font-mono)}@font-face{font-family:Geist;src:url(/fonts/Geist-Black.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-ExtraLight.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Thin.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable-latin-ext.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
