@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/dm-sans.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('assets/fonts/space-grotesk.woff2') format('woff2')}
:root{--bg:#f5f7fa;--panel:#fff;--surface:#eaf0f8;--hover:#e8edff;--line:#d8deea;--control:#7b879d;--field:#fafbff;--text:#141c33;--muted:#536078;--accent:#3155ff;--accent-hover:#2343d5;--on-accent:#fff;--danger:#a32e28;--danger-bg:#fff0eb;--display:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif;--s1:8px;--s2:12px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--s7:64px;--s8:112px;--radius:8px;--motion:180ms;--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--body)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation;-webkit-tap-highlight-color:#3155ff20}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{max-width:100%;display:block}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.045em;text-wrap:balance}h1{font-size:clamp(42px,6vw,88px);line-height:1.06}h2{font-size:clamp(34px,4.6vw,62px);line-height:1.12}h3{font-size:24px;line-height:1.25}p{max-width:75ch}em{font-style:normal;color:var(--accent)}::selection{color:var(--on-accent);background:var(--accent)}[hidden]{display:none!important}.wrap{width:min(100%,1440px);padding-inline:5.5%;margin-inline:auto}.skip{position:fixed;top:-150px;left:20px;background:var(--accent);color:var(--on-accent);padding:12px 20px;z-index:100}.skip:focus{top:12px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted);margin:0 0 24px;line-height:1.5}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;flex:none}.text-link,.inline-link{display:inline-flex;align-items:center;gap:18px;min-height:40px;font-size:14px}.text-link:hover,.inline-link:hover{color:var(--accent)}.button{display:inline-flex;justify-content:center;align-items:center;gap:20px;min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:4px;font-size:14px;line-height:1.5;font-weight:600;transition:background-color var(--motion),border-color var(--motion),color var(--motion),transform var(--motion)}.button.primary{color:var(--on-accent);background:var(--accent)}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.secondary{color:var(--text);background:transparent;border-color:var(--control)}.button.secondary:hover:not(:disabled){color:var(--text);background:var(--hover);border-color:var(--accent)}.button:active:not(:disabled){transform:translateY(1px)}.button>span[aria-hidden]{font-size:20px;line-height:1}.loading,.empty{border:1px solid var(--line);border-radius:var(--radius);padding:48px 24px;color:var(--muted)}.empty h3{color:var(--text);font-size:26px}.empty p{margin-inline:auto}.empty button{margin-top:12px}.loading{min-height:260px;display:grid;place-items:center;text-align:center}.loading[aria-busy=true]{background:var(--panel)}.tag{font-size:12px;border:1px solid var(--control);border-radius:4px;padding:4px 10px;color:var(--muted);overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:8px}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);padding:12px 22px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);font-size:14px;opacity:0;pointer-events:none;transition:opacity var(--motion),transform var(--motion);z-index:100;max-width:90vw;width:max-content}.toast.visible{opacity:1;transform:translate(-50%,0)}
input,select,textarea{width:100%;min-width:0;max-width:100%;color:var(--text);background:var(--field);border:1px solid var(--control);border-radius:5px;padding:12px;font-size:15px;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;min-height:110px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}input[type=file]{padding:10px;font-size:13px}input::file-selector-button{border:1px solid var(--control);background:var(--hover);color:var(--text);border-radius:4px;padding:8px 12px;margin-right:12px;cursor:pointer}form{display:grid;gap:20px}form label{display:grid;gap:8px;color:var(--text);font-size:14px}fieldset{min-width:0;margin:0;padding:0;border:0}fieldset:disabled{opacity:.6}.row{align-items:start;display:grid;grid-template-columns:1fr 1fr;gap:20px}.row>*{min-width:0}.field-hint{font-size:12px;color:var(--muted);margin:0}.field-error{font-size:13px;color:var(--danger);margin:0}.error-summary{padding:16px 20px;background:var(--danger-bg);border:1px solid #bd806c;border-radius:var(--radius);color:var(--danger);font-size:14px}.error-summary:focus{outline:2px solid var(--danger);outline-offset:3px}[aria-invalid=true]{border-color:var(--danger)}.notice{padding:18px 20px;border:1px solid var(--control);border-radius:var(--radius);background:var(--panel);color:var(--muted);font-size:14px}.checkbox{display:flex;align-items:center;gap:12px;min-height:44px}.checkbox input{flex:none}.danger{border:1px solid #b57662;background:transparent;color:var(--danger);border-radius:4px;padding:10px 16px;font-size:13px;min-height:44px}.danger:hover:not(:disabled){background:var(--danger-bg)}
dialog{width:min(840px,calc(100% - 32px));max-height:90vh;max-height:90dvh;padding:32px;background:var(--panel);color:var(--text);border:1px solid var(--control);border-radius:12px;box-shadow:0 28px 100px #141c3333;overscroll-behavior:contain}dialog::backdrop{background:#141c337a;backdrop-filter:blur(6px)}dialog[open]{animation:dialog-enter var(--motion) var(--ease)}.dialog-open{overflow:hidden}.dialog-top{position:sticky;top:-32px;background:var(--panel);padding-block:16px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);margin:-16px 0 24px}.dialog-top .eyebrow{margin:0}.close-dialog{display:grid;place-items:center;background:transparent;border:1px solid var(--control);color:var(--text);width:44px;height:44px;border-radius:4px;flex:none}.close-dialog:hover{color:var(--accent);border-color:var(--accent);background:var(--hover)}dialog h2{font-size:38px;margin-bottom:24px;overflow-wrap:anywhere}dialog h3{font-size:23px;margin-bottom:12px}dialog p{font-size:15px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.project-dialog img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:6px;margin-bottom:24px}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-block:32px}.case-grid>*{min-width:0}.case-scope{border-top:1px solid var(--line);padding-top:24px}.case-caption{font-size:12px;color:var(--muted)}
@keyframes dialog-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.wrap{padding-inline:6%}h1{font-size:clamp(40px,10vw,64px)}h2{font-size:38px}.row{grid-template-columns:1fr;gap:20px}dialog{padding:22px}.dialog-top{top:-22px;margin-top:-10px}.case-grid{grid-template-columns:1fr;gap:20px}dialog h2{font-size:32px}.button{padding:12px 18px}.eyebrow{font-size:11px}.toast{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
