:root{--paper:#f8f7f2;--ink:#181723;--purple:#5942a6;--lavender:#e4dbff;--lime:#e1f290;--line:#d9d6df;--muted:#605c6b;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--serif:Georgia,'Times New Roman',serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #7350d8;outline-offset:4px}
img{max-width:100%;height:auto}
.skip{position:fixed;z-index:10;left:1rem;top:-100px;background:white;padding:.6rem}
.skip:focus{top:1rem}
.shell{width:min(1280px,calc(100% - 112px));margin-inline:auto}
.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-inline:max(56px,calc((100vw - 1280px)/2));border-bottom:1px solid var(--line);background:var(--paper)}
.wordmark{display:inline-flex;align-items:center;gap:9px;line-height:.82;flex:none}
.wordmark>span{font:700 32px/.85 var(--serif);letter-spacing:-1.5px}
.wordmark small{display:block;font:700 8px/1.2 var(--mono);letter-spacing:1.18px;margin-top:6px}
.wordmark img{width:45px;height:42px;object-fit:contain}
nav{display:flex;gap:clamp(18px,3.1vw,52px);align-items:center;font-size:14px;font-weight:600}
nav a:hover,.text-link:hover{color:var(--purple)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:54px;padding:0 21px;border:1px solid transparent;font-weight:700;font-size:14px;transition:background .2s,color .2s;white-space:nowrap}
.button span{font-size:17px}
.button.small{min-height:42px;padding-inline:16px;gap:12px}
.dark{color:white;background:var(--ink)}
.dark:hover{background:var(--purple)}
.light{background:var(--lavender);color:var(--ink)}
.light:hover{background:var(--lime)}
.menu{display:none}
.hero{display:grid;grid-template-columns:1.09fr .91fr;gap:30px;align-items:center;padding-block:36px 38px;min-height:610px}
.hero-copy{padding-block:30px 44px;position:relative;z-index:1}
.eyebrow,.section-tag,.art-top,figcaption,.poster-index{font:700 11px/1.45 var(--mono);letter-spacing:.13em}
.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 28px}
.eyebrow i,.contact-note i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7455ce;flex:none}
.eyebrow b{width:17px;height:1px;background:#9b95a7}
h1,h2,h3,p,figure{margin:0}
h1{font-size:clamp(52px,6.25vw,102px);line-height:.96;letter-spacing:-.085em;font-weight:800}
h1 em,h2 em{font-family:var(--serif);font-weight:400;color:var(--purple);letter-spacing:-.085em}
.hero-prop{font-size:clamp(17px,1.6vw,23px);line-height:1.36;font-weight:600;letter-spacing:-.025em;margin:29px 0}
.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.text-link{font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:9px;text-decoration:underline;text-underline-offset:5px}
.hero-art{position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;min-height:520px;height:100%;max-height:650px;overflow:hidden;background-color:#ddd0fb;background-image:radial-gradient(ellipse at 52% 44%,#f0e9ff 4%,transparent 66%),linear-gradient(90deg,#7e66b020 1px,transparent 1px),linear-gradient(#7e66b020 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;border:1px solid #cec0eb}
.hero-art img{position:relative;z-index:1;width:92%;max-height:87%;object-fit:contain;filter:drop-shadow(0 10px 12px #2e175325)}
.orbit{position:absolute;inset:50% auto auto 50%;width:74%;aspect-ratio:1;border:1px solid #7354b953;border-radius:50%;transform:translate(-50%,-50%);z-index:-1}
.orbit.two{width:61%}.orbit.three{width:48%;border-style:dashed}
.art-top,figcaption{position:absolute;left:21px;right:21px;display:flex;justify-content:space-between;gap:10px;z-index:2;font-size:10px}
.art-top{top:18px}figcaption{bottom:17px;border-top:1px solid #7a62a86e;padding-top:11px}
.art-cross{position:absolute;top:25%;right:12%;font-size:31px;color:#6543af}
.method-strip{background:var(--ink);color:#f8f5ff}
.strip-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.strip-grid a{font-size:16px;font-weight:600;display:flex;align-items:center;gap:14px;padding:18px clamp(10px,2.5vw,32px);border-left:1px solid #4d465b}
.strip-grid a:first-child{padding-left:0;border-left:0}
.strip-grid a::after{content:'↗';margin-left:auto;color:#cbb8ff}
.strip-grid a:hover{color:var(--lavender)}
.strip-grid small{font:11px var(--mono);color:#cbb8ff}
.section{padding-block:105px}
.section-tag{margin-bottom:25px;color:var(--muted)}
.section-tag span{color:var(--purple);margin-right:5px}
.about{display:grid;grid-template-columns:1fr 2fr;gap:30px}
.about .section-tag{padding-top:12px}
h2{font-size:clamp(44px,5.7vw,83px);line-height:.99;letter-spacing:-.075em}
.about-content p,.section-intro p,.contact-grid>div>p{max-width:510px;font-size:17px;color:var(--muted)}
.about-content p{margin-top:25px}
.practice-section{background:#efedf4;border-block:1px solid #e3deed}
.section-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:end;margin-bottom:42px}
.section-intro p{padding-bottom:3px}
.practice-list{border-top:1px solid #ccc6d8}
details{border-bottom:1px solid #ccc6d8}
summary{list-style:none;display:grid;grid-template-columns:64px 1fr 32px;align-items:center;gap:12px;padding:19px 0;cursor:pointer;font-size:clamp(19px,2.55vw,34px);font-weight:700;letter-spacing:-.04em}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--purple)}
.row-num{font:12px var(--mono);color:var(--purple)}
.plus{position:relative;width:30px;height:30px;border:1px solid #c5bbda;border-radius:50%;display:grid;place-items:center}
.plus::before,.plus::after{content:'';position:absolute;background:var(--purple);width:11px;height:1px}
.plus::after{transform:rotate(90deg)}
details[open] .plus{background:var(--lavender)}
details[open] .plus::after{display:none}
.detail{padding:0 42px 24px 76px;color:var(--muted)}
.detail .outputs{margin:8px 0 10px;font-size:14px;color:var(--ink)}
.practice-cta{color:var(--purple)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.steps article{padding:22px;display:flex;flex-direction:column;min-height:210px;border-right:1px solid var(--line);scroll-margin-top:16px}
.steps article:last-child{border-right:0}
.steps article:target{background:var(--lavender)}
.steps article>span,.steps small{color:var(--purple);font:700 11px/1.5 var(--mono)}
.steps h3{font-size:29px;letter-spacing:-.06em;margin:12px 0 5px}
.steps p{font-size:14px;color:var(--muted);margin-bottom:14px}
.steps small{margin-top:auto}
.lab-section{background:#eeecdf;border-block:1px solid #dedbc9}
.concepts{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.poster{width:100%;min-height:300px;text-align:left;padding:24px;display:flex;flex-direction:column;justify-content:space-between;position:relative;isolation:isolate;overflow:hidden;border:0;color:var(--ink)}
.poster-lavender{background:#c9b4fc}.poster-lime{background:var(--lime)}
.poster-title{font-size:clamp(35px,5.45vw,78px);font-weight:800;line-height:.93;letter-spacing:-.08em;z-index:1}
.poster-title i{font:italic 400 1em/.9 var(--serif)}
.poster-mark{position:absolute;font-size:clamp(120px,23vw,330px);line-height:.8;right:-1%;top:16%;opacity:.15;transition:transform .25s;z-index:-1}
.poster:hover .poster-mark{transform:rotate(12deg)}
.poster-open{position:absolute;right:19px;bottom:18px;width:37px;height:37px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%}
.concept-caption{padding-top:12px}
.concept-caption h3{font-size:19px;letter-spacing:-.025em}
.concept-caption p{color:var(--muted);font-size:13px}
dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:36px;max-width:min(580px,calc(100% - 34px));max-height:90vh}
dialog::backdrop{background:#181723a0}
dialog h2{font-size:43px;margin-bottom:20px}
dialog p+p{margin-top:13px}
.dialog-close{position:absolute;top:10px;right:12px;background:none;border:0;font-size:28px;line-height:1}
.contact-section{background:var(--ink);color:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1.14fr;gap:55px}
.contact-grid h2 em,.contact-grid .section-tag span{color:#cbb8ff}
.contact-grid .section-tag,.contact-grid>div>p{color:#d4cdda}
.contact-grid>div>p{margin-top:23px}
.contact-note{font:12px var(--mono);display:flex;align-items:center;gap:10px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form label{display:block;font-size:13px;font-weight:700;min-width:0}
label span{color:#cbb8ff}
input,select,textarea{display:block;width:100%;color:var(--paper);background:#272533;border:1px solid #5d556e;border-radius:0;padding:11px 10px;margin-top:4px;font-size:15px}
input::placeholder,textarea::placeholder{color:#b6aebe}
textarea{resize:vertical}
.wide{grid-column:1/-1}
.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.privacy-note{margin:12px 0;font-size:12px;color:#cec4d8}
#brief-result:not(:empty){margin-top:12px;color:#e8f7ae}
#brief-result.error{color:#ffd3d3}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:25px;font-size:14px;color:var(--muted)}
footer .wordmark{color:var(--ink)}
@media(max-width:1050px){.shell{width:calc(100% - 64px)}.topbar{padding-inline:32px}.hero{min-height:0}.hero-art{min-height:430px}.actions{gap:15px}.section{padding-block:76px}}
@media(max-width:760px){html{scroll-padding-top:22px}.shell{width:calc(100% - 36px)}.topbar{height:65px;padding-inline:18px;position:relative}.menu{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:none;color:var(--ink);padding:6px 11px;font-weight:700;font-size:13px}.header-cta{display:none}nav{display:none;position:absolute;z-index:5;top:64px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:16px 18px;align-items:stretch;gap:0}nav.open{display:flex;flex-direction:column}nav a{padding:9px 4px}.hero{grid-template-columns:1fr;gap:10px;padding-block:0 19px}.hero-copy{padding:42px 0 18px}h1{font-size:clamp(48px,10.3vw,75px)}.hero-prop{margin:20px 0}.eyebrow{margin-bottom:20px}.hero-art{min-height:0;aspect-ratio:1.12;height:auto}.hero-art img{width:82%}.strip-grid a{gap:5px;font-size:12px;padding:13px 5px}.strip-grid a::after{display:none}.strip-grid small{font-size:9px}.about,.section-intro,.contact-grid{grid-template-columns:1fr;gap:16px}.about .section-tag{margin:0}.section{padding-block:56px}.section-intro{margin-bottom:23px}.steps{grid-template-columns:1fr 1fr}.steps article{min-height:185px;padding:15px}.steps article:nth-child(2){border-right:0}.steps article:nth-child(-n+2){border-bottom:1px solid var(--line)}summary{grid-template-columns:25px 1fr 30px;gap:8px}.detail{padding-left:33px;padding-right:12px}.concepts{grid-template-columns:1fr}.poster{min-height:230px}.footer-grid{flex-wrap:wrap}.footer-grid p{display:none}.contact-grid{gap:27px}}
@media(max-width:370px){.form-grid{grid-template-columns:1fr}.button{min-height:47px}.strip-grid a{font-size:11px}.strip-grid small{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.inbox h1{font-size:clamp(45px,7vw,90px)}
.inbox-intro{margin:18px 0 25px;color:var(--muted)}
.inbox-tools{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:14px}
.inbox select{width:auto;color:var(--ink);background:white;border-color:var(--line);margin:0}
.inquiry{padding:20px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.inquiry h2{font-size:28px;letter-spacing:-.04em;margin:0 0 7px}
.inquiry .meta{font-size:13px;color:var(--muted)}
.inquiry .brief{margin:12px 0;white-space:pre-wrap}
.inquiry-actions{display:flex;gap:15px;align-items:center}
#load-more{margin-top:20px}
[hidden]{display:none!important}
