@font-face{font-family:Familjen Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_astro/familjen-grotesk-latin-wght-normal.CfZa4wxB.woff2)format("woff2")}:root{--font-display:"Familjen Grotesk", system-ui, sans-serif;--font-sans:"Familjen Grotesk", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg:#fff;--surface:#fff;--surface-2:#f3f3f1;--ink:#111;--ink-soft:#3f3f3c;--ink-mute:#62625e;--line:#e4e4e0;--accent:#111;--accent-ink:#fff;--parte:#b93d0b;--parte-ink:#fff;--parte-tint:#b93d0b12;--success:#0d684e;--danger:#b3261e;--shadow:0 1px 2px #1111110f, 0 10px 28px -14px #11111138;--phone-frame:#111;--r-lg:22px;--r-md:16px;--r-sm:999px;--gutter:16px;--header-h:60px;--tap:44px;color-scheme:light}:root[data-theme=dark]{--bg:#0c0d10;--surface:#141519;--surface-2:#1b1d22;--ink:#f2f2f3;--ink-soft:#b7bac1;--ink-mute:#8b8f98;--line:#ffffff17;--accent:#f2f2f3;--accent-ink:#0c0d10;--parte:#ff8f57;--parte-ink:#1b0d05;--parte-tint:#ff8f5717;--success:#7ee0a8;--danger:#ff8a80;--shadow:0 1px 0 #ffffff0a inset, 0 20px 40px -24px #000c;--phone-frame:#2a2c32;color-scheme:dark}[data-product=kaku]{--product-bg:#f4e3dd;--product-ink:#8a2318}[data-product=blindnote]{--product-bg:#7fc782;--product-ink:#0f3a14}[data-product=nadir]{--product-bg:#16171b;--product-ink:#fa0}:root[data-theme=dark] [data-product=kaku]{--product-bg:#2b1c1a;--product-ink:#ef8a7e}:root[data-theme=dark] [data-product=blindnote]{--product-bg:#16301b;--product-ink:#9ad99c}:root[data-theme=dark] [data-product=nadir]{--product-bg:#221a07;--product-ink:#fa0}@media (width>=768px){:root{--gutter:24px;--header-h:68px}}@media (width>=1024px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:1rem;line-height:1.55}img,video,svg{max-width:100%;display:block}a{color:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.08}p{text-wrap:pretty;margin:0}.mono{font-family:var(--font-mono)}.wrap{max-width:1180px;padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip-link{left:var(--gutter);z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--r-sm);padding:12px 16px;font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:8px}.btn{min-height:var(--tap);border-radius:var(--r-sm);font:600 .95rem/1.2 var(--font-sans);white-space:nowrap;cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--ink-soft)}.btn-secondary{background:var(--surface-2);color:var(--ink)}.btn-secondary:hover{border-color:var(--ink)}.btn-parte{background:var(--parte);color:var(--parte-ink)}.btn-parte:hover{background:var(--ink);color:var(--bg)}.btn[disabled]{opacity:.6;cursor:default;transform:none}.text-link{min-height:var(--tap);color:var(--ink);text-underline-offset:4px;text-decoration:underline 1.5px;text-decoration-color:var(--line);align-items:center;gap:6px;font-weight:600;transition:color .15s,text-decoration-color .15s;display:inline-flex}.text-link:hover{color:var(--accent);text-decoration-color:currentColor}.parte-mark{font-family:var(--font-display);color:var(--parte);letter-spacing:-.01em;white-space:nowrap;align-items:baseline;gap:.22em;font-weight:700;display:inline-flex}.parte-mark svg{flex-shrink:0;align-self:center;width:.78em;height:.9em}.parte-mark-lg{font-size:clamp(2rem,8vw,2.75rem)}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.headbar{height:var(--header-h);justify-content:space-between;align-items:center;gap:12px;display:flex}.logo{min-height:var(--tap);font-family:var(--font-display);letter-spacing:.01em;color:var(--ink);align-items:center;gap:10px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.logo-mark{flex-shrink:0;width:26px;height:26px}.head-actions{align-items:center;gap:4px;display:flex}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:20px;height:20px}.icon-moon,:root[data-theme=dark] .icon-sun{display:none}:root[data-theme=dark] .icon-moon{display:block}.menu-btn{min-height:var(--tap);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font:600 .9rem var(--font-sans);cursor:pointer;border:0;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.menu-bars{width:16px;height:10px;position:relative}.menu-bars:before,.menu-bars:after{content:"";background:currentColor;border-radius:2px;height:2px;transition:transform .2s,top .2s;position:absolute;left:0;right:0}.menu-bars:before{top:0}.menu-bars:after{top:8px}.menu-btn[aria-expanded=true] .menu-bars:before{top:4px;transform:rotate(45deg)}.menu-btn[aria-expanded=true] .menu-bars:after{top:4px;transform:rotate(-45deg)}.site-nav{background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:8px var(--gutter) 16px;display:none;position:absolute;top:100%;left:0;right:0}.site-nav.is-open{display:block}.site-nav ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.site-nav a{min-height:52px;color:var(--ink);border-bottom:1px solid var(--line);align-items:center;padding:0 4px;font-size:1.1rem;font-weight:600;text-decoration:none;display:flex}.site-nav li:last-child a{border-bottom:0}.site-nav a[aria-current=page]{color:var(--accent)}@media (width>=900px){.menu-btn{display:none}.site-nav{box-shadow:none;background:0 0;border:0;padding:0;display:block;position:static}.site-nav ul{flex-direction:row;gap:4px}.site-nav a{min-height:40px;color:var(--ink-soft);border-radius:var(--r-sm);border:0;padding:0 12px;font-size:.95rem;font-weight:500}.site-nav a:hover{color:var(--ink);background:var(--surface-2)}.site-nav a[aria-current=page]{color:var(--ink);font-weight:600}.site-nav a.nav-cta{background:var(--ink);color:var(--bg);border-radius:var(--r-sm);margin-left:8px;padding:0 18px;font-weight:600}.site-nav a.nav-cta:hover{background:var(--ink-soft);color:var(--bg)}.headbar{gap:24px}.head-actions{order:3}}@media (scripting:none){.menu-btn{display:none}.site-nav{box-shadow:none;background:0 0;border:0;padding:0;display:block;position:static}.site-nav ul{flex-flow:wrap;gap:0 12px}.site-nav a{min-height:var(--tap);border:0;font-size:.9rem}.headbar{flex-wrap:wrap;height:auto;padding-block:4px}}.section{padding-block:56px 64px}.section+.section{border-top:1px solid var(--line)}.section-head{flex-direction:column;gap:12px;max-width:62ch;margin-bottom:28px;display:flex}.section-head h1,.section-head h2{letter-spacing:-.02em;font-size:clamp(2rem,8vw,3.2rem);font-weight:700}.section-head p{color:var(--ink-soft);font-size:1.05rem}.section-foot{margin-top:20px}@media (width>=768px){.section{padding-block:88px 96px}.section-head{margin-bottom:40px}}.page-top{padding-top:32px}@media (width>=768px){.page-top{padding-top:56px}}.hero{padding-block:28px 48px}.hero-grid{align-items:center;gap:36px;display:grid}.hero h1{letter-spacing:-.022em;font-size:clamp(2.4rem,10.5vw,4.4rem);font-weight:700;line-height:1}.hero-sub{color:var(--ink-soft);max-width:44ch;margin-top:16px;font-size:1.1rem}.doors{gap:10px;margin-top:24px;display:grid}.door{border-radius:var(--r-md);background:var(--surface-2);min-height:72px;color:var(--ink);border:1.5px solid #0000;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .1s;display:grid}.door:hover{border-color:var(--ink)}.door:active{transform:translateY(1px)}.door-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700}.door-desc{color:var(--ink-mute);grid-column:1;font-size:.92rem;line-height:1.35}.door-arrow{color:var(--ink-mute);grid-area:1/2/span 2;font-size:1.25rem;transition:transform .15s,color .15s}.door:hover .door-arrow{color:var(--ink);transform:translate(3px)}.door-parte{border-color:color-mix(in srgb, var(--parte) 30%, transparent);background:var(--parte-tint)}.door-parte:hover{border-color:var(--parte)}.hero-media{justify-content:center;align-items:flex-start;gap:14px;padding-inline:4px;display:flex}.hero-shot{justify-items:center;gap:10px;width:min(40vw,190px);margin:0;display:grid}.hero-shot .phone{width:100%}.hero-shot figcaption{color:var(--product-ink,var(--ink-soft));font-size:.85rem;font-weight:600}@media (width>=560px){.doors{grid-template-columns:1fr 1fr}}@media (width>=1024px){.hero{padding-block:56px 72px}.hero-grid{grid-template-columns:1.15fr .85fr;gap:56px}.hero-shot{width:200px}}.phone{aspect-ratio:1/2;background:var(--surface);border:5px solid var(--phone-frame);border-radius:22px;position:relative;overflow:hidden;box-shadow:0 18px 40px -22px #00000073}.phone img,.phone video{object-fit:cover;object-position:center top;width:100%;height:100%}.projects{gap:14px;display:grid}.project{border-radius:var(--r-lg);background:var(--surface-2);grid-template-columns:104px 1fr;align-items:start;gap:16px;padding:10px;display:grid}.project-media .phone{border-width:3px;border-radius:14px}.project-tile{aspect-ratio:1/2;background:var(--ink);color:var(--bg);border-radius:14px;flex-direction:column;justify-content:flex-end;gap:4px;padding:10px;display:flex}.project-tile b{letter-spacing:-.02em;font-size:1.4rem;line-height:1}.project-tile span{opacity:.8;font-size:.72rem;line-height:1.3}.project-body{flex-direction:column;gap:8px;min-width:0;display:flex}.project-meta{color:var(--ink-mute);font-size:.8rem}.project-meta b{color:var(--ink-soft);font-weight:600}.project :is(h2,h3){font-size:1.2rem;font-weight:700}.project-desc{color:var(--ink-soft);font-size:.95rem;line-height:1.45}.project-links{flex-wrap:wrap;align-items:center;gap:0 16px;margin-top:2px;display:flex}.project-links .text-link{font-size:.92rem}.status{background:var(--bg);color:var(--ink-soft);border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.status-disponible{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success)}@media (width>=560px){.project{grid-template-columns:140px 1fr;gap:20px;padding:18px}.project :is(h2,h3){font-size:1.35rem}}@media (width>=768px){.projects{grid-template-columns:1fr 1fr;gap:20px}.project-featured{grid-column:1/-1;grid-template-columns:200px 1fr;align-items:center;gap:36px;padding:28px}.project-featured :is(h2,h3){font-size:1.9rem}.project-featured .project-desc{max-width:48ch;font-size:1.08rem}}.works{gap:14px;margin-top:14px;display:grid}.work{border-radius:var(--r-lg);background:var(--surface-2);gap:14px;padding:10px;display:grid}.work-media{padding:4px}.browser{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden;box-shadow:0 18px 40px -22px #00000073}.browser:before{content:"";background:var(--surface-2);border-bottom:1px solid var(--line);background-image:radial-gradient(circle, var(--ink-mute) 3px, transparent 3px);background-position:10px;background-repeat:no-repeat;background-size:8px 8px;height:22px;display:block}.browser img{width:100%;height:auto;display:block}.work-body{flex-direction:column;gap:8px;min-width:0;padding:0 6px 6px;display:flex}.work-demo-note{color:var(--ink-mute);font-size:.82rem}@media (width>=560px){.work{gap:18px;padding:14px}}@media (width>=900px){.work{grid-template-columns:1.1fr 1fr;align-items:center;gap:28px;padding:22px}}.tools{gap:14px;margin-top:14px;display:grid}.tool{border-radius:var(--r-lg);background:var(--surface-2);gap:10px;padding:18px;display:grid}.tool :is(h2,h3){font-size:1.2rem}.tool-desc{color:var(--ink-soft);font-size:.95rem}.tool-cmd{white-space:nowrap;font-family:var(--font-mono);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:10px 12px;font-size:.82rem;display:block;overflow-x:auto}.tool-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.tool-actions .btn{width:100%}@media (width>=560px){.tool-actions .btn{width:auto}}@media (width>=768px){.tool{grid-template-columns:1fr auto;align-items:center;column-gap:32px;padding:24px 28px}.tool-actions{flex-direction:column;grid-area:1/2/span 3;align-items:stretch}}.parte-panel{border-radius:var(--r-lg);background:var(--parte-tint);gap:24px;padding:22px 18px;display:grid}.parte-tagline{max-width:24ch;margin-top:10px;font-size:clamp(1.3rem,5vw,1.7rem);font-weight:700;line-height:1.2}.parte-for{color:var(--ink-soft);max-width:52ch;margin-top:10px}.parte-steps{counter-reset:step;gap:14px;margin:0;padding:0;list-style:none;display:grid}.parte-steps li{counter-increment:step;grid-template-columns:32px 1fr;gap:12px;display:grid}.parte-steps li:before{content:counter(step);background:var(--parte-tint);width:32px;height:32px;color:var(--parte);border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.parte-steps b{font-size:1rem;display:block}.parte-steps p{color:var(--ink-soft);margin-top:2px;font-size:.93rem;line-height:1.45}.parte-actions{flex-direction:column;gap:6px;display:flex}.parte-actions .btn{width:100%}.parte-note{color:var(--ink-mute);font-size:.85rem}@media (width>=560px){.parte-actions{flex-direction:row;align-items:center;gap:16px}.parte-actions .btn{width:auto}}@media (width>=900px){.parte-panel{grid-template-columns:1fr 1fr;align-items:start;gap:48px;padding:36px}.parte-panel .parte-actions{grid-column:1}.parte-panel .parte-steps{grid-area:1/2/span 2}}.parte-hero{padding-block:28px 48px}.parte-hero h1{letter-spacing:-.02em;max-width:18ch;margin-top:18px;font-size:clamp(2rem,8.5vw,3.4rem);font-weight:700;line-height:1.05}.parte-hero .hero-sub{max-width:48ch}.parte-hero .parte-actions{margin-top:24px}.parte-hero .parte-note{margin-top:12px}.parte-back{color:var(--ink-mute);font-size:.9rem}.parte-grid{gap:14px;display:grid}.parte-point{border-radius:var(--r-lg);background:var(--surface-2);padding:20px 18px}.parte-point h3{font-size:1.15rem}.parte-point p{color:var(--ink-soft);margin-top:8px}@media (width>=768px){.parte-hero{padding-block:56px 80px}.parte-grid{grid-template-columns:1fr 1fr;gap:20px}.parte-point{padding:28px}}.studio{gap:28px;display:grid}.studio-text{color:var(--ink-soft);gap:14px;max-width:60ch;font-size:1.05rem;display:grid}.studio-text strong{color:var(--ink)}.stack{border-radius:var(--r-lg);background:var(--surface-2);gap:0;margin:0;display:grid}.stack div{border-bottom:1px solid var(--line);gap:2px;padding:14px 18px;display:grid}.stack div:last-child{border-bottom:0}.stack dt{color:var(--ink-mute);font-size:.85rem}.stack dd{margin:0;font-weight:600}@media (width>=900px){.studio{grid-template-columns:1.1fr .9fr;align-items:start;gap:56px}}.log-list{margin:0;padding:0;list-style:none;display:grid}.log-item{border-bottom:1px solid var(--line)}.log-item:first-child{border-top:1px solid var(--line)}.log-link{color:var(--ink);gap:4px;padding:16px 0;text-decoration:none;display:grid}.log-link:hover .log-title{color:var(--accent)}.log-meta{color:var(--ink-mute);font-size:.8rem}.log-title{font-size:1.08rem;font-weight:700;transition:color .15s}.log-excerpt{color:var(--ink-soft);font-size:.94rem}@media (width>=768px){.log-link{grid-template-columns:170px 1fr;column-gap:24px;padding:20px 0}.log-meta{grid-row:1/span 2;padding-top:3px}}.post{max-width:68ch}.post-meta{color:var(--ink-mute);font-size:.85rem}.post-title{margin-top:10px;font-size:clamp(1.8rem,7vw,2.6rem);font-weight:700}.post-body{color:var(--ink-soft);margin-top:24px;font-size:1.05rem;line-height:1.7}.post-body>*+*{margin-top:1em}.post-body strong{color:var(--ink)}.post-body img{border-radius:var(--r-md);border:1px solid var(--line)}.post-body h2{color:var(--ink);margin-top:1.8em;font-size:1.35rem}.post-body .post-h3{color:var(--ink);margin-top:1.4em;font-size:1.05rem}.post-body .stack{margin-top:.6em}.post-body ul,.post-body ol{padding-left:1.3em}.post-body li+li{margin-top:.35em}.post-body table{border-collapse:collapse;width:100%;font-size:.92rem;display:block;overflow-x:auto}.post-body th,.post-body td{border:1px solid var(--line);text-align:left;color:var(--ink-soft);padding:8px 12px}.post-body th{background:var(--surface-2);color:var(--ink);font-weight:600}.product-callout{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-soft);margin-top:18px;padding:14px 16px;font-size:.95rem;line-height:1.5}.product-callout p{margin:0}.product-callout b{color:var(--ink)}.next-guide{border-top:1px solid var(--line);margin-top:32px;padding-top:20px;font-size:1.05rem}.next-guide span{color:var(--ink-mute)}.kana-sheets{max-width:980px}.kana-sheets .post-body{max-width:68ch}.kana-section{margin-top:36px}.kana-section h2{font-size:1.35rem}.kana-note{color:var(--ink-mute);margin-top:6px;font-size:.9rem}.kana-embed{border:1px solid var(--line);border-radius:var(--r-md);white-space:pre-wrap;word-break:break-word;margin-top:8px;padding:12px 14px;font-size:.85rem;overflow-x:auto}.kana-scroll{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;margin-top:12px;overflow-x:auto}.kana-scroll:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.kana-table{border-collapse:collapse;width:100%;min-width:560px}.kana-table th,.kana-table td{border:1px solid var(--line);text-align:center;vertical-align:middle;padding:6px}.kana-table thead th,.kana-table tbody th{background:var(--surface-2);color:var(--ink-soft);font-size:.85rem;font-weight:600}.kana-table tbody th{width:44px}.kana-table figure{justify-items:center;gap:2px;margin:0;display:grid}.kana-table svg{width:100%;max-width:92px;height:auto}.kana-table figcaption{color:#3f3f3c;font-size:.8rem}.kana-char{color:#111;font-size:1rem}.related-guides{margin-top:40px}.related-guides h2{margin-bottom:8px;font-size:1.2rem}.post-back{margin-top:32px}.site-footer{background:var(--surface-2)}.contact{gap:24px;padding-block:56px;display:grid}.contact h2{letter-spacing:-.02em;font-size:clamp(2rem,8vw,3.2rem)}.contact-intro{gap:12px;max-width:44ch;display:grid}.contact-intro p{color:var(--ink-soft);font-size:1.05rem}.contact-intro a{color:var(--accent);font-weight:600}@media (width>=900px){.contact{grid-template-columns:.9fr 1.1fr;gap:56px;padding-block:88px}}.contact-form{gap:16px;width:100%;max-width:560px;display:grid}.contact-honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-field{gap:6px;display:grid}.form-field label{color:var(--ink);font-size:.9rem;font-weight:600}.form-field input,.form-field textarea{width:100%;font:inherit;min-height:var(--tap);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);padding:12px 14px;font-size:1rem}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.form-field textarea{resize:vertical;min-height:140px}.contact-form .btn{width:100%}@media (width>=560px){.contact-form .btn{justify-self:start;width:auto}}.form-field input[aria-invalid=true],.form-field textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.85rem;line-height:1.35}.field-error[hidden]{display:none}.form-status{min-height:1.4em;font-size:.92rem}.form-status.success{color:var(--success)}.form-status.error{color:var(--danger)}.contact-fallback{color:var(--ink-soft);font-size:1.05rem}.contact-fallback a{color:var(--accent);font-weight:600}.foot{border-top:1px solid var(--line);gap:24px;padding-block:32px 40px;display:grid}.foot-about{gap:10px;max-width:40ch;display:grid}.foot-about p{color:var(--ink-mute);font-size:.93rem}.foot-nav{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.foot-nav a{min-height:var(--tap);color:var(--ink-soft);align-items:center;font-size:.95rem;text-decoration:none;display:flex}.foot-nav a:hover{color:var(--ink)}.foot-bottom{color:var(--ink-mute);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:.85rem;display:flex}.foot-bottom nav{gap:16px;display:flex}.foot-bottom a{min-height:var(--tap);color:var(--ink-mute);align-items:center;text-decoration:none;display:inline-flex}.foot-bottom a:hover{color:var(--ink)}@media (width>=768px){.foot{grid-template-columns:1fr auto;align-items:start}.foot-nav{grid-template-columns:repeat(3,auto);column-gap:32px}.foot-bottom{grid-column:1/-1}}.legal{padding-block:32px 64px}.legal .section-head{max-width:none}.legal .section-num{color:var(--ink-mute);font-size:.85rem}.legal-body{max-width:72ch}.legal-body h2{margin:36px 0 12px;font-size:1.2rem;font-weight:700}.legal-body h2:first-child{margin-top:0}.legal-body p{color:var(--ink-soft);margin:0 0 16px;line-height:1.65}.legal-body ul,.legal-body ol{color:var(--ink-soft);margin:0 0 16px;padding-left:22px;line-height:1.65}.legal-body h3{margin:24px 0 8px;font-size:1rem;font-weight:700}.legal-body li{margin-bottom:6px}.legal-body a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.legal-body code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:1px 6px;font-size:.85em}.legal-table{border-collapse:collapse;width:100%;margin:0 0 24px;font-size:.88rem;display:block;overflow-x:auto}.legal-table th,.legal-table td{border:1px solid var(--line);text-align:left;vertical-align:top;color:var(--ink-soft);padding:10px 12px}.legal-table th{background:var(--surface-2);color:var(--ink);font-weight:600}.legal-table code{font-family:var(--font-mono);font-size:.85em}@media (width>=768px){.legal{padding-block:56px 88px}}.not-found{justify-items:start;gap:16px;max-width:52ch;padding-block:48px 80px;display:grid}.not-found h1{font-size:clamp(2rem,8vw,3rem)}.not-found p{color:var(--ink-soft);font-size:1.05rem}.not-found code{font-family:var(--font-mono);background:var(--surface-2);word-break:break-all;border-radius:4px;padding:2px 6px;font-size:.9em}.not-found .parte-actions{margin-top:8px}.cookie-banner{z-index:90;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:8px;left:8px;right:8px}.cookie-banner-inner{gap:10px;padding:12px 14px;display:grid}.cookie-banner-inner p{color:var(--ink-soft);font-size:.85rem;line-height:1.4}.cookie-banner-inner a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.cookie-banner-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cookie-banner-actions .btn{padding-inline:12px}@media (width>=768px){.cookie-banner{max-width:460px;bottom:24px;left:auto;right:24px}.cookie-banner-inner{gap:12px;padding:16px 18px}}.sticky-cta{left:var(--gutter);right:var(--gutter);bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;box-shadow:var(--shadow);justify-content:center;position:fixed}.sticky-cta[hidden]{display:none}@media (width>=900px){.sticky-cta{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.parte-hero-mark{margin-top:16px}a,button,summary{touch-action:manipulation}.phone-video .video-toggle{cursor:pointer;color:#fff;opacity:.85;background:#15171cb8;border:0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .15s;display:inline-flex;position:absolute;bottom:8px;right:8px}.phone-video .video-toggle:before{content:"";position:absolute;inset:-4px}.phone-video .video-toggle:hover,.phone-video .video-toggle:focus-visible{opacity:1}.phone-video .video-toggle[hidden]{display:none}.phone-video .video-toggle svg{width:16px;height:16px}.phone-video .icon-play{display:none}.phone-video.is-paused .icon-play{display:block}.phone-video.is-paused .icon-pause{display:none}.project-media .phone-video .video-toggle{width:30px;height:30px;bottom:5px;right:5px}.hero-shot{background:var(--product-bg,var(--surface-2));border-radius:var(--r-lg);padding:14px 14px 12px}.hero-shot:nth-child(2){margin-top:48px}.project-media{background:var(--product-bg,var(--surface));border-radius:calc(var(--r-lg) - 6px);padding:12px}.project-tile{color:var(--product-ink);background:0 0;padding:6px}.project-body{padding:8px 8px 4px 0}@media (width>=560px){.project{padding:12px}.project-body{padding:12px 12px 8px 0}}@media (width>=768px){.project-featured{padding:14px}.project-featured .project-media{padding:28px 40px}.hero-shot{padding:18px 18px 14px}}.project-tile{justify-content:space-between}.tower{gap:4px;width:70%;margin:auto 0 0;padding:0;list-style:none;display:grid}.tower li{background:color-mix(in srgb, var(--product-ink) 18%, transparent);border-radius:3px;height:10px}.tower li.done{background:var(--product-ink)}.tower li.now{box-shadow:0 0 0 2px color-mix(in srgb, var(--product-ink) 35%, transparent)}@media (width>=560px){.tower li{height:14px}}.parte-hero-grid{gap:32px;display:grid}.parte-how{gap:18px}.parte-how h2{letter-spacing:-.02em;font-size:1.35rem}@media (width>=900px){.parte-hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px}.parte-panel.parte-how{grid-template-columns:1fr;padding:32px}.parte-how .parte-steps{grid-area:auto}}.tool .tool-cmd,.tool .btn-secondary{background:var(--bg)}.faq{gap:16px;margin-top:40px;display:grid}.faq h3{letter-spacing:-.015em;font-size:1.35rem}.faq dl{gap:10px;margin:0;display:grid}.faq dl>div{border-radius:var(--r-md);background:var(--surface-2);padding:16px 18px}.faq dt{font-weight:700}.faq dd{color:var(--ink-soft);margin:4px 0 0}@media (width>=768px){.faq dl{grid-template-columns:1fr 1fr;gap:14px}}.lang-switch{letter-spacing:.04em;color:var(--ink);font-size:.8rem;font-weight:700;text-decoration:none}.kaku-points{gap:12px;max-width:62ch;margin-top:20px;padding:0;list-style:none;display:grid}.kaku-points li{border-radius:var(--r-md);background:var(--surface-2);padding:14px 16px}.kaku-points b{display:block}.kaku-points span{color:var(--ink-soft)}.kaku-point-link{margin-top:6px;display:table}.kaku-hero{align-items:center;gap:32px;display:grid}@media (width>=860px){.kaku-hero{grid-template-columns:1.2fr .8fr}}.kaku-answer{max-width:62ch;color:var(--ink-soft);font-size:1.05rem;line-height:1.6}.kaku-answer+.kaku-answer{margin-top:12px}.services{gap:14px;display:grid}.service{border-radius:var(--r-lg);background:var(--surface-2);border:1.5px solid #0000;flex-direction:column;gap:10px;padding:20px 18px;display:flex}.service :is(h2,h3){max-width:26ch;font-size:1.3rem;font-weight:700}.service-desc{color:var(--ink-soft);max-width:52ch;font-size:.97rem;line-height:1.5}.service-action{margin-top:auto;padding-top:6px}.service-primary{background:var(--surface);border-color:var(--ink)}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{background:var(--bg);color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600}.service-primary .chips li{background:var(--surface-2);border-color:#0000}.works-label{color:var(--ink-mute);margin-top:10px;font-size:.85rem;font-weight:600}.business-parte{margin-top:14px}@media (width>=768px){.services{grid-template-columns:1fr 1fr;gap:20px}.service{padding:28px}.service :is(h2,h3){font-size:1.5rem}.business-parte{margin-top:20px}}.eyebrow{color:var(--ink-mute);letter-spacing:.01em;font-size:.85rem;font-weight:600}.svc-hero{padding-block:28px 48px}.svc-hero-grid{align-items:center;gap:36px;display:grid}.svc-hero h1{letter-spacing:-.022em;max-width:17ch;margin-top:12px;font-size:clamp(2.2rem,9vw,3.9rem);font-weight:700;line-height:1.02}.svc-hero .hero-sub{max-width:50ch}.svc-actions{flex-direction:column;gap:6px;margin-top:24px;display:flex}.svc-actions .btn{width:100%}.svc-proof{color:var(--ink-soft);flex-wrap:wrap;gap:8px 18px;margin:20px 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.svc-proof li{align-items:center;gap:8px;display:inline-flex}.svc-proof li:before{content:"";background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px}@media (width>=560px){.svc-actions{flex-direction:row;align-items:center;gap:16px}.svc-actions .btn{width:auto}}@media (width>=1024px){.svc-hero{padding-block:56px 80px}.svc-hero-grid{grid-template-columns:1fr 1fr;gap:56px}}.device-mock{margin:0}.device-stage{padding-bottom:32px;position:relative}.device-mock .browser{width:88%}.browser-bar{background:var(--surface-2);border-bottom:1px solid var(--line);align-items:center;gap:10px;height:30px;padding:0 12px;display:flex}.device-mock .browser:before{display:none}.browser-dots{flex-shrink:0;gap:5px;display:flex}.browser-dots i{background:var(--line);border-radius:50%;width:8px;height:8px}.browser-url{min-width:0;height:18px;color:var(--ink-mute);background:var(--bg);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex:1;justify-content:center;align-items:center;font-size:.7rem;display:flex;overflow:hidden}.device-mock .phone{border-width:4px;border-radius:18px;width:30%;position:absolute;bottom:0;right:0}.device-mock figcaption{color:var(--ink-mute);margin-top:14px;font-size:.82rem}.feature-grid{counter-reset:feat;gap:14px;margin:0;padding:0;list-style:none;display:grid}.feature{border-radius:var(--r-lg);background:var(--surface-2);counter-increment:feat;padding:20px 18px}.feature:before{content:counter(feat, decimal-leading-zero);font-family:var(--font-mono);color:var(--ink-mute);margin-bottom:12px;font-size:.78rem;display:block}.feature h3{font-size:1.12rem}.feature p{color:var(--ink-soft);margin-top:8px;font-size:.95rem;line-height:1.5}@media (width>=640px){.feature-grid{grid-template-columns:1fr 1fr}}@media (width>=1024px){.feature-grid{grid-template-columns:repeat(3,1fr);gap:20px}.feature{padding:26px}}.kinds{gap:14px;display:grid}.kind{border-radius:var(--r-lg);border:1.5px solid var(--line);flex-direction:column;gap:8px;padding:20px 18px;display:flex}.kind h3{font-size:1.15rem}.kind p{color:var(--ink-soft);font-size:.95rem;line-height:1.5}.kind .text-link{margin-top:auto;font-size:.92rem}@media (width>=900px){.kinds{grid-template-columns:repeat(3,1fr);gap:20px}.kind{padding:26px}}.process{counter-reset:proc;gap:0;margin:0;padding:0;list-style:none;display:grid}.process li{counter-increment:proc;grid-template-columns:40px 1fr;align-content:start;gap:14px;padding-bottom:24px;display:grid;position:relative}.process li:before{content:counter(proc);background:var(--ink);width:40px;height:40px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.process li:not(:last-child):after{content:"";background:var(--line);width:2px;position:absolute;top:44px;bottom:4px;left:19px}.process h3{padding-top:8px;font-size:1.1rem}.process p{color:var(--ink-soft);margin-top:6px;font-size:.95rem;line-height:1.5}.process-out{color:var(--ink-mute);margin-top:8px;font-size:.85rem}.process-out b{color:var(--ink-soft);font-weight:600}@media (width>=900px){.process{grid-template-columns:repeat(4,1fr);gap:24px}.process li{grid-template-columns:1fr;align-content:start;gap:16px;padding-bottom:0}.process li:not(:last-child):after{width:auto;height:2px;inset:19px -16px auto 52px}.process h3{padding-top:0}}.case{gap:24px;display:grid}.case-facts{border-radius:var(--r-lg);background:var(--surface-2);margin:0;display:grid}.case-facts div{border-bottom:1px solid var(--line);gap:2px;padding:14px 18px;display:grid}.case-facts div:last-child{border-bottom:0}.case-facts dt{color:var(--ink-mute);font-size:.85rem}.case-facts dd{margin:0;font-weight:600}.case-text{color:var(--ink-soft);gap:14px;max-width:56ch;font-size:1.05rem;display:grid}.case-text strong{color:var(--ink)}@media (width>=900px){.case{grid-template-columns:1fr 1fr;align-items:start;gap:56px}}.faq-section{margin-top:0}.faq-section h2{letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(2rem,8vw,3.2rem);font-weight:700}.cta-band{border-radius:var(--r-lg);background:var(--ink);color:var(--bg);gap:18px;padding:28px 20px;display:grid}.cta-band h2{letter-spacing:-.02em;max-width:20ch;font-size:clamp(1.8rem,7vw,2.8rem);font-weight:700}.cta-band p{color:color-mix(in srgb, var(--bg) 78%, transparent);max-width:52ch}.cta-band .btn{background:var(--bg);color:var(--ink);justify-self:start}.cta-band .btn:hover{background:var(--surface-2)}.cta-band a:not(.btn){color:var(--bg)}@media (width>=900px){.cta-band{grid-template-columns:1fr auto;align-items:center;column-gap:48px;padding:48px}.cta-band .btn{grid-area:1/2/span 2}}.work-title{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:1.35rem;font-weight:700;line-height:1.1}.case-app-title{letter-spacing:-.015em;margin-top:40px;font-size:1.35rem}.case-app-intro{color:var(--ink-soft);max-width:60ch}@media (width>=768px){.case-app-title{margin-top:56px}}
