@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/devis/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/devis/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/devis/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/devis/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/devis/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/devis/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devis/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/devis/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devis/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/devis/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devis/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/devis/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devis/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/devis/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devis/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/devis/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #232321;--ink-soft: #57544C;--ink-faint: #75716A;--paper: #F3EFE6;--paper-2: #EFE9DC;--surface: #FFFFFF;--line: #E8E2D5;--line-strong: #D9D2C1;--accent: #D85A30;--accent-deep: #B8431F;--accent-soft: #F8E7DB;--sage: #3E7A5B;--sage-soft: #E4EFE8;--red: #C0392B;--red-soft: #FBE7E4;--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font: "Hanken Grotesk Variable", "Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--gutter: clamp(16px, 4vw, 32px);--shadow: 0 1px 2px rgba(35,35,33,.04), 0 8px 24px -12px rgba(35,35,33,.18)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:6px}h1{font-family:var(--font-display);font-weight:650;letter-spacing:-.025em;line-height:1.06;margin:0;font-size:clamp(32px,4.6vw,52px);text-wrap:balance}p{margin:0}.q-mono{font-family:var(--font-mono)}.q-page{min-height:100vh;display:flex;flex-direction:column}.q-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--gutter);max-width:1180px;width:100%;margin:0 auto}.q-logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-display);font-size:18px;letter-spacing:-.01em}.q-logo b{font-weight:700}.q-back{font-size:14px;color:var(--ink-soft);text-decoration:none}.q-logo,.q-back{white-space:nowrap}@media (max-width: 420px){.q-logo{font-size:16px}.q-logo svg{width:26px;height:26px}.q-back{font-size:13px}}.q-back:hover{color:var(--ink);text-decoration:underline}.q-main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(16px,4vw,48px) var(--gutter) 64px}.q-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px);align-items:start}@media (max-width: 880px){.q-grid{grid-template-columns:1fr}}.q-intro{display:grid;gap:20px}.q-eyebrow{justify-self:start;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--accent-deep);background:var(--accent-soft);padding:7px 15px;border-radius:999px}.q-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #d85a3033}.q-lede{font-size:clamp(16px,1.9vw,19px);color:var(--ink-soft)}.q-steps{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:10px}.q-steps li{display:flex;align-items:center;gap:12px;font-weight:500}.q-steps span{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-content:center;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:13px}.q-note{font-size:14px;color:var(--ink-faint);border-top:1px solid var(--line-strong);padding-top:16px}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:clamp(18px,3vw,32px)}.q-narrow{max-width:640px;margin:0 auto;display:grid;gap:16px}.q-form{display:grid;gap:18px}.q-purpose{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.q-purpose legend{font-size:14px;font-weight:600;margin-bottom:8px;padding:0}.q-purpose label{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:12px;cursor:pointer;font-size:14.5px;line-height:1.35}.q-purpose label.on{border-color:var(--accent);background:var(--accent-soft)}.q-purpose input{accent-color:var(--accent);margin-top:2px}@media (max-width: 520px){.q-purpose{grid-template-columns:1fr}}.q-drop{position:relative;border:2px dashed var(--line-strong);border-radius:16px;background:var(--paper);padding:22px 16px 14px;text-align:center;transition:border-color .15s,background .15s}.q-drop.drag{border-color:var(--accent);background:var(--accent-soft)}.q-drop.has{border-style:solid;border-color:var(--sage);background:var(--sage-soft)}.q-drop.bad{border-color:var(--red);background:var(--red-soft)}.q-drop input{position:absolute;width:1px;height:1px;opacity:0}.q-drop label{display:grid;justify-items:center;gap:4px;cursor:pointer}.q-drop label svg{color:var(--accent);margin-bottom:4px}.q-drop label b{font-size:17px;word-break:break-all}.q-drop label span{color:var(--ink-soft);font-size:14px}.q-drop:focus-within{border-color:var(--accent)}.q-hint{margin-top:10px;font-size:13px;color:var(--ink-faint)}.q-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.q-field{display:grid;gap:6px;font-size:14px;font-weight:600}.q-field.wide{grid-column:1 / -1}.q-field em{font-style:normal;font-weight:400;color:var(--ink-faint)}.q-field input,.q-field textarea{width:100%;border:1.5px solid var(--line-strong);border-radius:10px;background:var(--surface);padding:11px 13px;font-weight:400;font-size:16px}.q-field textarea{resize:vertical;min-height:84px}.q-field input:focus,.q-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #d85a3026}.q-field.bad input{border-color:var(--red)}@media (max-width: 520px){.q-fields{grid-template-columns:1fr}}.q-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.q-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-soft);cursor:pointer}.q-consent input{accent-color:var(--accent);margin-top:4px;flex:none;width:17px;height:17px}.q-consent a{color:var(--accent-deep)}.q-consent.bad{color:var(--red)}.q-err{color:var(--red);font-size:13.5px;font-weight:500;font-style:normal;margin:6px 0 0}.q-field .q-err{margin:0;color:var(--red);font-weight:500}.q-form-err{background:var(--red-soft);border-radius:10px;padding:10px 14px;margin:0}.q-btn{width:100%;min-height:54px;border:0;border-radius:13px;background:var(--accent);color:#fff;font-weight:700;font-size:16px;cursor:pointer;transition:background .15s}.q-btn:hover:not(:disabled){background:var(--accent-deep)}.q-btn:disabled{cursor:progress;background:var(--accent-deep)}.q-progress{height:6px;border-radius:999px;background:var(--paper-2);overflow:hidden;margin-top:-8px}.q-progress div{height:100%;background:var(--accent);transition:width .2s}.q-part{display:grid;gap:22px}.q-thanks{background:var(--sage-soft);border:1px solid #c9dfd1;border-radius:16px;padding:16px 20px;display:grid;gap:4px}.q-thanks b{font-family:var(--font-display);font-size:20px;font-weight:650}.q-thanks p{color:var(--ink-soft)}.q-part-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px}.q-over{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.q-filename{font-size:clamp(22px,3.2vw,32px);font-weight:500;letter-spacing:-.01em;word-break:break-all}.q-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0}.q-facts div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 14px}.q-facts dt{font-size:12px;color:var(--ink-faint)}.q-facts dd{margin:0;font-size:15px;font-weight:500}.q-stage{height:min(68vh,620px);min-height:320px;border-radius:20px;background:#262624;box-shadow:var(--shadow);display:grid}.q-stage-msg{align-self:center;justify-self:center;max-width:520px;padding:24px;text-align:center;color:#b3afa3;display:grid;justify-items:center;gap:14px}.q-spin{width:28px;height:28px;border-radius:50%;border:3px solid #3a3a35;border-top-color:var(--accent);animation:q-spin 1s linear infinite}@keyframes q-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.q-spin{animation:none}}.q-link{justify-self:start;color:var(--accent-deep);font-weight:600}
