/* Shared v2 identity and landing components. */
body.theme-v2 { --v2-bg:#0a0d12; --v2-panel:#11161d; --v2-line:#ffffff12; --v2-text:#f1f3ec; --v2-muted:#8a929e; --v2-accent:#c5f675; --font-en:"Inter",sans-serif; background:var(--v2-bg); color:var(--v2-text); }
body.theme-v2 #site-content { background:var(--v2-bg); }
body.theme-v2 .page-shell { width:100%; margin:0; border-radius:0; box-shadow:none; background:var(--v2-bg); overflow:clip; }
body.theme-v2 #main-content { position:relative; }
.v2-wrap { width:min(1280px,calc(100% - 112px)); margin-inline:auto; }
.v2-noise { position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.028; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E"); }
body.theme-v2 .site-header { width:min(1340px,calc(100% - 64px)); height:84px; margin:0 auto; padding:0 22px; background:transparent; border:0; border-bottom:1px solid var(--v2-line); border-radius:0; box-shadow:none; }
body.theme-v2 .brand { gap:14px; }
body.theme-v2 .brand-mark { font-size:32px; color:var(--v2-text); letter-spacing:-3px; }
body.theme-v2 .brand-text strong { font-size:9px; color:#e0e4de; letter-spacing:.5px; }
body.theme-v2 .brand-text small { font-size:5px; color:var(--v2-muted); letter-spacing:1px; }
body.theme-v2 .main-nav { gap:27px; }
body.theme-v2 .main-nav a { color:#a9afb7; font-size:12px; }
body.theme-v2 .main-nav a:hover { color:var(--v2-accent); }
body.theme-v2 .main-nav .nav-cta { padding:10px 20px; border:1px solid #c5f6754d; border-radius:6px; background:#c5f6750b; color:var(--v2-accent); box-shadow:none; margin-right:12px; }
body.theme-v2 .menu-toggle { color:var(--v2-text); }
body.theme-v2 .account-menu summary { color:var(--v2-accent); border-color:#c5f6754d; }
body.theme-v2 .account-menu > div { background:#171e26; border-color:#ffffff20; color:#e7eddf; }
body.theme-v2 .account-menu button { background:#c5f675; color:#131b0a; }
.v2-hero { position:relative; min-height:740px; display:grid; grid-template-columns:1fr 1fr; align-items:center; column-gap:10px; padding-top:48px; padding-bottom:100px; }
.v2-hero-copy { position:relative; z-index:2; padding-block:18px; }
.v2-kicker { display:flex; align-items:center; gap:9px; color:#b6c2b1; font-size:11px; margin-bottom:31px; }
.v2-live-dot { display:inline-block; width:6px; height:6px; border-radius:50%; flex-shrink:0; background:var(--v2-accent); box-shadow:0 0 12px #c5f67570; }
.v2-identity { font:500 10px var(--font-en); letter-spacing:1.5px; color:#c5d2c0; text-align:right; margin-bottom:18px; }
.v2-identity span { color:#657369; font-size:9px; }
.v2-hero h1 { font-size:30px; font-weight:500; line-height:1.7; letter-spacing:-1px; margin:0; }
.v2-period { color:var(--v2-accent); }
.v2-hero h1 small { display:block; font-size:clamp(35px,4.1vw,61px); font-weight:800; letter-spacing:-2.4px; line-height:1.55; margin-top:6px; }
.v2-hero h1 em { color:var(--v2-accent); font-style:normal; }
.v2-hero-description { max-width:460px; color:#929ba4; font-size:13px; line-height:2.3; margin-top:22px; }
.v2-actions { display:flex; gap:13px; align-items:center; margin-top:30px; }
.v2-button { display:inline-flex; align-items:center; justify-content:center; gap:30px; padding:14px 21px; border-radius:5px; font-size:12px; font-weight:600; transition:background .2s,transform .2s; }
.v2-button span { font-size:23px; line-height:1; }
.v2-button-primary { background:var(--v2-accent); color:#18220b; box-shadow:0 0 35px #b6ed5410; }
.v2-button-primary:hover { background:#d3ff92; transform:translateY(-3px); }
.v2-button-text { color:#d0d6d6; padding-inline:12px; }
.v2-hero-social { margin-top:36px; display:flex; align-items:center; gap:22px; }
.v2-hero-social > span { font:500 8px var(--font-en); letter-spacing:1.3px; color:#626c77; }
body.theme-v2 .socials { gap:15px; margin:0; justify-content:initial; }
body.theme-v2 .socials a { background:transparent; border:0; box-shadow:none; color:#a1a9b2; width:18px; height:24px; font-size:14px; border-radius:0; }
body.theme-v2 .socials a:hover { color:var(--v2-accent); transform:translateY(-2px); }
.v2-hero-art { position:relative; height:555px; min-width:0; margin-left:-15px; direction:ltr; }
#security-scene { position:absolute; inset:0; z-index:1; }
#security-scene canvas { width:100%; height:100%; display:block; }
.v2-art-word { position:absolute; left:35px; top:73px; font:800 clamp(35px,5vw,72px)/.94 var(--font-en); letter-spacing:-4px; color:#fff; opacity:.028; }
.v2-art-corner { position:absolute; width:26px; height:26px; border-color:#b4d5a52b; border-style:solid; z-index:2; }
.v2-corner-one { top:50px; left:12px; border-width:1px 0 0 1px; }.v2-corner-two { bottom:60px; right:10px; border-width:0 1px 1px 0; }
.v2-signal { position:absolute; display:flex; align-items:center; gap:8px; font:500 8px var(--font-en); color:#acbba7; letter-spacing:1px; z-index:3; }
.v2-signal-top { top:55px; right:15px; }.v2-signal-line { width:38px; height:1px; background:#c5f67555; }
.v2-scene-label { position:absolute; bottom:70px; left:26px; z-index:2; }
.v2-scene-label > span { font:500 8px var(--font-en); color:var(--v2-accent); letter-spacing:1.8px; }.v2-scene-label small { display:block; margin-top:9px; color:#737e87; font-size:10px; text-align:left; }
.v2-axis { position:absolute; right:13px; bottom:70px; font:500 7px var(--font-en); letter-spacing:1px; color:#5b6c64; writing-mode:vertical-rl; }
.v2-hero-bottom { position:absolute; bottom:0; inset-inline:0; padding:23px 0; border-top:1px solid var(--v2-line); display:flex; align-items:center; justify-content:space-between; }
.v2-hero-bottom > span { font:500 8px var(--font-en); letter-spacing:1.3px; color:#717c87; }.v2-hero-bottom i { color:var(--v2-accent); font-style:normal; padding-inline:14px; }
.v2-hero-bottom a { font-size:10px; color:#89937e; display:flex; align-items:center; gap:16px; }.v2-hero-bottom a b { font-size:19px; font-weight:400; }
.core-fallback { position:absolute; width:250px; height:250px; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-25deg); }
.core-fallback > div { width:100%; height:100%; border-radius:40%; background:conic-gradient(from 25deg,#212b2b,#465d49,#0b1017,#26332f,#678554,#101923,#212b2b); box-shadow:inset -30px -30px 60px #02050d,0 0 80px #84c5491c; border:1px solid #b7f56a55; }
.core-fallback i { position:absolute; inset:-50px -90px; border:1px solid #c5f67566; border-radius:50%; transform:rotateX(65deg); }.core-fallback i:last-child { transform:rotateY(60deg); border-color:#6ed8e05c; }
.scene-ready .core-fallback { display:none; }
body.theme-v2 .stack-strip { border:0; border-bottom:1px solid var(--v2-line); background:#0d1117; padding:28px max(56px,calc((100% - 1280px)/2)); gap:42px; }
body.theme-v2 .stack-heading > span { color:#6d7a72; font-size:8px; letter-spacing:1.5px; }
body.theme-v2 .stack-group { gap:38px; padding-right:38px; }
body.theme-v2 .stack-group li { color:#a3afa9; font-size:14px; gap:38px; }
body.theme-v2 .stack-group li::after { background:#5c7547; width:3px; height:3px; }
.v2-section { position:relative; padding-block:90px; scroll-margin-top:30px; }
.v2-section-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:40px; gap:20px; }
.v2-overline { display:inline-block; font:500 9px var(--font-en); letter-spacing:1.8px; color:#81927c; direction:ltr; }
.v2-small-note { font-size:11px; color:#606d75; }
.v2-section h2,.v2-about-band h2 { font-size:clamp(28px,3vw,42px); line-height:1.75; letter-spacing:-1.4px; font-weight:700; }
.v2-section h2 span { color:#69747c; }
.v2-section-intro > p { color:#8b969e; font-size:13px; line-height:2.3; max-width:330px; margin-block:20px 28px; }
.v2-inline-link { display:inline-flex; align-items:center; gap:28px; font-size:11px; color:#cbd7c1; }.v2-inline-link span { color:var(--v2-accent); font-size:20px; }.v2-inline-link:hover { color:var(--v2-accent); }
.v2-expertise-layout { display:grid; grid-template-columns:1fr 1.25fr; gap:90px; }
.v2-wire-mark { color:var(--v2-accent); font:200 110px var(--font-en); line-height:1; margin-top:40px; opacity:.7; transform-origin:50px 50px; }
.v2-service { display:flex; align-items:start; gap:20px; padding:27px 0; border-top:1px solid var(--v2-line); transition:padding .2s; }
.v2-service:last-child { border-bottom:1px solid var(--v2-line); }.v2-service:hover { padding-inline:12px; }
.v2-service-index { font:500 10px var(--font-en); color:#606d65; direction:ltr; padding-top:8px; }
.v2-service h3 { color:#e2e8dd; font-size:19px; font-weight:500; }.v2-service p { color:#7c8892; font-size:11px; line-height:2.1; margin-top:9px; max-width:380px; }
.v2-service-arrow { color:var(--v2-accent); font:24px var(--font-en); margin-right:auto; }
.v2-works { border-top:1px solid var(--v2-line); }
.v2-title-row { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:45px; }.v2-title-row > p { font-size:12px; color:#7e8b93; line-height:2.2; max-width:300px; }
.v2-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:46px 30px; }
.v2-project { min-width:0; }.v2-project-visual { height:300px; background:radial-gradient(ellipse at 50% 100%,#364c2b66,transparent 80%),#10171b; padding:35px; border:1px solid #ffffff0c; position:relative; border-radius:9px; overflow:hidden; transition:border-color .3s; }
.v2-project-visual-2,.v2-project-visual-4 { background:radial-gradient(ellipse at 60% 100%,#17505755,transparent 80%),#10171b; }
.v2-project-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.v2-project:hover .v2-project-visual > img { transform:scale(1.04); }.v2-project:hover .v2-project-visual { border-color:#c5f67544; }
.v2-terminal { height:280px; background:#0a1014; border:1px solid #465344; border-radius:9px; box-shadow:0 20px 50px #0005; transform:perspective(900px) rotateX(6deg) rotateY(-7deg) rotateZ(2deg); transition:transform .6s; overflow:hidden; }
.v2-project:nth-child(even) .v2-terminal { transform:perspective(900px) rotateX(6deg) rotateY(7deg) rotateZ(-2deg); border-color:#335257; }.v2-project:hover .v2-terminal { transform:perspective(900px) rotateX(0) rotateY(0) rotateZ(0); }
.v2-terminal-bar { height:35px; display:flex; justify-content:space-between; align-items:center; padding:0 17px; border-bottom:1px solid #ffffff10; font:9px var(--font-en); color:#7d8c7f; }.v2-terminal-bar > span:first-child { font-size:8px; letter-spacing:5px; color:#4b5c4b; }
.v2-terminal-code { padding:18px 22px; font:10px/1.9 var(--font-en); color:#92a093; }.v2-terminal-code p { margin-block:7px; }.v2-terminal-code b { color:var(--v2-accent); margin-right:7px; }
.v2-code-dim { color:#506458; font-size:8px; }.v2-code-green { color:#b2da7a; }.v2-code-art { color:#a7dc77; font:500 48px var(--font-en); margin:10px 0 2px; text-align:center; text-shadow:0 0 40px #c5f67522; }.v2-project:nth-child(even) .v2-code-art { color:#78cacf; }
.v2-project-open { position:absolute; left:18px; top:18px; z-index:2; display:grid; place-items:center; width:35px; height:35px; border-radius:50%; background:#c5f675; color:#18220c; font:20px var(--font-en); }
.v2-project-info { margin-top:25px; display:flex; align-items:center; justify-content:space-between; }.v2-project-info h3 { font:500 22px/1.6 var(--font-en),var(--font-fa); margin-top:8px; }.v2-project-number { font:400 38px var(--font-en); color:#384239; }
.v2-project-summary { font-size:12px; line-height:2.1; color:#85929c; margin-top:12px; max-width:490px; }
.v2-tags { display:flex; flex-wrap:wrap; direction:ltr; gap:7px; margin-top:18px; }.v2-tags span { font:400 9px var(--font-en); color:#92a08c; padding:5px 9px; border:1px solid #ffffff10; border-radius:3px; }
.v2-about-band { background:#10161a; border-block:1px solid #ffffff09; position:relative; overflow:hidden; }
.v2-about-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; padding-block:70px; align-items:center; direction:ltr; }.v2-about-layout > div:last-child { direction:rtl; }
.v2-about-band h2 { margin-top:20px; }.v2-about-band h2 em { color:var(--v2-accent); font-style:normal; }.v2-about-band p { color:#8b989e; font-size:13px; line-height:2.3; margin-block:18px 25px; }
.v2-about-symbol { height:290px; display:flex; align-items:center; justify-content:center; position:relative; perspective:600px; }.v2-about-symbol > span { font:800 135px var(--font-en); letter-spacing:-14px; color:#c3d6b7; text-shadow:0 3px #718267,0 7px #3d5037,0 13px #152012,0 20px 40px #0007; transform:rotateY(-20deg) rotateX(10deg) rotateZ(-8deg); z-index:1; }.v2-about-symbol i { position:absolute; width:310px; height:140px; border:1px solid #b7e38b40; border-radius:50%; transform:rotate(-25deg); }.v2-about-symbol i:nth-of-type(2) { transform:rotate(50deg); border-color:#b7e38b15; }.v2-about-symbol small { position:absolute; bottom:5px; font:500 8px var(--font-en); color:#64755e; letter-spacing:3px; }
.v2-learning { border-bottom:1px solid var(--v2-line); }
.v2-tutorial { display:flex; align-items:center; padding:28px 0; border-top:1px solid var(--v2-line); gap:26px; }.v2-tutorial h3 { font-size:19px; font-weight:500; margin-top:7px; }.v2-tutorial p { font-size:11px; color:#788790; margin-top:7px; }.v2-tutorial-watch { margin-right:auto; font-size:10px; color:var(--v2-accent); white-space:nowrap; }
.v2-play { display:grid; place-items:center; width:56px; height:56px; flex-shrink:0; border:1px solid #c5f67530; border-radius:50%; color:var(--v2-accent); background:#c5f67507; font-size:14px; }
.v2-learning-empty { display:flex; align-items:center; gap:25px; padding:30px; background:#11171d; border:1px solid var(--v2-line); border-radius:8px; }.v2-learning-empty h3 { font-size:17px; font-weight:500; }.v2-learning-empty p { font-size:11px; color:#7c8c93; margin-top:9px; line-height:2; }.v2-learning-empty > a { margin-right:auto; white-space:nowrap; }
.v2-challenge-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; }.v2-challenge-glyph { display:block; font:70px var(--font-en); color:var(--v2-accent); margin-bottom:20px; }.v2-challenge-layout h2 { font-size:34px; }.v2-challenge-layout > div > p { color:#7e8c93; font-size:12px; margin-top:18px; }
.v2-contest { display:block; border:1px solid var(--v2-line); border-radius:7px; padding:25px; margin-bottom:14px; background:linear-gradient(115deg,#121a1c,#10151b); transition:border-color .2s,transform .2s; }.v2-contest:hover { border-color:#c5f67555; transform:translateX(-4px); }.v2-contest-top { display:flex; align-items:center; justify-content:space-between; gap:15px; }.v2-contest h3 { font-size:20px; font-weight:500; margin-top:22px; }.v2-contest p { font-size:11px; color:#8a969c; margin-top:7px; }.v2-contest-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:19px; margin-top:21px; border-top:1px solid var(--v2-line); font-size:10px; color:#6d7d85; }.v2-contest-bottom b { font-weight:400; color:#c3d7b4; }
body.theme-v2 .competition-status { font-size:9px; background:#ffffff08; color:#819184; border:1px solid #ffffff0a; padding:4px 10px; }.v2-contest .status-open { color:#b8e788; background:#a8df4d0c; border-color:#c5f67522; }.v2-contest .status-running { color:#76c6d1; background:#70c7d510; border-color:#70c7d533; }
.v2-empty { padding:30px; color:#829487; font-size:13px; line-height:2.4; border:1px dashed #82948730; border-radius:7px; grid-column:1/-1; }
.v2-footer { background:#111917; border-top:1px solid #b6db7f1a; position:relative; overflow:hidden; padding-top:50px; }.v2-footer::before { content:''; position:absolute; width:650px; height:650px; border-radius:50%; background:radial-gradient(ellipse,#8ed5520d,transparent 70%); left:0; top:-100px; pointer-events:none; }
.v2-footer-top { display:flex; justify-content:space-between; align-items:center; }.v2-footer-top > span:last-child { font:500 8px var(--font-en); color:#576c5b; letter-spacing:2px; }.v2-footer-cta { display:flex; justify-content:space-between; align-items:center; padding-block:35px; }.v2-footer-cta h2 { font-size:clamp(36px,5vw,66px); line-height:1.6; letter-spacing:-2px; }.v2-footer-cta em { color:var(--v2-accent); font-style:normal; }
.v2-contact-circle { width:120px; height:120px; display:grid; place-items:center; background:var(--v2-accent); color:#19280d; font:60px var(--font-en); border-radius:50%; transition:transform .3s; }.v2-contact-circle:hover { transform:rotate(-15deg); }
.v2-footer-links { display:flex; align-items:center; justify-content:space-between; padding-block:0 38px; }.v2-email { font:400 17px var(--font-en); color:#c1d1bc; border-bottom:1px solid #c1d1bc33; padding-bottom:8px; }.v2-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:25px; border-top:1px solid #ffffff0e; color:#6c7d70; font-size:9px; }.v2-footer-brand { color:#d7e7d2; font:800 28px var(--font-en); letter-spacing:-3px; }.v2-footer-brand span { font:500 9px var(--font-en); vertical-align:top; margin-left:4px; }.v2-footer-bottom > span[dir] { font:500 8px var(--font-en); letter-spacing:1px; }.v2-footer-bottom > a:last-child { color:var(--v2-accent); font-size:23px; }
body.theme-v2 a:focus-visible,body.theme-v2 button:focus-visible { outline:2px solid var(--v2-accent); outline-offset:6px; }
body.theme-v2 #skip-intro { background:#0c1618cc; border-color:#c5f67540; color:#d2e9c2; }
body.theme-v2 .intro-caption strong { color:#d9edcd; }body.theme-v2 .intro-progress { color:#b4d599; }
body.theme-v2 .reveal { opacity:1; transform:none; }
@media(min-width:821px) and (prefers-reduced-motion:no-preference) { .v2-reveal.v2-observed { opacity:0; transform:translateY(18px); transition:opacity .7s,transform .7s; }.v2-reveal.v2-visible { opacity:1; transform:none; } }
@media(min-width:1450px) { .v2-hero { min-height:790px; }.v2-hero-art { height:610px; } }
@media(max-width:1100px) { .v2-wrap { width:calc(100% - 72px); }.v2-hero { min-height:680px; }.v2-hero-art { height:480px; }.v2-hero h1 small { font-size:44px; }.v2-expertise-layout { gap:40px; }.v2-challenge-layout { gap:45px; }.v2-about-layout { gap:40px; }body.theme-v2 .main-nav { gap:17px; }body.theme-v2 .brand-text { display:none; }.v2-project-visual { padding:25px; }.v2-hero-bottom > span { font-size:7px; letter-spacing:.5px; } }
@media(max-width:820px) { body.theme-v2 .site-header { width:calc(100% - 40px); height:72px; padding-inline:10px; }body.theme-v2 .brand-text { display:flex; }body.theme-v2 .main-nav { background:#151d24; border:1px solid #ffffff12; box-shadow:0 20px 40px #0006; border-radius:8px; padding:18px; }body.theme-v2 .main-nav a { font-size:13px; }body.theme-v2 .main-nav .nav-cta { margin:0; }
.v2-wrap { width:calc(100% - 48px); }.v2-hero { grid-template-columns:1fr; padding-top:35px; padding-bottom:70px; }.v2-hero-copy { max-width:580px; padding:0; }.v2-hero h1 small { font-size:50px; }.v2-hero-description { max-width:500px; }.v2-kicker { margin-bottom:23px; }.v2-hero-art { height:440px; margin:0 auto; width:100%; max-width:580px; }.v2-art-word { top:55px; font-size:64px; }.v2-scene-label { bottom:40px; }.v2-corner-two { bottom:30px; }.v2-axis { bottom:40px; }.v2-hero-bottom > span:last-child { display:none; }
.v2-section { padding-block:60px; }.v2-expertise-layout { grid-template-columns:1fr; gap:35px; }.v2-section-intro > p { max-width:500px; }.v2-wire-mark { display:none; }.v2-about-layout { grid-template-columns:1fr 1.3fr; gap:25px; }.v2-about-symbol { transform:scale(.8); }.v2-about-band h2 { font-size:29px; }.v2-about-band p { font-size:12px; }.v2-project-visual { height:250px; padding:20px; }.v2-terminal-code { padding:16px; }.v2-challenge-layout { gap:30px; grid-template-columns:1fr 1.3fr; }.v2-challenge-layout h2 { font-size:26px; }.v2-contest { padding:20px; }.v2-contest-top { flex-wrap:wrap; }.v2-learning-empty { flex-wrap:wrap; }.v2-learning-empty > a { margin-right:81px; }body.theme-v2 .stack-strip { padding:24px; gap:28px; }.v2-hero-social > span { font-size:7px; } }
@media(max-width:560px) { .v2-wrap { width:calc(100% - 40px); }.v2-hero { padding-top:28px; padding-bottom:66px; }.v2-kicker { font-size:10px; margin-bottom:22px; }.v2-identity { font-size:8px; letter-spacing:1px; }.v2-identity span { font-size:7px; }.v2-hero h1 { font-size:24px; }.v2-hero h1 small { font-size:37px; letter-spacing:-1.8px; line-height:1.6; }.v2-hero-description { font-size:11px; margin-top:19px; line-height:2.3; }.v2-desktop-break { display:none; }.v2-actions { gap:5px; margin-top:23px; }.v2-button { padding:12px 16px; font-size:11px; gap:16px; }.v2-button-text { padding-inline:12px; }.v2-hero-social { margin-top:25px; gap:18px; }.v2-hero-social > span { font-size:6px; letter-spacing:.5px; }.v2-hero-art { height:365px; margin-top:5px; }.v2-art-word { font-size:46px; top:63px; left:20px; letter-spacing:-2px; }.v2-signal-top { font-size:6px; top:37px; right:0; }.v2-corner-one { top:32px; left:0; width:18px; height:18px; }.v2-corner-two { right:0; width:18px; height:18px; }.v2-scene-label { left:10px; bottom:35px; }.v2-scene-label > span { font-size:6px; }.v2-scene-label small { font-size:8px; }.v2-axis { font-size:5px; }.v2-hero-bottom { padding:18px 0; }.v2-hero-bottom > span { font-size:5.5px; letter-spacing:0; }.v2-hero-bottom i { padding-inline:5px; }.v2-hero-bottom a { font-size:8px; gap:8px; }
body.theme-v2 .stack-strip { padding:20px 0; }.stack-heading { margin-bottom:17px; }body.theme-v2 .stack-group li { font-size:12px; }body.theme-v2 .stack-heading > span { font-size:7px; }.v2-section { padding-block:48px; }.v2-section-top { margin-bottom:25px; }.v2-overline { font-size:7px; letter-spacing:1.2px; }.v2-small-note { font-size:9px; }.v2-section h2 { font-size:28px; }.v2-section-intro > p { font-size:11px; }.v2-service { gap:15px; padding-block:24px; }.v2-service h3 { font-size:17px; }.v2-service p { font-size:10px; }.v2-service-index { font-size:8px; }.v2-inline-link { font-size:10px; gap:15px; }.v2-title-row { display:block; margin-bottom:30px; }.v2-title-row > p { margin-top:20px; font-size:11px; }.v2-project-grid { grid-template-columns:1fr; gap:35px; }.v2-project-visual { height:265px; padding:25px; }.v2-project-info h3 { font-size:21px; }.v2-project-info { margin-top:20px; }.v2-project-summary { font-size:11px; }.v2-project-number { font-size:30px; }.v2-tags span { font-size:8px; }.v2-about-layout { grid-template-columns:1fr; gap:18px; padding-block:40px; }.v2-about-symbol { height:205px; transform:scale(.8); margin-top:-20px; }.v2-about-band h2 { font-size:29px; }.v2-about-band p { font-size:11px; }.v2-about-layout > div:last-child { margin-top:10px; }.v2-learning-empty { padding:22px; gap:18px; align-items:flex-start; }.v2-learning-empty h3 { font-size:14px; }.v2-learning-empty > div { flex:1; }.v2-learning-empty p { font-size:10px; }.v2-play { width:40px; height:40px; font-size:10px; }.v2-learning-empty > a { margin-right:58px; }.v2-tutorial { gap:15px; flex-wrap:wrap; }.v2-tutorial > div { flex:1; }.v2-tutorial h3 { font-size:15px; }.v2-tutorial p { font-size:10px; }.v2-tutorial-watch { padding-right:55px; margin:0; }.v2-challenge-layout { grid-template-columns:1fr; gap:28px; }.v2-challenge-glyph { display:none; }.v2-contest h3 { font-size:18px; }.v2-contest-bottom { font-size:9px; }.v2-footer { padding-top:35px; }.v2-footer-top > span:last-child { font-size:6px; letter-spacing:1px; }.v2-footer-cta { padding-block:25px; }.v2-footer-cta h2 { font-size:32px; letter-spacing:-1px; }.v2-contact-circle { width:70px; height:70px; font-size:35px; flex-shrink:0; }.v2-footer-links { flex-wrap:wrap; gap:23px; padding-bottom:30px; }.v2-email { font-size:14px; }.v2-footer-bottom { flex-wrap:wrap; gap:15px; }.v2-footer-bottom > span { font-size:8px; }.v2-footer-bottom > span[dir] { font-size:6px; }.v2-footer-brand { font-size:23px; }.v2-footer-bottom > a:last-child { margin-right:auto; } }
@media(prefers-reduced-motion:reduce) { .v2-reveal.v2-observed { opacity:1; transform:none; }.v2-project:hover .v2-terminal,.v2-project:hover .v2-project-visual > img { transform:none; } }
