:root{--df-ink:#173d36;--df-muted:#596c63;--df-paper:#f7f4eb;--df-card:#fffef9;--df-line:#d7dfd2;--df-accent:#c56335;--df-radius:18px;--df-gap:24px;font-family:Arial,Helvetica,sans-serif;color:var(--df-ink)}*{box-sizing:border-box}body{margin:0;background:var(--df-paper);font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:4px}button,.df-button{border:0;border-radius:9px;padding:13px 20px;background:var(--df-ink);color:white;font:inherit;font-weight:700;cursor:pointer;display:inline-block;text-decoration:none}button.secondary,.df-button.secondary{background:transparent;border:1px solid var(--df-ink);color:var(--df-ink)}button:disabled{opacity:.6;cursor:wait}button:hover,.df-button:hover{filter:brightness(1.1)}:focus-visible{outline:3px solid #c56335;outline-offset:4px}header,footer{padding:24px 5vw}header{display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--df-line)}header nav{display:flex;gap:22px;flex-wrap:wrap}main{max-width:1240px;margin:auto;padding:32px 5vw 80px}h1{font-size:clamp(2.5rem,5vw,4.9rem);letter-spacing:-.05em;line-height:1.04;margin:20px 0 28px;max-width:840px}h2{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.2;letter-spacing:-.035em;margin-top:56px}h3{line-height:1.3}p{max-width:70ch}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}.df-hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:36px;padding:36px 0}.df-hero p{font-size:19px;color:var(--df-muted)}.df-art{background:#dce5d6;border-radius:160px 160px 26px 26px;padding:16px;position:relative}.df-art svg{width:100%;display:block}.df-art small{display:block;text-align:center;color:var(--df-ink)}.df-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.df-card,.df-tool{background:var(--df-card);border:1px solid var(--df-line);border-radius:var(--df-radius);padding:24px}.df-card p{color:var(--df-muted)}.df-card .number{color:var(--df-accent);font-size:13px;letter-spacing:.1em}.df-quote{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:900px}.df-quote label,.df-tool label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}.df-quote>p,.df-quote>button,.df-quote>.df-trap{grid-column:1/-1}.df-tool input,.df-tool select,.df-tool textarea,.df-quote input,.df-quote textarea{font:inherit;border:1px solid #aab9a7;border-radius:8px;padding:12px;color:var(--df-ink);background:white;min-width:0;width:100%}input[type=checkbox]{width:auto}.df-tool input[type=color]{height:48px;padding:3px}.df-tool .controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.df-tool .actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.df-tool output{display:block;white-space:pre-wrap;margin-top:20px}.df-tool table{border-collapse:collapse;width:100%;min-width:500px}.df-tool th,.df-tool td{padding:9px;text-align:left;border-bottom:1px solid var(--df-line)}.table-scroll{overflow:auto;max-width:100%}.df-tool canvas{width:100%;max-width:480px;background:#e7ebe5;border-radius:12px;display:block}.df-designer{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.df-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.df-review{padding:10px 5vw;background:#e6d8bd;color:#173d36;font-size:13px;border-bottom:1px solid #d0c09e}.df-note{border-left:3px solid var(--df-accent);padding-left:18px;color:var(--df-muted)}footer{border-top:1px solid var(--df-line);font-size:14px}details{padding:16px 0;border-bottom:1px solid var(--df-line)}summary{cursor:pointer;font-weight:700}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}@media(max-width:768px){.df-hero,.df-designer{grid-template-columns:1fr}.df-grid{grid-template-columns:1fr 1fr}.df-art{max-width:450px;margin:auto}.df-tool{padding:18px}header{align-items:flex-start}}@media(max-width:520px){.df-grid,.df-quote,.df-tool .controls{grid-template-columns:1fr}header{flex-direction:column}main{padding-top:20px}.df-hero{padding-top:10px}button{padding:12px 16px}.df-quote>p,.df-quote>button{grid-column:auto}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}@media print{header,footer,.actions,button,.df-review{display:none}body{background:white}.df-tool{border:0}main{max-width:none;padding:0}}
