@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/fonts/dm-sans.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/playfair-display.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400 900;font-display:swap;src:url(/fonts/playfair-display-italic.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono.woff2) format("woff2")}:root{--navy-950: #091326;--navy-900: #0E1B33;--navy-800: #16294B;--navy-700: #1F3A66;--blue-600: #2F5FA8;--blue-500: #3B76C9;--blue-300: #8FB2E4;--mint: #8FD3C1;--lavender: #E7EAF3;--lavender-soft: #F3F5FA;--paper: #FFFFFF;--ink: #2A3346;--ink-soft: #5C687D;--ink-faint: #667083;--line: #DCE2EE;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-sans: "DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;--container: 1180px;--gutter: clamp(1rem, 4vw, 2.5rem);--radius: 14px;--radius-sm: 9px;--shadow-sm: 0 1px 2px rgba(22, 41, 75, .06), 0 4px 12px rgba(22, 41, 75, .05);--shadow-md: 0 12px 32px rgba(22, 41, 75, .1);--shadow-lg: 0 24px 60px rgba(14, 27, 51, .16);--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-lift: cubic-bezier(.65, 0, .35, 1);--shadow-hover: 0 26px 50px -14px rgba(22, 41, 75, .28), 0 8px 18px -8px rgba(47, 95, 168, .18)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:1rem;line-height:1.65;color:var(--ink);background:var(--navy-950);-webkit-font-smoothing:antialiased;overflow-x:clip}main{display:block;background:var(--paper)}img,svg{max-width:100%;display:block}img{height:auto}a{color:inherit;text-decoration:none}ul,ol{list-style:none;padding:0}button{font:inherit;color:inherit;cursor:pointer}::selection{background:var(--blue-300);color:var(--navy-900)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--navy-800);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--radius-sm) 0}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px;border-radius:4px}.icon{display:inline-flex;flex:0 0 auto;width:1.1em;height:1.1em}.icon svg{width:100%;height:100%;stroke-width:1.8}.eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.9rem;font-family:var(--font-sans);font-weight:600;font-size:.85rem;color:var(--blue-600)}.eyebrow:before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor}.eyebrow-light{color:var(--blue-300)}.text-link{color:var(--blue-600);font-weight:500;background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .3s var(--ease)}.text-link:hover{background-size:100% 1px}.scroll-progress{position:fixed;top:0;left:0;height:5px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--blue-600),var(--blue-300),var(--mint));z-index:200}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.6rem;border:1px solid transparent;border-radius:999px;font-size:.95rem;font-weight:500;letter-spacing:.01em;background:none;transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}.btn .icon{transition:transform .25s var(--ease)}.btn:hover .icon{transform:translate(3px)}.btn:disabled{opacity:.6;cursor:progress}.btn-primary{background:var(--blue-600);color:#fff;box-shadow:0 8px 20px #2f5fa847}.btn-primary:hover{background:var(--blue-500);transform:translateY(-2px);box-shadow:0 14px 28px #2f5fa857}.btn-outline{border-color:#ffffff59;color:#fff}.btn-outline:hover{background:#ffffff1a;border-color:#fff9;transform:translateY(-2px)}.btn-light{background:#fff;color:var(--navy-800)}.btn-light:hover{background:var(--lavender);transform:translateY(-2px)}.btn-ghost{border-color:var(--line);color:var(--navy-800)}.btn-ghost:hover{border-color:var(--blue-500);color:var(--blue-600);transform:translateY(-2px)}.btn-sm{padding:.55rem 1.15rem;font-size:.88rem}.btn-block{width:100%}.link-arrow{display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;font-size:.9rem;font-weight:500;color:var(--blue-600)}.link-arrow .icon{transition:transform .25s var(--ease)}a:hover .link-arrow .icon,a.link-arrow:hover .icon{transform:translate(4px)}.site-header{position:fixed;inset:0 0 auto;z-index:150;padding-block:1rem;transition:background .3s var(--ease),box-shadow .3s var(--ease),padding .3s var(--ease),border-color .3s var(--ease);border-bottom:1px solid transparent;view-transition-name:site-header}.site-header.scrolled{background:#ffffffeb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line);padding-block:.6rem;box-shadow:var(--shadow-sm)}.nav-wrapper{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;color:#fff;transition:color .3s var(--ease)}.site-header.scrolled .brand{color:var(--navy-800)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;position:relative;isolation:isolate;border-radius:10px;color:#fff;font-family:var(--font-display);font-weight:700;font-size:1rem;letter-spacing:.02em}.brand-mark:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--blue-600)}.brand-text{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:.01em;background:linear-gradient(90deg,var(--blue-300),var(--blue-500)) 0 100% / 0 2px no-repeat;padding-bottom:2px;transition:background-size .5s var(--ease-out)}.brand .brand-mark:before{transition:transform .6s var(--ease-spring),box-shadow .4s var(--ease-out),background .3s var(--ease)}.brand:hover .brand-mark:before{transform:rotate(-10deg) scale(1.12);background:var(--blue-500);box-shadow:0 8px 22px #2f5fa880}.brand:hover .brand-text{background-size:100% 2px}.nav-menu ul{display:flex;align-items:center;gap:.35rem}.nav-link{position:relative;display:inline-block;padding:.5rem .95rem;font-size:.92rem;font-weight:500;color:#ffffffc7;border-radius:999px;transition:color .25s var(--ease),background .25s var(--ease)}.site-header.scrolled .nav-link{color:var(--ink-soft)}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1f}.site-header.scrolled .nav-link:hover,.site-header.scrolled .nav-link.active{color:var(--blue-600);background:var(--lavender)}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:40px;padding:0 11px;background:none;border:1px solid rgba(255,255,255,.3);border-radius:10px}.site-header.scrolled .nav-toggle{border-color:var(--line)}.nav-toggle span{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .3s var(--ease),opacity .2s var(--ease),background .3s var(--ease)}.site-header.scrolled .nav-toggle span{background:var(--navy-800)}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero,.page-hero{position:relative;color:#fff;background:var(--navy-900);overflow:hidden;isolation:isolate}.hero-bg{position:absolute;inset:0;z-index:-2;background:radial-gradient(60rem 40rem at 78% 18%,rgba(47,95,168,.45),transparent 62%),radial-gradient(45rem 32rem at 8% 88%,rgba(31,58,102,.65),transparent 60%),linear-gradient(160deg,#0e1b33,#142647 55%,#0e1b33)}.hero-bg:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:68px 68px;mask-image:radial-gradient(closest-side at 50% 45%,#000 55%,transparent 100%);-webkit-mask-image:radial-gradient(closest-side at 50% 45%,#000 55%,transparent 100%)}.hero{display:flex;align-items:center;min-height:min(100svh,980px);padding-block:8rem 5rem}.hero-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(28rem circle at var(--mx, 70%) var(--my, 30%),rgba(143,178,228,.13),transparent 70%);transition:background .2s linear}.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(2.5rem,5vw,4.5rem)}.hero-eyebrow{display:inline-flex;align-items:center;gap:.6rem;padding:.4rem .95rem;margin-bottom:1.6rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff0f;font-size:.88rem;font-weight:500;color:#ffffffd1;animation:fade-up .7s var(--ease) both}.status-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade8099;animation:pulse 2.4s infinite}.hero-title{font-family:var(--font-display);font-size:clamp(2.05rem,4.6vw,3.4rem);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.6rem;animation:fade-up .7s .08s var(--ease) both}.hero-title em,.page-title em{display:inline-block;padding-bottom:.14em;margin-bottom:-.14em;font-style:italic;font-weight:500;background:linear-gradient(100deg,#FFFFFF 8%,var(--blue-300) 58%,var(--blue-500) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .hero-text{animation:fade-up .7s .24s var(--ease) both}.hero .hero-actions{animation:fade-up .7s .32s var(--ease) both}.hero-text{max-width:50ch;font-size:clamp(1rem,1.4vw,1.09rem);color:#ffffffc2;margin-bottom:2rem}.hero-text strong{color:#fff;font-weight:500}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:2.4rem}.hero-meta{display:flex;flex-wrap:wrap;gap:1.6rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.12);font-size:.9rem;animation:fade-up .7s .4s var(--ease) both}.hero-meta a{display:inline-flex;align-items:center;gap:.45rem;color:#ffffffad;transition:color .25s var(--ease)}.hero-meta a:hover{color:#fff}.hero-visual{position:relative;justify-self:end;width:min(100%,440px);padding-left:3.5rem;animation:fade-up .9s .35s var(--ease) both}.portrait{position:relative;margin:0;border-radius:28px;overflow:hidden;background:#f4f4f2;box-shadow:var(--shadow-lg),0 0 0 1px #8fb2e440,0 0 90px #2f5fa84d}.portrait:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(180deg,transparent,rgba(14,27,51,.35));pointer-events:none}.portrait img{width:100%;aspect-ratio:4 / 5;object-fit:cover}.hero-visual .code-card{position:absolute;left:0;top:calc(100% - 4rem);width:min(350px,86%);z-index:2;background:#0a1428;transform:none;backdrop-filter:none;-webkit-backdrop-filter:none}.hero-visual .code-card:hover{transform:none}.hero-visual{margin-bottom:11rem}.hero-visual .code-card-body{padding:1rem 1.1rem;font-size:.7rem;line-height:1.75}.code-card{border-radius:var(--radius);overflow:hidden;background:#081122d1;border:1px solid rgba(143,178,228,.22);box-shadow:var(--shadow-lg),0 0 80px #2f5fa82e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);transition:transform .6s var(--ease)}.code-card:hover{transform:perspective(1400px) rotateY(0) rotateX(0)}.code-card-bar{display:flex;align-items:center;gap:.45rem;padding:.7rem 1rem;background:#ffffff0d;border-bottom:1px solid rgba(143,178,228,.16)}.dot{width:10px;height:10px;border-radius:50%}.dot-red{background:#ff5f57}.dot-amber{background:#febc2e}.dot-green{background:#28c840}.code-card-title{margin-left:.6rem;font-family:var(--font-mono);font-size:.76rem;color:#ffffff9e}.code-card-body{margin:0;padding:1.4rem 1.3rem;overflow-x:auto;font-family:var(--font-mono);font-size:clamp(.7rem,1.05vw,.82rem);line-height:1.85;color:#c7d4ea;animation:fade-in .45s var(--ease) both}.c-key{color:#7fa8e0}.c-var{color:#fff}.c-prop{color:var(--mint)}.c-str{color:#f0b77e}.c-fn{color:#d7b6f5}.c-com{color:#6f84a6;font-style:italic}.caret{display:inline-block;width:.55em;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--blue-300);animation:blink 1.1s steps(1) infinite}.float-badge{position:absolute;display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .95rem;border-radius:999px;background:#fffffff2;color:var(--navy-800);font-size:.8rem;font-weight:500;box-shadow:var(--shadow-lg);animation:float 6s ease-in-out infinite}.float-badge .icon{color:var(--blue-600)}.float-badge-a{top:1.5rem;right:-1.25rem;z-index:2}.page-hero{padding-block:clamp(8rem,16vw,10.5rem) clamp(3.5rem,8vw,5.5rem)}.page-hero-inner{position:relative;max-width:calc(var(--container))}.page-title{max-width:20ch;font-family:var(--font-display);font-size:clamp(2.2rem,5.6vw,4rem);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.2rem;animation:fade-up .7s .05s var(--ease) both}.page-lead{max-width:58ch;font-size:clamp(1rem,1.5vw,1.15rem);color:#ffffffbd;margin-bottom:2rem;animation:fade-up .7s .12s var(--ease) both}.page-hero .eyebrow,.page-hero .hero-actions,.page-hero .crumbs{animation:fade-up .7s var(--ease) both}.page-hero .hero-actions{margin-bottom:0;animation-delay:.2s}.jump-links{display:flex;flex-wrap:wrap;gap:.5rem;animation:fade-up .7s .2s var(--ease) both}.jump-links a{padding:.45rem .95rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:.86rem;color:#ffffffc7;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.jump-links a:hover{background:#ffffff1a;border-color:#fff6;color:#fff}.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem;font-size:.86rem;color:#ffffff80}.crumbs a{color:#ffffffbf}.crumbs a:hover{color:#fff}.page-hero-project{padding-bottom:clamp(9rem,20vw,13rem)}.page-hero-404{min-height:80svh;display:flex;align-items:center}.code-404{font-family:var(--font-sans);font-weight:600;font-size:clamp(5rem,18vw,10rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(143,178,228,.5);margin-bottom:1rem}.stats-band{background:var(--navy-800);border-top:1px solid rgba(255,255,255,.08);padding-top:clamp(2.2rem,5vw,3.2rem);overflow:hidden}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}.stat{position:relative;padding-left:1.6rem;border-left:2px solid rgba(143,178,228,.28)}.stat-value{display:block;font-family:var(--font-display);font-size:clamp(2rem,3.6vw,2.9rem);font-weight:600;line-height:1.05;color:#fff}.stat-label{display:block;margin-top:.35rem;font-size:.86rem;color:#fff9;max-width:26ch}.marquee{margin-top:clamp(2rem,4vw,2.8rem);padding-block:1rem;border-top:1px solid rgba(255,255,255,.08);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee-track{display:flex;width:max-content;gap:2.6rem;animation:marquee 40s linear infinite}.marquee-track li{font-family:var(--font-sans);font-weight:600;font-size:.86rem;color:#fff9;white-space:nowrap}.marquee-track li:before{content:"\25c6";margin-right:2.6rem;font-size:.5rem;vertical-align:middle;color:var(--blue-300);opacity:.6}.section{padding-block:clamp(4.5rem,9vw,7.5rem)}.section-tight{padding-top:clamp(3rem,6vw,4.5rem)}.section-alt{background:var(--lavender-soft);border-block:1px solid var(--line)}.section-dark{position:relative;background:radial-gradient(50rem 32rem at 85% 0%,rgba(47,95,168,.32),transparent 60%),linear-gradient(160deg,var(--navy-900),var(--navy-800) 60%,var(--navy-900));color:#ffffffc7}.section-head{max-width:62ch;margin-bottom:clamp(2.5rem,5vw,3.6rem)}.section-head-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:1.5rem 3rem;max-width:none}.section-title{font-family:var(--font-display);font-size:clamp(2rem,4.4vw,3rem);font-weight:600;line-height:1.12;letter-spacing:-.015em;color:var(--navy-800)}.section-title-light{color:#fff}.section-head .section-title+.section-kicker{margin-top:1rem}.section-kicker{font-size:1.04rem;color:var(--ink-soft)}.section-foot{margin-top:2.5rem;display:flex;justify-content:center}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.5rem}.cards-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.feature-card{position:relative;display:flex;flex-direction:column;padding:2rem 1.75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;isolation:isolate;transition:transform .8s var(--ease-lift),box-shadow .8s var(--ease-lift),border-color .3s var(--ease)}.feature-card:before{content:"";position:absolute;inset:0 0 auto;z-index:1;height:3px;background:linear-gradient(90deg,var(--blue-600),var(--blue-300));transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease-out)}.feature-card:hover{box-shadow:var(--shadow-hover);border-color:#c9d5ec}.feature-card:hover:before{transform:scaleX(1)}.feature-card:after,.project-body:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(18rem circle at var(--px, 50%) var(--py, 0%),rgba(143,178,228,.3),transparent 60%),linear-gradient(160deg,var(--navy-700),var(--navy-900));transform:translateY(101%);transition:transform .6s var(--ease-out)}.feature-card:hover:after,.project-card:hover .project-body:after{transform:none}.feature-card .feature-title,.feature-card .feature-text,.feature-card .link-arrow,.project-body .project-title,.project-body .project-text,.project-body .project-category,.project-body .link-arrow,.project-body .tag-list li{transition:color .45s var(--ease-out),background .45s var(--ease-out)}.feature-card:hover .feature-title,.project-card:hover .project-title{color:#fff}.feature-card:hover .feature-text,.project-card:hover .project-text{color:#ffffffc7}.feature-card:hover .link-arrow,.project-card:hover .link-arrow,.project-card:hover .project-category{color:var(--blue-300)}.project-card:hover .project-body .tag-list li{background:#ffffff1a;color:#ffffffe0}.feature-icon{display:grid;place-items:center;width:52px;height:52px;flex:0 0 52px;margin-bottom:1.2rem;border-radius:13px;background:var(--lavender);color:var(--blue-600);font-size:1.5rem;transition:background .35s var(--ease),color .35s var(--ease),transform .6s var(--ease-spring)}.feature-icon .icon svg{stroke-width:1.6}.feature-card:hover .feature-icon{background:var(--blue-600);color:#fff;transform:translateY(-2px) rotate(-8deg) scale(1.08)}.feature-icon-lg{width:60px;height:60px;font-size:1.75rem;background:var(--blue-600);color:#fff}.feature-title{font-family:var(--font-display);font-size:1.28rem;font-weight:600;line-height:1.25;color:var(--navy-800);margin-bottom:.7rem}.feature-text{font-size:.95rem;color:var(--ink-soft);margin-bottom:1.4rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem}.tag-list li{padding:.28rem .7rem;background:var(--lavender);border-radius:6px;font-family:var(--font-sans);font-weight:600;font-size:.74rem;color:var(--navy-700)}.tag-list-dark li{background:#ffffff14;color:#ffffffd1}.chip-list{display:flex;flex-wrap:wrap;gap:.45rem}.chip-list li{padding:.38rem .8rem;background:var(--paper);border:1px solid var(--line);border-radius:999px;font-size:.83rem;color:var(--ink-soft);transition:border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.chip-list li:hover{border-color:var(--blue-500);color:var(--blue-600);transform:translateY(-2px)}.check-list{display:grid;gap:.6rem}.check-list li{display:flex;gap:.65rem;font-size:.95rem}.check-list .icon{margin-top:.22em;color:var(--blue-500)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1.75rem}.project-card{display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .8s var(--ease-lift),box-shadow .8s var(--ease-lift),border-color .3s var(--ease)}.project-card:hover{box-shadow:var(--shadow-hover);border-color:#c9d5ec}.project-media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--navy-900)}.project-media img{position:absolute;top:0;left:0;width:100%;max-width:none;height:100%;object-fit:cover;transition:top .9s var(--ease-out),left .9s var(--ease-out),width .9s var(--ease-out),height .9s var(--ease-out)}.project-card:hover .project-media img{top:-2.5%;left:-2.5%;width:105%;height:105%}.project-kind{position:absolute;top:1rem;left:1rem;display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .8rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#0e1b33e6;box-shadow:0 6px 16px -6px #02081480;font-size:.72rem;font-weight:600;color:#fff}.project-kind:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mint)}.project-body{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;flex:1;padding:1.75rem}.project-category{font-family:var(--font-sans);font-weight:600;font-size:.75rem;color:var(--blue-500);margin-bottom:.5rem}.project-title{font-family:var(--font-display);font-size:clamp(1.35rem,2.2vw,1.65rem);font-weight:600;line-height:1.2;color:var(--navy-800);margin-bottom:.75rem}.project-text{font-size:.95rem;color:var(--ink-soft);margin-bottom:1.25rem}.project-body .tag-list{margin-bottom:1.5rem}.project-next{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.25rem 2rem;padding:clamp(1.5rem,3vw,2rem) clamp(1.5rem,3.5vw,2.5rem);border:1.5px solid transparent;border-radius:calc(var(--radius) + 4px);background:radial-gradient(24rem 12rem at 0% 0%,rgba(143,211,193,.1),transparent 70%) padding-box,linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(110deg,var(--blue-300),var(--mint)) border-box;box-shadow:var(--shadow-sm)}.project-next-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;background:linear-gradient(140deg,var(--navy-800),var(--blue-600));color:var(--mint);font-size:1.4rem}.project-next-title{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,1.75rem);font-weight:600;line-height:1.15;color:var(--navy-800);margin-bottom:.4rem}.project-next-text{max-width:58ch;color:var(--ink-soft)}@media(max-width:760px){.project-next{grid-template-columns:minmax(0,1fr);justify-items:start}}.more-on-github{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;margin-top:3rem;color:var(--ink-soft)}.process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;counter-reset:step}.process-step{position:relative;padding-top:1.5rem;border-top:2px solid var(--line)}.process-step:before{content:"";position:absolute;top:-2px;left:0;width:25%;height:2px;background:linear-gradient(90deg,var(--blue-600),var(--blue-500));transform-origin:0 50%;transition:transform .9s var(--ease-out) .25s}.process-step:nth-child(2):before{width:50%}.process-step:nth-child(3):before{width:75%}.process-step:nth-child(4):before{width:100%}.process.out-of-view .process-step:before{transform:scaleX(0)}.process-num{display:flex;align-items:center;gap:.6rem;font-family:var(--font-sans);font-weight:600;font-size:.8rem;color:var(--blue-500);margin-bottom:.6rem}.process-badge{padding:.15rem .6rem;border-radius:999px;background:var(--mint);font-family:var(--font-sans);font-size:.72rem;font-weight:700;letter-spacing:.02em;color:var(--navy-900)}.process-step h3{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--navy-800);margin-bottom:.5rem}.process-step p{font-size:.95rem;color:var(--ink-soft)}.recruit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(2rem,5vw,4rem)}.recruit .section-title{margin-bottom:1.2rem}.recruit-text{max-width:52ch;margin-bottom:2rem}.recruit .hero-actions{margin-bottom:0}.recruit-card{padding:2rem;border:1px solid rgba(143,178,228,.22);border-radius:var(--radius);background:#ffffff0d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.recruit-card-top{margin-bottom:1rem}.recruit-role{margin-bottom:1.25rem;font-family:var(--font-display);font-size:1.45rem;font-weight:600;color:#fff}.recruit-company{margin-bottom:1.25rem;color:var(--blue-300);font-size:.95rem}.recruit-card .check-list{margin-bottom:1.5rem}.recruit-card .check-list .icon{color:var(--mint)}.cta-band{position:relative;padding-block:clamp(4rem,8vw,6rem);background:radial-gradient(40rem 26rem at 10% 100%,rgba(143,178,228,.25),transparent 60%),linear-gradient(120deg,var(--blue-600),var(--navy-700) 55%,var(--navy-800));color:#fff;overflow:hidden}.cta-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:2rem 4rem}.cta-title{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,2.8rem);font-weight:600;line-height:1.15;margin-bottom:1rem}.cta-text{max-width:52ch;color:#ffffffc7}.cta-actions{display:grid;gap:.75rem}.btn-whatsapp .icon{font-size:1.15rem;color:#25d366}.cta-mail{justify-self:center;margin-top:.25rem;font-size:.9rem;color:#ffffffb3;word-break:break-all}.cta-mail:hover{color:#fff}.service-list{display:grid;gap:1.75rem}.service{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2rem clamp(2rem,5vw,4rem);padding:clamp(1.5rem,4vw,2.75rem);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--paper);box-shadow:var(--shadow-sm);overflow:hidden;isolation:isolate;scroll-margin-top:100px;transition:box-shadow .6s var(--ease-out),border-color .4s var(--ease)}.service-flip .service-head{order:2}.service:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--blue-500),var(--blue-300));transform:scaleY(0);transform-origin:50% 0;transition:transform .7s var(--ease-out)}.service-flip:before{inset:0 0 0 auto}.service:hover{border-color:#c9d5ec;box-shadow:var(--shadow-hover)}.service:hover:before{transform:scaleY(1)}.service .feature-icon{transition:transform .6s var(--ease-spring),background .35s var(--ease)}.service:hover .feature-icon{transform:rotate(-8deg) scale(1.08);background:var(--blue-500)}.service-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:600;line-height:1.2;color:var(--navy-800);margin-bottom:.75rem}.service-pitch{color:var(--ink-soft);margin-bottom:1.5rem}.example-list{display:grid;gap:.55rem}.example-list li{display:flex;gap:.6rem;font-size:.95rem;color:var(--navy-700)}.example-list .icon{margin-top:.25em;color:var(--blue-500);transition:transform .4s var(--ease-out)}.example-list li:hover .icon{transform:translate(3px)}.maint-lead{color:#ffffffbf;font-size:1.04rem}.maint-kicker{margin-bottom:1.25rem;font-size:.8rem;font-weight:700;color:var(--blue-300)}.maint-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}.maint-card{position:relative;padding:1.6rem 1.4rem;border:1px solid rgba(143,178,228,.2);border-radius:var(--radius);background:#ffffff0a;overflow:hidden;isolation:isolate;transition:border-color .4s var(--ease),background .5s var(--ease-out)}.maint-card:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(16rem circle at 0% 0%,rgba(143,178,228,.22),transparent 70%);opacity:0;transition:opacity .6s var(--ease-out)}.maint-card:hover{border-color:#8fb2e480}.maint-card:hover:after{opacity:1}.maint-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:1rem;border-radius:12px;background:#8fb2e424;color:var(--blue-300);font-size:1.35rem;transition:transform .6s var(--ease-spring),background .35s var(--ease),color .35s var(--ease)}.maint-card:hover .maint-icon{transform:rotate(-8deg) scale(1.08);background:var(--blue-500);color:#fff}.maint-card h3{margin-bottom:.4rem;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:#fff}.maint-card p{font-size:.92rem;color:#ffffffb3}.maint-note{margin-top:1.75rem;font-size:.92rem;color:#fff9}.service-price{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding:.35rem .4rem .35rem .95rem;border:1px solid var(--line);border-radius:999px;background:var(--lavender-soft);font-size:.85rem;color:var(--ink-soft);transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}.service-price strong{font-size:.98rem;color:var(--navy-800)}.service-price-cta{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:999px;background:var(--blue-600);font-size:.8rem;font-weight:600;color:#fff;transition:background .25s var(--ease)}.service-price-cta .icon{transform:rotate(90deg);transition:transform .3s var(--ease-spring)}.service-price:hover{border-color:var(--blue-300);background:#fff;box-shadow:var(--shadow-sm)}.service-price:hover .service-price-cta{background:var(--blue-500)}.service-price:hover .service-price-cta .icon{transform:rotate(90deg) translate(3px)}.service-price:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px}.price-grid{--cols: 3;--gap: 1.5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap)}.price-grid>.price-card{flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols))}.price-card{position:relative;display:flex;flex-direction:column;padding:clamp(1.4rem,2.5vw,1.85rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-sm);outline:3px solid transparent;outline-offset:4px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease),outline-color .5s var(--ease)}.price-card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:linear-gradient(90deg,var(--blue-600),var(--blue-300),var(--mint));-webkit-mask:linear-gradient(#000 0 0) left top / 0% 5px no-repeat;mask:linear-gradient(#000 0 0) left top / 0% 5px no-repeat;pointer-events:none;transition:-webkit-mask-size .5s var(--ease-out),mask-size .5s var(--ease-out)}.price-card:hover{border-color:var(--blue-300);box-shadow:var(--shadow-md)}.price-card:hover:before{-webkit-mask-size:100% 5px;mask-size:100% 5px}.price-badge{position:absolute;top:-.8rem;right:1.25rem;display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .8rem;border-radius:999px;background:var(--mint);font-size:.74rem;font-weight:700;white-space:nowrap;color:var(--navy-900);box-shadow:0 6px 16px #0e1b332e}.price-badge-trend{background:linear-gradient(90deg,var(--blue-600),var(--blue-500));color:#fff;box-shadow:0 6px 14px #2f5fa847}.price-card-trend{border-color:#c9d7ef;background:linear-gradient(180deg,#fff 35%,#eef3fc)}.price-card-featured{border-color:var(--navy-700);background:linear-gradient(160deg,var(--navy-800),var(--navy-950));box-shadow:var(--shadow-lg)}.price-card-featured .price-name,.price-card-featured .price-from strong{color:#fff}.price-card-featured .price-from span{color:#fff9}.price-card-featured .price-monthly{border-color:#ffffff24;color:#ffffffb8}.price-card-featured .check-list li{color:#ffffffe0}.price-card-featured .check-list .icon{color:var(--blue-300)}.price-card-featured:hover{border-color:var(--blue-500);box-shadow:var(--shadow-lg)}.price-card.is-highlighted{border-color:var(--blue-500);outline-color:#3b76c973;animation:price-ping 1.1s .5s var(--ease-out) 3}@keyframes price-ping{0%{box-shadow:0 0 #3b76c966,var(--shadow-md)}to{box-shadow:0 0 0 20px #3b76c900,var(--shadow-md)}}.price-name{margin-bottom:.8rem;font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--navy-800)}.price-from{display:flex;align-items:baseline;gap:.5rem}.price-from span{font-size:.85rem;color:var(--ink-faint)}.price-from strong{font-size:clamp(2rem,3.2vw,2.45rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--navy-800)}.price-monthly{margin:.35rem 0 1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line);font-size:.88rem;color:var(--ink-soft)}.price-card .check-list{flex:1;margin-bottom:1.6rem}.price-cta{align-self:stretch}.price-terms{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 2rem;margin-top:2.25rem;font-size:.95rem;font-weight:600;color:var(--navy-800)}.price-terms li{display:inline-flex;align-items:center;gap:.5rem}.price-terms .icon{color:var(--blue-500)}.price-help{margin-top:1.25rem;text-align:center;font-size:.95rem;color:var(--ink-soft)}.price-help a{font-weight:600;color:var(--blue-600);text-decoration:underline;text-underline-offset:3px}@media(max-width:1024px){.price-grid{--cols: 2}.price-grid>.price-card:nth-child(3):nth-last-child(3){margin-inline:calc((100% + var(--gap)) / 4)}}@media(max-width:640px){.price-grid{--cols: 1}.price-terms{flex-direction:column;align-items:center}}.plan-chip{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 1.4rem;padding:.6rem .6rem .6rem 1rem;border:1px solid var(--blue-300);border-radius:var(--radius-sm);background:#8fb2e424;font-size:.9rem;color:#ffffffd9}.plan-chip strong{color:#fff}.plan-chip button{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border:0;border-radius:50%;background:none;color:#ffffffb3;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.plan-chip button:hover{background:#ffffff1f;color:#fff}.service-problem{padding:1.1rem 1.25rem;margin-bottom:1.6rem;border-left:3px solid var(--blue-300);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--lavender-soft)}.service-problem h3,.service-sub{font-size:.8rem;font-weight:700;color:var(--blue-600);margin-bottom:.4rem}.service-sub{margin-bottom:.9rem}.service-problem p{color:var(--ink)}.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:2rem clamp(2rem,5vw,4rem);align-items:start}.faq{display:grid;gap:.75rem}.faq-side{align-self:stretch}.faq-sticky{position:sticky;top:110px}.faq-sticky .section-head{margin-bottom:2rem}.faq-help{padding:1.75rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(160deg,var(--lavender-soft),var(--paper))}.faq-help .feature-icon{margin-bottom:1rem}.faq-help h3{margin-bottom:.4rem;font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--navy-800)}.faq-help p{margin-bottom:1.25rem;color:var(--ink-soft)}.faq-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:border-color .3s var(--ease),box-shadow .4s var(--ease-out)}.faq-item:hover{border-color:#c9d5ec}.faq-item.open{border-color:#c9d5ec;box-shadow:var(--shadow-md)}.faq-q{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1.15rem 1.35rem;border:0;background:none;font-size:1rem;font-weight:500;text-align:left;color:var(--navy-800);transition:color .3s var(--ease)}.faq-item.open .faq-q{color:var(--blue-600)}.faq-toggle{position:relative;flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--lavender);transition:transform .5s var(--ease-spring),background .3s var(--ease)}.faq-toggle:before,.faq-toggle:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:2px;margin:-1px 0 0 -6px;border-radius:2px;background:var(--blue-600);transition:background .3s var(--ease)}.faq-toggle:after{transform:rotate(90deg)}.faq-item.open .faq-toggle{transform:rotate(135deg);background:var(--blue-600)}.faq-item.open .faq-toggle:before,.faq-item.open .faq-toggle:after{background:#fff}.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease-out)}.faq-a>div{overflow:hidden}.faq-item.open .faq-a{grid-template-rows:1fr}.faq-a p{padding:0 1.35rem 1.3rem;color:var(--ink-soft);opacity:0;transform:translateY(-6px);transition:opacity .4s var(--ease),transform .5s var(--ease-out)}.faq-item.open .faq-a p{opacity:1;transform:none;transition-delay:.1s}.case-cover-wrap{position:relative;margin-top:clamp(-11rem,-18vw,-7rem);z-index:2}.case-cover{width:100%;border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow-lg);border:1px solid rgba(143,178,228,.25);animation:fade-up .9s .2s var(--ease) both}.case-layout{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:2.5rem clamp(2rem,5vw,4.5rem);align-items:start}.case-meta{position:sticky;top:100px;padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--lavender-soft)}.case-meta dl{display:grid;gap:1.25rem}.case-meta dt{font-size:.75rem;font-weight:700;color:var(--ink-faint);margin-bottom:.3rem}.case-meta dd{margin:0;color:var(--navy-800);font-weight:500}.prose h2,.case-h2{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:600;color:var(--navy-800);margin-bottom:1rem}.prose p{font-size:1.04rem}.prose p+p{margin-top:1.1rem}.prose strong{color:var(--navy-800);font-weight:700}.prose .lead,.lead{font-family:var(--font-display);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.45;font-weight:500;color:var(--navy-800);padding-left:1.4rem;border-left:3px solid var(--blue-600)}.case-h2{margin-top:clamp(2.5rem,5vw,3.5rem)}.highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.highlight{padding:1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease),opacity .7s var(--ease)}.highlight:hover{border-color:#c9d5ec;box-shadow:var(--shadow-sm)}.highlight:last-child:nth-child(odd){grid-column:1 / -1}.highlight-num{display:block;margin-bottom:.5rem;font-family:var(--font-sans);font-weight:600;font-size:.75rem;color:var(--blue-500)}.highlight h3{font-size:1.02rem;font-weight:700;color:var(--navy-800);margin-bottom:.4rem}.highlight p{font-size:.93rem;color:var(--ink-soft)}.flows{display:grid;gap:1.25rem}.flow{padding:clamp(1.4rem,3vw,2rem);border:1px solid rgba(143,178,228,.2);border-radius:var(--radius);background:#ffffff0a}.flow-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:#fff;margin-bottom:.4rem}.flow-desc{max-width:70ch;margin-bottom:.6rem}.flow-steps{display:flex;flex-wrap:wrap;gap:.75rem 2.25rem;margin-top:1.1rem}.flow-step{position:relative;display:flex;flex-direction:column;flex:1 1 140px;padding:.9rem 1rem;border:1px solid rgba(143,178,228,.3);border-radius:var(--radius-sm);background:#0e1b3399}.flow-step:not(:last-child):after{content:"\2192";position:absolute;right:-1.65rem;top:50%;transform:translateY(-50%);color:var(--blue-300);font-size:1.1rem}.flow-step strong{display:flex;align-items:center;gap:.55rem;margin-bottom:.4rem;color:#fff;font-weight:600;font-size:.95rem}.flow-num{display:grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--blue-500);font-family:var(--font-sans);font-weight:600;font-size:.72rem;color:#fff}.flow-step>span{font-size:.86rem;line-height:1.5;color:#ffffffb8}.flow-extras{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px dashed rgba(143,178,228,.25);font-size:.85rem}.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.decision{padding:1.8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-sm)}.decision-num{display:block;font-family:var(--font-sans);font-weight:600;font-size:.8rem;color:var(--blue-500);margin-bottom:.6rem}.decision h3{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--navy-800);margin-bottom:.5rem}.decision p{font-size:.95rem;color:var(--ink-soft)}.gallery{display:grid;gap:1.5rem 1.25rem}.gallery-phone{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}.gallery-wide{grid-template-columns:minmax(0,1fr)}.gallery-screen{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}.gallery-item{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden;cursor:zoom-in;box-shadow:var(--shadow-sm);position:relative;top:0;transition:top .3s var(--ease),box-shadow .3s var(--ease)}.gallery-phone .gallery-item{border-radius:22px}.gallery-item:hover{top:-4px;box-shadow:var(--shadow-md)}.gallery-item img{width:100%}.gallery-caption{display:block;margin-top:.6rem;font-size:.85rem;text-align:center;color:var(--ink-soft)}.viewer{margin:auto;max-width:min(96vw,1400px);max-height:94vh;padding:0;border:0;background:transparent;overflow:visible}.viewer:focus,.viewer:focus-visible{outline:none}.viewer::backdrop{background:#091326db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.viewer[open]{animation:fade-in .25s var(--ease)}.viewer figure{display:grid;gap:.75rem;justify-items:center}.viewer img{max-height:84vh;width:auto;border-radius:var(--radius);box-shadow:var(--shadow-lg)}.viewer figcaption{color:#fff;font-size:.9rem}.viewer-close{position:fixed;top:1rem;right:1rem;width:44px;height:44px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:#ffffff1a;color:#fff;font-size:1.6rem;line-height:1}.case-outcome{max-width:820px}.for-you{display:flex;gap:1.1rem;margin-top:2rem;padding:1.5rem;border:1px solid #C9D5EC;border-radius:var(--radius);background:linear-gradient(160deg,var(--lavender-soft),var(--paper))}.for-you .feature-icon{margin:0}.for-you h3{margin-bottom:.3rem;font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--navy-800)}.for-you p{color:var(--ink-soft)}.case-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}.next-project{display:grid;text-align:right}.next-project span{font-size:.8rem;color:var(--ink-faint)}.next-project strong{display:inline-flex;align-items:center;justify-content:flex-end;gap:.5rem;font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--navy-800);transition:color .25s var(--ease)}.next-project:hover strong{color:var(--blue-600)}.about-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}.about-photo{margin:0;border-radius:calc(var(--radius) + 6px);overflow:hidden;background:#f4f4f2;box-shadow:var(--shadow-md)}.about-photo img{width:100%;aspect-ratio:4 / 5;object-fit:cover}.about-side{display:grid;gap:1.25rem}.side-card{padding:1.6rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.side-card-accent{background:var(--lavender);border-color:#d2d9ea}.side-card-dark{background:var(--navy-800);border-color:var(--navy-800);color:#ffffffbf}.side-card-dark .side-title{color:#fff}.side-title{font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--navy-800);margin-bottom:1rem}.side-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-block:.6rem;border-bottom:1px dashed var(--line);font-size:.92rem}.side-list li:last-child{border-bottom:0;padding-bottom:0}.side-list span{color:var(--ink-faint)}.side-list strong{color:var(--navy-800);font-weight:500;text-align:right}.side-note{font-size:.9rem;color:inherit;opacity:.92}.stack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.stack-group{padding:1.75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .3s var(--ease),box-shadow .5s var(--ease-out)}.stack-group:hover{border-color:#c9d5ec;box-shadow:var(--shadow-hover)}.stack-group .feature-icon{flex:0 0 48px;width:48px;height:48px;margin:0;font-size:1.35rem;transition:transform .6s var(--ease-spring),background .35s var(--ease),color .35s var(--ease)}.stack-group:hover .feature-icon{transform:rotate(-8deg) scale(1.08);background:var(--blue-600);color:#fff}.stack-top{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.stack-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--navy-800);margin-bottom:.2rem}.stack-purpose{font-size:.9rem;color:var(--ink-soft)}.trait-list{display:grid;gap:1rem;margin-top:2.25rem}.trait{display:flex;gap:1rem;padding:1.15rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(160deg,var(--lavender-soft),var(--paper));transition:border-color .3s var(--ease),box-shadow .5s var(--ease-out)}.trait:hover{border-color:#c9d5ec;box-shadow:var(--shadow-sm)}.trait-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:11px;background:var(--lavender);color:var(--blue-600);font-size:1.2rem;transition:transform .6s var(--ease-spring)}.trait:hover .trait-icon{transform:rotate(-8deg) scale(1.08)}.prose .trait h3{margin:0 0 .15rem;font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--navy-800)}.prose .trait p{margin:0;font-size:.93rem;color:var(--ink-soft)}.edu-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.75rem,4vw,3rem);align-items:start}.edu-list,.edu-side{display:grid;gap:1.25rem}.edu-card{padding:1.75rem;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--blue-300);border-radius:var(--radius);box-shadow:var(--shadow-sm);position:relative;top:0;transition:top .3s var(--ease),box-shadow .3s var(--ease),border-left-color .3s var(--ease),opacity .7s var(--ease)}.edu-card:hover{top:-4px;box-shadow:var(--shadow-md);border-left-color:var(--blue-600)}.edu-card-next{background:linear-gradient(140deg,var(--navy-800),var(--navy-700));border-color:var(--navy-700);border-left-color:var(--blue-300);color:#ffffffc7}.edu-card-next .edu-degree{color:#fff}.edu-card-next .edu-school,.edu-card-next .edu-note{color:#ffffffb8}.edu-card-next .edu-badge{background:#ffffff1f;color:#fff}.edu-top{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.85rem}.edu-badge{padding:.3rem .8rem;border-radius:999px;background:var(--lavender);font-family:var(--font-sans);font-weight:600;font-size:.74rem;color:var(--navy-700)}.edu-honor,.edu-flag{padding:.3rem .8rem;border-radius:999px;font-size:.74rem;font-weight:500}.edu-honor{background:#2f5fa81a;color:var(--blue-600);border:1px solid rgba(47,95,168,.25)}.edu-flag{background:#8fb2e42e;color:var(--blue-300);border:1px solid rgba(143,178,228,.35)}.edu-degree{font-family:var(--font-display);font-size:1.2rem;font-weight:600;line-height:1.3;color:var(--navy-800);margin-bottom:.3rem}.edu-school{font-size:.9rem;color:var(--blue-600);margin-bottom:.6rem}.edu-note{font-size:.92rem;color:var(--ink-soft)}.lang+.lang{margin-top:1.1rem}.lang-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.45rem;font-size:.92rem}.lang-top strong{color:var(--navy-800);font-weight:500}.lang-top span{font-size:.83rem;color:var(--ink-faint)}.lang-bar{height:6px;border-radius:999px;background:var(--lavender);overflow:hidden}.lang-bar i{display:block;height:100%;width:var(--level);border-radius:inherit;background:linear-gradient(90deg,var(--blue-600),var(--blue-300))}.edu-side .side-card:first-child .side-note{margin-top:1.1rem;color:var(--ink-faint);opacity:1}.side-card-dark .side-note{color:#ffffffb8}.page-hero-contact{padding-bottom:clamp(4rem,8vw,6rem)}.contact-grid{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4rem);align-items:start}.contact-info{display:grid;gap:.75rem;animation:fade-up .7s .2s var(--ease) both}.contact-item{display:flex;align-items:center;gap:.95rem;padding:1rem 1.15rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}button.contact-item{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}button.contact-item .icon{color:#25d366}a.contact-item:hover,button.contact-item:hover{background:#ffffff1a;border-color:#8fb2e480;transform:translate(4px)}.contact-item .icon{font-size:1.35rem;color:var(--blue-300)}.contact-item span{display:flex;flex-direction:column;min-width:0;font-size:.94rem;overflow-wrap:anywhere}.contact-item small{font-size:.74rem;color:#ffffff73}.contact-info .btn{margin-top:.6rem}.contact-form{padding:clamp(1.25rem,3vw,2.25rem);background:#ffffff0e;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.reason-group{min-width:0;padding:0;border:0;margin-bottom:1.25rem}.reason-group legend{margin-bottom:.6rem;font-size:.83rem;color:#fff9}.reason-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.reason{position:relative;display:grid;gap:.15rem;padding:.85rem .95rem;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:#ffffff0a;cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease)}.reason:hover{border-color:#8fb2e480}.reason.on{border-color:var(--blue-300);background:#8fb2e424}.reason:has(input:focus-visible){outline:2px solid var(--blue-300);outline-offset:2px}.reason input{position:absolute;opacity:0;pointer-events:none}.reason strong{font-size:.92rem;font-weight:500;color:#fff}.reason span{font-size:.76rem;color:#ffffff8c}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-field label{font-size:.83rem;color:#fff9}.form-field label em{font-style:normal;text-transform:none;letter-spacing:0;color:#fff6}.form-field input,.form-field textarea,.form-field select{width:100%;padding:.8rem 1rem;font:inherit;font-size:.95rem;color:#fff;background:#ffffff0f;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);transition:border-color .25s var(--ease),background .25s var(--ease);resize:vertical}.form-field select option{color:var(--ink)}.form-field input::placeholder,.form-field textarea::placeholder{color:#ffffff52}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;background:#ffffff1a;border-color:var(--blue-300)}.form-field.has-error input,.form-field.has-error textarea{border-color:#ffb4a8}.field-error{font-size:.8rem;color:#ffb4a8}.hp{position:absolute;left:-9999px;width:1px;height:1px}.form-status{min-height:1.4em;margin-top:.85rem;font-size:.88rem;color:var(--blue-300)}.form-status.error{color:#ffb4a8}.form-done{display:grid;justify-items:center;gap:.75rem;padding-block:2.5rem;text-align:center}.contact-form.is-done{display:grid;place-items:center}.form-done h2{font-family:var(--font-display);font-size:1.8rem;color:#fff}.form-done .feature-icon{margin:0;background:var(--mint);color:var(--navy-900)}.form-done p{max-width:36ch;margin-bottom:.75rem;color:#ffffffbf}.site-footer{padding-top:clamp(3rem,6vw,4.5rem);background:var(--navy-950);color:#fff9}.footer-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr) minmax(0,1fr);gap:2.5rem;padding-bottom:2.5rem}.footer-brand{display:flex;align-items:flex-start;gap:.85rem}.footer-brand strong{display:block;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:#fff}.footer-brand span{font-size:.85rem}.footer-title{margin-bottom:.85rem;font-family:var(--font-sans);font-weight:600;font-size:.75rem;color:var(--blue-300)}.footer-col ul{display:grid;gap:.45rem;font-size:.9rem}.footer-col a{overflow-wrap:anywhere;transition:color .25s var(--ease)}.footer-col a:hover{color:#fff}.footer-col a.active,.footer-legal a.active{color:#fff;font-weight:600}.footer-col a.active:before{content:"";display:inline-block;width:6px;height:6px;margin-right:.5rem;border-radius:50%;background:var(--blue-300);vertical-align:middle}.footer-legal a.active{text-decoration-color:var(--blue-300)}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-block:1.5rem;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;color:#fff9}.footer-copy{display:flex;flex-wrap:wrap;column-gap:.3em}.footer-copy span{white-space:nowrap}.footer-bottom a{color:#fffc;text-decoration:underline;text-underline-offset:3px}.footer-bottom a:hover{color:#fff}.ai-fab{position:fixed;right:1.5rem;bottom:1.5rem;z-index:150;display:grid;place-items:center;width:58px;height:58px;padding:0;border:0;border-radius:50%;background:linear-gradient(135deg,var(--blue-500),var(--navy-800));color:#fff;font:inherit;font-size:1.55rem;box-shadow:0 12px 28px -8px #16294b8c;cursor:pointer;animation:ai-in .6s .4s var(--ease-spring) backwards;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.ai-fab-badge{position:absolute;top:-4px;right:-6px;padding:.12rem .42rem;border:2px solid #fff;border-radius:999px;background:var(--mint);font-size:.68rem;font-weight:800;line-height:1.2;color:var(--navy-900)}.ai-fab:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;animation:ai-ring 2.2s 1.4s var(--ease-out) 3}@keyframes ai-ring{0%{box-shadow:0 0 #3b76c98c}to{box-shadow:0 0 0 16px #3b76c900}}.ai-fab:hover{transform:translateY(-3px);box-shadow:0 18px 34px -10px #16294b99}.ai-fab:focus-visible{outline:3px solid var(--blue-300);outline-offset:3px}@keyframes ai-in{0%{opacity:0;transform:scale(.4) translateY(16px)}}body:has(.ai-fab) .to-top{right:calc(1.5rem + 6px);bottom:calc(2.25rem + 58px)}body:has(.ai-panel) .to-top{opacity:0;visibility:hidden}.ai-panel{position:fixed;right:1.5rem;bottom:calc(2.4rem + 58px);z-index:150;display:flex;flex-direction:column;width:min(380px,calc(100vw - 2rem));height:min(560px,calc(100vh - 140px));border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow-lg);overflow:hidden;animation:ai-panel-in .35s var(--ease-out);transform-origin:bottom right}@keyframes ai-panel-in{0%{opacity:0;transform:translateY(12px) scale(.96)}}.ai-panel.ai-closing{animation:ai-panel-out .25s var(--ease) forwards}@keyframes ai-panel-out{to{opacity:0;transform:translateY(12px) scale(.96)}}.ai-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;background:linear-gradient(135deg,var(--navy-800),var(--navy-950));color:#fff}.ai-avatar{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--blue-600);font-family:var(--font-display);font-size:.95rem;font-weight:700}.ai-head h2{font-size:1rem;font-weight:600;color:#fff}.ai-head p{font-size:.78rem;color:#ffffffa6}.ai-messages{flex:1;display:flex;flex-direction:column;gap:.6rem;padding:1rem;overflow-y:auto;background:var(--lavender-soft)}.ai-msg{max-width:85%;padding:.65rem .85rem;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.ai-msg-assistant{align-self:flex-start;border:1px solid var(--line);border-bottom-left-radius:4px;background:#fff;color:var(--ink)}.ai-msg-user{align-self:flex-end;border-bottom-right-radius:4px;background:var(--blue-600);color:#fff}.ai-typing{display:flex;gap:4px;padding:.8rem .9rem}.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);animation:ai-dot 1s infinite ease-in-out}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}@keyframes ai-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ai-error{align-self:stretch;padding:.6rem .8rem;border-radius:10px;background:#fdecec;font-size:.85rem;color:#a3262a}.ai-suggestions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.25rem}.ai-suggestions button{padding:.45rem .8rem;border:1px solid var(--blue-300);border-radius:999px;background:#fff;font:inherit;font-size:.82rem;color:var(--blue-600);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.ai-suggestions button:hover{background:var(--blue-600);color:#fff}.ai-form{display:flex;align-items:flex-end;gap:.5rem;padding:.75rem;border-top:1px solid var(--line)}.ai-form textarea{flex:1;max-height:120px;padding:.6rem .8rem;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:.92rem;color:var(--ink);resize:none;field-sizing:content}.ai-form textarea:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px #3b76c926}.ai-send{display:grid;place-items:center;flex:none;width:42px;height:42px;border:0;border-radius:12px;background:var(--blue-600);color:#fff;font-size:1.15rem;cursor:pointer;transition:background .2s var(--ease)}.ai-send:hover{background:var(--blue-500)}.ai-send:disabled{opacity:.5;cursor:wait}.ai-limit{padding:.85rem 1rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-soft)}.ai-foot{padding:.55rem .9rem .75rem;border-top:1px solid var(--line);font-size:.74rem;color:var(--ink-faint)}.ai-foot a{color:var(--blue-600);text-decoration:underline;text-underline-offset:2px}.ai-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;margin-bottom:.4rem}.ai-actions .ai-human{white-space:nowrap}.ai-human{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:0;background:none;font:inherit;font-size:.82rem;font-weight:600;color:var(--navy-800);cursor:pointer}.ai-human .icon{color:#25d366;font-size:1rem}.ai-human:hover{color:var(--blue-600)}.ai-human-diag .icon{color:var(--blue-500)}.ai-human:disabled{cursor:wait;opacity:.7}@media(max-width:640px){.ai-fab{right:1rem;bottom:1rem;width:54px;height:54px}body:has(.ai-fab) .to-top{right:calc(1rem + 4px);bottom:calc(1.6rem + 54px)}.ai-actions .ai-human{font-size:.78rem}.ai-panel{right:.75rem;left:.75rem;bottom:calc(1.6rem + 54px);width:auto;height:min(520px,calc(100vh - 120px))}}@media print{.ai-fab,.ai-panel{display:none!important}}.to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:140;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:var(--blue-600);color:#fff;font-size:1.2rem;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s var(--ease),transform .5s var(--ease-out),visibility .3s var(--ease),background .3s var(--ease),box-shadow .5s var(--ease-out)}.to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.to-top.visible:hover{background:var(--blue-500);transform:translateY(-4px);box-shadow:0 16px 30px -8px #2f5fa88c}.to-top:hover .icon{animation:nudge-up .7s var(--ease-out)}.to-top{overflow:hidden}.to-top.launching .icon{animation:launch .75s var(--ease-lift)}.to-top.launching{animation:press .35s var(--ease-out)}@keyframes nudge-up{0%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}@keyframes launch{0%{transform:translateY(0);opacity:1}45%{transform:translateY(-34px);opacity:0}46%{transform:translateY(34px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes press{0%,to{scale:1}40%{scale:.88}}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}@keyframes fade-up{0%{transform:translateY(18px)}to{transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #4ade808c}70%{box-shadow:0 0 0 9px #4ade8000}to{box-shadow:0 0 #4ade8000}}@keyframes blink{50%{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes marquee{to{transform:translate(-50%)}}.page-hero-legal .page-title{max-width:none}.page-hero-legal .page-lead{max-width:66ch;margin-bottom:1.6rem}.legal-meta{display:flex;flex-wrap:wrap;gap:.5rem;animation:fade-up .7s .18s var(--ease) both}.legal-meta li{padding:.35rem .8rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff0f;font-family:var(--font-sans);font-weight:600;font-size:.74rem;color:#ffffffc7}.legal-layout{display:grid;grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);gap:2.5rem clamp(2rem,5vw,4.5rem);align-items:start}.legal-toc{position:sticky;top:100px;max-height:calc(100vh - 120px);overflow-y:auto;padding:1.25rem .75rem 1.25rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-sm);font-size:.9rem}.legal-toc-title{margin:0 0 .75rem;font-size:.72rem;font-weight:700;color:var(--ink-faint)}.legal-toc ol{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.legal-toc a{position:relative;display:flex;gap:.65rem;padding:.4rem .6rem;border-radius:var(--radius-sm);line-height:1.35;color:var(--navy-800);transition:color .2s var(--ease-out),background-color .2s var(--ease-out)}.legal-toc a:before{content:"";position:absolute;left:-.6rem;top:.45rem;bottom:.45rem;width:3px;border-radius:3px;background:var(--blue-500);transform:scaleY(0);transition:transform .25s var(--ease-out)}.legal-toc a:hover,.legal-toc a.is-active{color:var(--blue-600);background:var(--lavender-soft)}.legal-toc a.is-active:before{transform:scaleY(1)}.legal-toc-num{flex:none;padding-top:.12em;font-family:var(--font-sans);font-weight:600;font-size:.72rem;color:var(--ink-faint)}.legal-toc a.is-active .legal-toc-num{color:var(--blue-500)}.legal-body{min-width:0;max-width:76ch}.legal-summary{margin-bottom:3rem;padding:clamp(1.4rem,3vw,2rem);border:1px solid var(--line);border-left:4px solid var(--blue-500);border-radius:var(--radius);background:var(--lavender-soft)}.legal-summary-title{margin-bottom:1rem;font-family:var(--font-display);font-size:clamp(1.3rem,2.2vw,1.55rem);font-weight:600;color:var(--navy-800)}.legal-pairs>div{display:grid;grid-template-columns:minmax(8.5rem,.32fr) minmax(0,1fr);gap:.3rem 1.25rem;padding-block:.7rem;border-top:1px solid var(--line)}.legal-pairs>div:first-child{border-top:0;padding-top:0}.legal-pairs>div:last-child{padding-bottom:0}.legal-pairs dt{font-size:.85rem;font-weight:700;color:var(--navy-800)}.legal-pairs dd{margin:0;font-size:.97rem;color:var(--ink);overflow-wrap:anywhere}.legal-section{padding-top:2.4rem;margin-top:2.4rem;border-top:1px solid var(--line)}.legal-summary+.legal-section{margin-top:0}.legal-section-head{display:flex;align-items:baseline;gap:.85rem;margin-bottom:1rem}.legal-num{flex:none;padding:.2rem .5rem;border-radius:6px;background:var(--lavender);font-family:var(--font-sans);font-weight:600;font-size:.75rem;color:var(--blue-600);transform:translateY(-.2em);transition:background-color .25s var(--ease-out),color .25s var(--ease-out)}.legal-section.is-current .legal-num{background:var(--blue-500);color:#fff}.legal-section h2{font-family:var(--font-display);font-size:clamp(1.35rem,2.4vw,1.7rem);font-weight:600;line-height:1.25;color:var(--navy-800)}.legal-section p,.legal-section li{font-size:1rem;line-height:1.7;color:var(--ink);overflow-wrap:anywhere}.legal-section>*+*{margin-top:1rem}.legal-list{display:grid;gap:.55rem;padding:0;list-style:none}.legal-list li{position:relative;padding-left:1.4rem}.legal-list li:before{content:"";position:absolute;left:.2rem;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--blue-500);box-shadow:0 0 0 3px #3b76c926}.legal-pairs-inline{padding:1.1rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius-sm)}.legal-table{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);border-collapse:separate;border-spacing:0;overflow:hidden;font-size:.94rem}.legal-table th{padding:.75rem 1rem;background:var(--lavender-soft);font-size:.78rem;font-weight:700;text-align:left;color:var(--ink-soft)}.legal-table td{padding:.85rem 1rem;border-top:1px solid var(--line);vertical-align:top;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}.legal-table td:first-child{font-weight:600;color:var(--navy-800)}.legal-table tbody tr{transition:background-color .2s var(--ease-out)}.legal-table tbody tr:hover{background:#f3f5fa99}.legal-other{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;margin-top:3rem;padding:1.5rem clamp(1.25rem,3vw,1.75rem);border-radius:var(--radius);background:var(--navy-900);color:#ffffffd9}.legal-other p{margin:0;font-family:var(--font-display);font-size:1.2rem;color:#fff}.legal-other-links{display:flex;flex-wrap:wrap;gap:.6rem}.legal-other .btn-ghost{color:#fff;border-color:#ffffff4d}.legal-other .btn-ghost:hover{border-color:#fff}.form-privacy{margin-top:1rem;font-size:.8rem;line-height:1.5;color:#ffffff8c}.form-privacy a{color:#ffffffd9;text-decoration:underline;text-underline-offset:3px}.form-privacy a:hover{color:#fff}.footer-legal{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}@media(max-width:860px){.legal-layout{grid-template-columns:minmax(0,1fr)}.legal-toc{position:static;max-height:none}}@media(max-width:640px){.legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:block}.legal-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.legal-table tbody tr+tr{border-top:1px solid var(--line)}.legal-table td{padding:.2rem 1rem;border-top:0}.legal-table td:first-child{padding-top:.9rem}.legal-table td:last-child{padding-bottom:.9rem}.legal-table td:not(:first-child):before{content:attr(data-label);display:block;font-size:.72rem;font-weight:700;color:var(--ink-faint)}.legal-pairs>div{grid-template-columns:minmax(0,1fr)}.legal-other{flex-direction:column;align-items:stretch}.legal-other-links .btn{flex:1 1 auto;justify-content:center}}@media(max-width:1024px){.hero-inner{grid-template-columns:minmax(0,1fr);gap:3.5rem}.hero{padding-block:7.5rem 4.5rem}.code-card{transform:none;max-width:560px}.hero-visual{justify-self:center;width:min(100%,380px);padding-left:0}.hero-visual{margin-bottom:0}.hero-visual .code-card{position:relative;left:auto;top:auto;width:92%;margin:-3rem auto 0}.float-badge-a{right:-.5rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem}.about-grid,.edu-layout,.contact-grid,.recruit,.cta-inner,.faq-layout,.service,.case-layout{grid-template-columns:minmax(0,1fr)}.service-flip .service-head{order:0}.faq-sticky{position:static}.process,.cards-grid-4,.maint-grid,.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.5rem}.case-meta{position:static}.cta-actions{justify-items:stretch;width:min(100%,22rem)}.cta-mail{justify-self:start}}@media(max-width:860px){.nav-toggle{display:flex}.nav-menu{position:absolute;top:calc(100% + .5rem);left:var(--gutter);right:var(--gutter);padding:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s var(--ease)}.nav-menu.open{opacity:1;visibility:visible;transform:none}.nav-menu ul{flex-direction:column;align-items:stretch;gap:.15rem}.nav-link,.site-header.scrolled .nav-link{display:block;padding:.75rem .9rem;color:var(--ink-soft);border-radius:var(--radius-sm)}.nav-link:hover,.nav-link.active,.site-header.scrolled .nav-link:hover,.site-header.scrolled .nav-link.active{color:var(--blue-600);background:var(--lavender)}.nav-menu .btn{margin-top:.35rem;width:100%}.section-head-split,.highlight-grid,.decision-grid{grid-template-columns:minmax(0,1fr)}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1 / -1}}@media(max-width:640px){html{scroll-padding-top:80px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 1rem}.stat{padding-left:.9rem}.process,.cards-grid-4,.maint-grid,.stack-grid{grid-template-columns:minmax(0,1fr)}.process-step{padding-top:0;padding-bottom:1.5rem;border-top:0;border-bottom:2px solid var(--line)}.process-step:before{top:auto;bottom:-2px}.form-row,.reason-options{grid-template-columns:minmax(0,1fr);gap:0 1rem}.reason-options{gap:.5rem}.feature-card,.edu-card,.side-card,.stack-group,.decision,.recruit-card,.project-body{padding:1.35rem}.hero-actions .btn{flex:1 1 100%}.float-badge{display:none}.hero-visual .code-card{width:100%}.hero-visual .code-card-body{padding:1rem .9rem;font-size:.6rem}.flow-steps{flex-direction:column;gap:1.6rem}.flow-step{flex-basis:auto}.flow-step:not(:last-child):after{content:"\2193";right:auto;left:1rem;top:auto;bottom:-1.5rem;transform:none}.gallery-phone{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:minmax(0,1fr)}.next-project{text-align:left}.next-project strong{justify-content:flex-start}.to-top{right:1rem;bottom:1rem}}@media(prefers-reduced-motion:reduce){.marquee-track,.float-badge,.status-dot,.caret{animation:none}.code-card{transform:none}}@media print{.site-header,.to-top,.scroll-progress,.contact-form,.hero-visual,.marquee{display:none!important}body{color:#000}.hero,.page-hero,.stats-band,.section-dark,.cta-band,.site-footer{background:#fff!important;color:#000!important}}
