:root{color-scheme:light;--paper:#f4f2ed;--ink:#202522;--muted:#686e69;--line:#cecec7;--accent:#3b51e8;--deep:#1d272b;--hero-index:#626b64;--issue:#828981;--aside-bg:#e8e9e6;--aside-label:#6c7671;--intro:#69726c;--row-hover:#eeede8;--row-number:#777d75;--project-description:#6b736b;--project-category:#5a6560;--footer-bg:#e7e8e1;--footer-border:#d2d6ce;--footer-muted:#686f69;--footer-note:#788077}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #516aff;outline-offset:4px}img{max-width:100%}.shell{width:min(1220px,calc(100% - 96px));margin:auto}.skip{position:absolute;top:-100px;left:12px;z-index:20;background:#fff;padding:10px}.skip:focus{top:10px}.site-header{height:86px;border-bottom:1px solid var(--line);background:var(--paper)}.nav-row{display:flex;align-items:center;height:100%;gap:40px}.brand{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:24px;letter-spacing:-.075em;font-weight:800}.brand img{object-fit:contain}.brand span span{font-weight:500}.brand i{font-size:20px;margin-left:8px;font-style:normal;color:var(--accent)}.nav-links{display:flex;gap:34px;margin:auto;font-size:13px;font-weight:600}.nav-links a:hover,.github:hover,.footer a:hover{color:var(--accent)}.nav-actions{display:flex;gap:20px;align-items:center;flex-shrink:0}.lang{cursor:pointer;border:0;background:transparent;font-size:12px;font-weight:800;letter-spacing:.03em}.lang span{color:var(--accent)}.github{font-size:13px;font-weight:700}.github span{padding-left:7px;color:var(--accent)}.hero-index,.hero-foot,.section-n,.row-n,.project-category,.systems-label,.diagram-top,.diagram-foot,.node-key,.aside-bottom,.hero-foot,.issue{font-family:'Courier New',monospace;letter-spacing:.06em}.hero{padding-top:34px}.hero-index{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:700;color:var(--hero-index)}.mini-dot{width:9px;height:9px;background:var(--accent);border-radius:50%}.issue{margin-left:auto;color:var(--issue);font-size:10px}.hero-main{display:grid;grid-template-columns:minmax(0,1.36fr) minmax(0,.64fr);gap:64px;align-items:end;padding:105px 0 96px}.hero h1{font-size:clamp(72px,8.2vw,127px);font-weight:800;letter-spacing:-.095em;line-height:.92;margin:0 0 42px}.hero h1 em{font-weight:400;letter-spacing:-.1em;font-style:normal;color:var(--accent)}.hero-lead{max-width:530px;font-size:22px;line-height:1.5;letter-spacing:-.028em;margin:0 0 30px}.text-link{font-weight:700;font-size:14px;padding:0 0 9px;border-bottom:1px solid var(--ink);display:inline-flex;align-items:center;gap:46px}.text-link:hover{color:var(--accent);border-color:var(--accent)}.text-link span{font-size:19px}.hero-aside{border:1px solid var(--line);height:296px;background:var(--aside-bg);display:flex;flex-direction:column;justify-content:space-between;padding:22px;position:relative}.stamp{display:grid;place-items:center;flex:1}.stamp img{width:164px;height:164px;object-fit:contain;filter:saturate(.85)}.aside-bottom{display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:var(--aside-label)}.hero-foot{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:20px 0;font-size:10px;color:#6b746e}.hero-foot span:last-child{font-size:21px}.section{padding:124px 0 140px}.section-head{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:end;gap:50px;margin-bottom:60px}.section-n{font-size:12px;color:var(--accent);font-weight:700}.section-head h2{font-size:clamp(46px,5.8vw,76px);line-height:1;letter-spacing:-.075em;margin:18px 0 0;font-weight:750}.period{color:var(--accent)}.section-head p{font-size:17px;line-height:1.6;color:var(--intro);margin:0}.work-list{border-top:1px solid var(--ink)}.work-row{display:grid;grid-template-columns:50px 90px minmax(0,1fr) 190px 34px;gap:16px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line);transition:padding .2s,background .2s}.work-row:hover{padding-left:13px;padding-right:13px;background:var(--row-hover)}.row-n{align-self:center;font-size:11px;color:var(--row-number)}.project-logo{width:76px;height:76px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;letter-spacing:-.1em}.project-logo span{color:#5d91ff}.garage-logo{background:#1e3e67;color:#fff}.ladica-logo{background:#225c4d;color:#fff}.gableci-logo{background:#a26732;color:#fff}.project-copy strong{display:block;font-size:36px;letter-spacing:-.045em;line-height:1.15;margin-bottom:7px}.project-copy small{font-size:15px;line-height:1.5;color:var(--project-description)}.project-category{font-size:10px;color:var(--project-category);font-weight:700}.arrow{justify-self:end;font-size:27px;font-weight:300;color:var(--accent)}.systems-band{background:var(--deep);color:#f6f6ef;padding:112px 0 134px}.on-dark .section-n{color:#9bafff}.section-head.on-dark p{color:#bec8c4}.systems-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:90px;align-items:center}.architecture{border:1px solid #526066;min-height:430px;padding:22px;background-color:#222e32;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:26px 26px;display:flex;flex-direction:column}.diagram-top,.diagram-foot{display:flex;justify-content:space-between;font-size:9px;color:#9fb2b8;font-weight:700}.diagram-foot{margin-top:auto;padding-top:24px}.node{border:1px solid #7b8b8c;background:#26363b;padding:20px;min-width:0}.big-node{width:68%;align-self:center;margin:44px auto 0}.node-key{display:block;color:#8faeff;font-size:10px;margin-bottom:15px}.node strong{display:block;font-size:18px;letter-spacing:-.03em}.node small{display:block;color:#a2b3b6;font-size:12px;line-height:1.5;margin-top:8px}.connector-line{height:39px;width:1px;background:#788e96;margin:0 auto}.node-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.systems-label{color:#91a7fa;font-size:10px;font-weight:800}.systems-copy h3{font-size:clamp(36px,3.7vw,54px);line-height:1.05;letter-spacing:-.065em;margin:21px 0}.systems-copy>p:not(.systems-label){font-size:16px;color:#bec8c4;line-height:1.75}.systems-tags{display:flex;gap:9px;flex-wrap:wrap;margin:26px 0}.systems-tags span{font-family:'Courier New',monospace;font-size:11px;border:1px solid #536268;padding:8px 10px;color:#d2ddda}.systems-copy .systems-footnote{font-size:12px!important;color:#899a9a!important}.about{padding:128px 0 155px}.about-lower{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:105px}.values{border-top:1px solid var(--ink)}.values>div{border-bottom:1px solid var(--line);padding:19px 0;display:flex;gap:25px;align-items:center}.values span{font:12px 'Courier New',monospace;color:var(--accent)}.values strong{font-size:20px;letter-spacing:-.03em;font-weight:600}.about-note p{font-size:22px;line-height:1.5;letter-spacing:-.025em;margin:0 0 30px}.footer{background:var(--footer-bg);border-top:1px solid var(--footer-border);padding:57px 0}.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}.footer-brand{font-size:35px;letter-spacing:-.08em;font-weight:800}.footer-brand span{color:var(--accent)}.footer-inner p{font-size:14px;color:var(--footer-muted);margin-top:7px}.footer-right{display:flex;gap:26px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:60%;font-size:13px;font-weight:700}.footer-right small{font-size:12px;color:var(--footer-note);font-weight:400}.footer-right a:hover{color:var(--accent)}@media(max-width:960px){.shell{width:min(100% - 48px,1220px)}.nav-row{gap:20px}.nav-links{gap:20px}.hero-main{gap:30px}.hero h1{font-size:clamp(60px,8vw,88px)}.section-head{grid-template-columns:minmax(0,1fr) 270px}.systems-layout{gap:40px}.work-row{grid-template-columns:34px 78px minmax(0,1fr) 26px}.project-category{display:none}}@media(max-width:670px){.shell{width:calc(100% - 36px)}.site-header{height:72px}.nav-row{gap:12px}.brand{font-size:21px}.brand img{width:29px;height:29px}.brand i{display:none}.nav-links{display:none}.nav-actions{margin-left:auto;gap:15px}.github{font-size:12px}.hero-index{font-size:9px}.issue{display:none}.hero-main{padding:80px 0 52px;display:block}.hero h1{font-size:clamp(54px,11.2vw,82px);margin-bottom:28px}.hero-lead{font-size:19px}.hero-aside{margin-top:60px;height:185px}.stamp img{width:95px;height:95px}.section{padding:82px 0 99px}.section-head{grid-template-columns:1fr;gap:18px;margin-bottom:35px}.section-head h2{font-size:clamp(44px,9vw,62px)}.section-head p{font-size:15px}.work-row{grid-template-columns:24px 54px minmax(0,1fr) 20px;gap:11px;padding:25px 0}.project-logo{width:50px;height:50px;font-size:28px}.project-copy strong{font-size:27px}.project-copy small{font-size:12px}.arrow{font-size:22px}.systems-band{padding:78px 0 93px}.systems-layout{display:flex;flex-direction:column;gap:36px;align-items:stretch}.architecture{min-height:345px;padding:13px}.big-node{margin-top:30px;width:85%}.node{padding:12px}.node strong{font-size:13px}.node small{font-size:10px}.node-key{font-size:9px;margin-bottom:8px}.diagram-top,.diagram-foot{font-size:8px}.systems-copy h3{font-size:37px}.about{padding:90px 0 100px}.about-lower{grid-template-columns:1fr;gap:38px}.about-note p{font-size:20px}.footer-inner{flex-direction:column;gap:26px}.footer-right{gap:18px;max-width:100%;justify-content:flex-start}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

html[data-theme="dark"]{color-scheme:dark;--paper:#151a19;--ink:#edece5;--muted:#aab4ab;--line:#3b4641;--accent:#9cadff;--deep:#1d272b;--hero-index:#a7b2a9;--issue:#8f9a92;--aside-bg:#232b29;--aside-label:#b3bdb6;--intro:#b2bdb3;--row-hover:#202925;--row-number:#a1aca3;--project-description:#b4bfb5;--project-category:#a4aea5;--footer-bg:#1b221f;--footer-border:#38433d;--footer-muted:#b4bcb5;--footer-note:#a5aea7}
@media(prefers-color-scheme:dark){html:not([data-theme="light"]){color-scheme:dark;--paper:#151a19;--ink:#edece5;--muted:#aab4ab;--line:#3b4641;--accent:#9cadff;--deep:#1d272b;--hero-index:#a7b2a9;--issue:#8f9a92;--aside-bg:#232b29;--aside-label:#b3bdb6;--intro:#b2bdb3;--row-hover:#202925;--row-number:#a1aca3;--project-description:#b4bfb5;--project-category:#a4aea5;--footer-bg:#1b221f;--footer-border:#38433d;--footer-muted:#b4bcb5;--footer-note:#a5aea7}}
.theme-toggle{display:grid;place-items:center;width:34px;height:34px;padding:0;cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:50%;font-size:19px;line-height:1}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.shortener-logo{background:#374556;color:#fff}
.about-links{display:flex;flex-direction:column;align-items:flex-start;gap:23px}
@media(max-width:670px){.nav-actions{gap:10px}.theme-toggle{width:30px;height:30px;font-size:17px}.about-links{gap:18px}}

.project-logo img{display:block;width:100%;height:100%;object-fit:contain}

/* Keep translated content within its layout track without hiding overflow. */
.hero-main>*,.section-head>*,.systems-layout>*,.about-lower>*,.footer-inner>*{min-width:0}
.project-copy,.systems-copy,.about-note{min-width:0;overflow-wrap:anywhere}
.text-link{max-width:100%;overflow-wrap:anywhere}
.hero-index>span:not(.mini-dot){min-width:0}
.mini-dot{flex-shrink:0}
.aside-bottom,.diagram-top,.diagram-foot{gap:12px}
.aside-bottom span:last-child,.diagram-top span:last-child{text-align:right}
.hero-foot{color:var(--hero-index);gap:16px}
.hero-foot span:last-child{flex-shrink:0}
@media(max-width:800px){.nav-links{display:none}.nav-actions{margin-left:auto}.systems-layout,.about-lower{grid-template-columns:minmax(0,1fr);gap:36px}.architecture{min-height:400px}.systems-copy h3{font-size:clamp(32px,5vw,42px)}}
@media(max-width:670px){.work-row:hover{padding-left:0;padding-right:0}.hero-aside{margin-top:36px}.aside-bottom{align-items:flex-end}.diagram-foot{font-size:7px}.node-row{grid-template-columns:minmax(0,1fr)}.architecture{min-height:0}.big-node{width:100%;margin-top:24px}.node strong{font-size:16px}.node small{font-size:12px}.node-row .node+.node{margin-top:0}.systems-copy h3{font-size:clamp(30px,8vw,37px)}}
