@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{color-scheme:light;--paper:#f4f0e8;--paper-raised:#faf8f2;--paper-deep:#eae4d8;--ink:#20231f;--ink-soft:#474b43;--muted:#77786f;--line:#d9d3c7;--accent:#a7432d;--accent-dark:#873421;--olive:#65704e;--display:'Manrope',sans-serif;--body:'DM Sans',sans-serif;--mono:'DM Mono',monospace;--shell:1180px;--ease:cubic-bezier(.2,.75,.25,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}::selection{background:#c7775f;color:#201d19}a{color:inherit;text-decoration:none;text-underline-offset:4px}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img,svg{max-width:100%}.section-shell{width:min(var(--shell),calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:8px;left:8px;z-index:20;transform:translateY(-150%);background:var(--ink);color:var(--paper-raised);padding:12px 18px}.skip-link:focus{transform:none}.site-header{height:78px;padding-inline:max(48px,calc((100vw - var(--shell))/2));border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:10}.wordmark{display:flex;align-items:center;gap:10px}.wordmark-mark,.footer-mark{font:800 23px/1 var(--display);letter-spacing:-.09em}.wordmark-mark span,.footer-mark span{color:var(--accent)}.wordmark-name{font-size:14px;font-weight:600;letter-spacing:-.02em}.site-nav{display:flex;align-items:center;gap:34px;font-size:13px;color:var(--ink-soft)}.site-nav>a{transition:color .2s ease}.site-nav>a:hover,.about-links a:hover{color:var(--accent)}.site-nav .nav-contact{color:var(--ink);border:1px solid var(--line);padding:9px 14px;border-radius:3px}.nav-contact span,.text-link span,.project-link span,.about-links span{color:var(--accent)}.menu-toggle{display:none}
.hero{position:relative;min-height:610px;display:grid;grid-template-columns:1fr .92fr;align-items:center;gap:64px;padding-top:60px;padding-bottom:82px}.hero-copy{max-width:595px;position:relative;z-index:1}.availability{display:flex;align-items:center;gap:10px;color:var(--olive);font:500 11px/1.5 var(--mono);letter-spacing:.015em;margin:0 0 29px}.status-dot{width:8px;height:8px;border-radius:50%;background:#728558;box-shadow:0 0 0 4px #7285581b}.hero h1,.contact h2{font:700 clamp(45px,5.4vw,70px)/1.08 var(--display);letter-spacing:-.065em;margin:0;max-width:660px;text-wrap:balance}.headline-mark{position:relative;z-index:0}.headline-mark::after{content:"";position:absolute;z-index:-1;left:0;right:-5px;bottom:.07em;height:.28em;background:#c7775f4a;transform:rotate(-1.2deg)}.hero-intro{max-width:430px;margin:26px 0 29px;color:var(--ink-soft);font-size:17px;line-height:1.72}.hero-actions{display:flex;align-items:center;gap:26px}.button{min-height:48px;padding:0 20px;display:inline-flex;align-items:center;gap:18px;font-size:13px;font-weight:600;transition:transform .2s var(--ease),background .2s ease,color .2s ease}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px) scale(.99)}.button-dark{background:var(--ink);color:var(--paper-raised)}.button-dark:hover{background:var(--accent-dark)}.text-link{font-size:13px;font-weight:600}.hero-art{align-self:center;background:var(--paper-raised);border:1px solid var(--line);padding:17px 20px 13px;box-shadow:0 22px 50px #39352b12;transform:rotate(1deg)}.art-topline,.art-caption{display:flex;justify-content:space-between;color:var(--muted);font:10px var(--mono);letter-spacing:.04em}.system-map{display:block;width:100%;margin:14px 0 4px}.map-route{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:5 5}.map-node{fill:var(--paper-raised);stroke:var(--olive);stroke-width:1.5}.node-live{stroke:var(--accent)}.node-observe,.node-improve{fill:#ebe6d9}.map-node-dot{fill:var(--olive)}.map-card{fill:#eeeadf;stroke:#ccc4b7}.map-card-line{fill:none;stroke:#a7a294;stroke-width:2}.map-check{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.map-label{fill:var(--ink);font:500 11px var(--mono);letter-spacing:.05em}.map-small{fill:var(--muted);font:10px var(--mono);letter-spacing:.08em}.map-note{fill:var(--muted);font:13px var(--body)}.hero-coordinate{position:absolute;bottom:23px;left:0;color:var(--muted);font:10px var(--mono);letter-spacing:.03em}.hero-coordinate span{margin-left:14px;color:#9c998d}
.work{padding-top:96px;padding-bottom:122px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:39px}.section-index{font:500 10px/1.5 var(--mono);letter-spacing:.1em;color:var(--accent);margin:0 0 16px}.section-heading h2,.about h2{font:700 clamp(34px,4.2vw,48px)/1.15 var(--display);letter-spacing:-.055em;margin:0;text-wrap:balance}.section-aside{max-width:340px;color:var(--muted);font-size:14px;margin:0 0 3px}.project-filters{display:flex;gap:8px;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:8px}.filter-button{background:transparent;border:1px solid transparent;padding:9px 13px;color:var(--muted);font-size:12px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.filter-button:hover{color:var(--ink);border-color:var(--line)}.filter-button.is-active{background:var(--ink);color:var(--paper-raised)}.filter-button span{font:10px var(--mono);margin-left:8px;color:#d09a83}.project-list{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.project{min-width:0;padding:31px 0 35px;border-bottom:1px solid var(--line);animation:project-in .38s var(--ease) both}.project-featured{grid-column:1/-1;display:grid;grid-template-columns:1.08fr .92fr;gap:45px;padding-block:31px 39px}.project-visual{min-height:228px;position:relative;overflow:hidden;background:var(--paper-deep)}.project-featured .project-visual{min-height:280px}.visual-stamp{position:absolute;left:16px;bottom:13px;color:var(--muted);font:9px var(--mono);letter-spacing:.07em}.visual-window{position:absolute;inset:30px 24px 35px;background:#f6f3eb;border:1px solid #cfc7b9;box-shadow:0 12px 25px #51483a12;display:flex;flex-direction:column}.window-bar{height:34px;border-bottom:1px solid #ded8cc;display:flex;align-items:center;gap:5px;padding:0 10px;color:#89877d;font:8px var(--mono);letter-spacing:.04em}.window-bar i{width:5px;height:5px;border-radius:50%;background:#b7b1a6}.window-bar span{margin-left:auto}.flow-row{display:flex;align-items:center;justify-content:center;flex:1;padding:14px 10px}.flow-block{width:27%;padding:13px 4px;background:#e9e5db;text-align:center;color:#5e6158;font:9px/1.6 var(--mono)}.flow-accent{background:#efe0d7;color:#813e2b}.flow-connector{position:relative;width:8%;border-top:1px dashed #a76350}.flow-connector::after{content:"";position:absolute;right:0;top:-3px;border-left:4px solid #a76350;border-top:3px solid transparent;border-bottom:3px solid transparent}.flow-foot{display:flex;justify-content:space-between;padding:9px 11px;border-top:1px solid #ded8cc;color:#89877d;font:8px var(--mono);letter-spacing:.04em}.flow-state{color:var(--olive)}.flow-state i,.chat-live{display:inline-block;width:5px;height:5px;border-radius:50%;background:#708158;margin-right:4px}.project-content{display:flex;flex-direction:column;align-items:flex-start}.project-meta{display:flex;justify-content:space-between;width:100%;gap:14px;color:var(--muted);font:9px var(--mono);letter-spacing:.06em}.project h3{font:650 clamp(20px,2.35vw,26px)/1.3 var(--display);letter-spacing:-.04em;margin:21px 0 10px;text-wrap:balance}.project-content>p,.compact-content>p{color:var(--ink-soft);font-size:14px;line-height:1.75;margin:0 0 18px;max-width:57ch}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 17px}.project-tags span{border:1px solid var(--line);padding:5px 8px;color:#65665e;font:9px var(--mono)}.project-link{margin-top:auto;font-size:12px;font-weight:600}.project-link:hover,.contact-side>a:hover{color:var(--accent-dark);text-decoration:underline}.project-link span{margin-left:5px}.visual-assistant{background:#e6e5d8}.assistant-orbit{position:absolute;border:1px solid #aeb1a0;border-radius:50%;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-28deg)}.orbit-one{width:205px;height:103px}.orbit-two{width:255px;height:137px;transform:translate(-50%,-50%) rotate(32deg);border-color:#c2a28f}.assistant-core{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#f1eadd;font:500 14px var(--mono);box-shadow:0 0 0 9px #20231f0b}.orbit-tag{position:absolute;background:var(--paper-raised);padding:4px 6px;color:#65665e;font:8px var(--mono);letter-spacing:.04em}.tag-input{left:17%;top:25%}.tag-tools{right:14%;top:28%}.tag-output{left:45%;bottom:19%}.visual-chat{background:#e5dfd4}.chat-window{position:absolute;inset:25px 13% 30px;background:#f7f4ed;border:1px solid #d0c8bb;padding:12px 14px;display:flex;flex-direction:column}.chat-head{display:flex;align-items:center;gap:7px;color:#76766e;font-size:9px;border-bottom:1px solid #e4ded3;padding-bottom:9px}.chat-avatar{width:18px;height:18px;display:grid;place-items:center;background:#23251f;color:#f5f1e9;font:9px var(--mono)}.chat-live{margin-left:auto}.chat-prompt{align-self:flex-end;max-width:74%;margin-top:22px;background:#ebe6da;color:#515248;padding:8px 10px;font-size:9px}.chat-response{height:42px;padding:14px 4px}.response-cursor{display:block;width:22px;border-top:1px solid var(--accent)}.chat-compose{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border:1px solid #ddd6c8;padding:7px 8px;color:#99958a;font-size:8px}.send-arrow{background:var(--ink);color:white;width:18px;height:18px;text-align:center;line-height:18px;font-size:12px}.visual-data{background:#e9e2d5}.data-sheet{position:absolute;inset:22px 14% 28px;background:#f8f5ed;padding:16px 18px;border:1px solid #d1c9ba}.sheet-title{font:9px var(--mono);letter-spacing:.06em;color:var(--accent)}.sheet-row{display:grid;grid-template-columns:30px 1fr 16px;padding:8px 0;border-bottom:1px solid #e4ded2;font-size:10px;color:#56584f}.sheet-row span:first-child{font:9px var(--mono);color:#989487}.sheet-row span:last-child{text-align:right;color:var(--accent)}.sheet-chart{height:45px;display:flex;align-items:end;gap:8px;padding:4px 3px 0}.sheet-chart i{display:block;flex:1;height:var(--bar);background:#8a8d77}.sheet-chart i:nth-child(3n){background:#b1664c}.project-compact{display:flex;gap:16px;align-items:flex-start;padding-block:24px}.compact-index{font:11px var(--mono);color:var(--accent);padding-top:4px}.compact-content{flex:1}.compact-content h3{font-size:18px;max-width:31ch;margin:11px 0 7px}.compact-content>p{font-size:13px;margin-bottom:12px}.project-compact .project-tags{margin-bottom:0}.compact-link{width:32px;height:32px;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);font-size:16px;flex:none;transition:background .2s,color .2s}.compact-link:hover{background:var(--ink);color:var(--paper-raised)}.empty-state{padding:38px 0;color:var(--muted);font-size:14px}.empty-state button{border:0;background:none;color:var(--accent);text-decoration:underline;cursor:pointer}.project[hidden]{display:none}@keyframes project-in{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.approach{background:#eae5d9;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.approach-inner{padding-block:103px 110px;display:grid;grid-template-columns:.82fr 1.18fr;gap:90px}.approach-heading h2{font:700 clamp(37px,4.3vw,51px)/1.13 var(--display);letter-spacing:-.06em;margin:0 0 20px}.approach-heading h2 span{color:var(--accent)}.approach-heading>p:last-child{max-width:36ch;color:var(--ink-soft);font-size:14px;line-height:1.8}.approach-steps{list-style:none;padding:0;margin:0}.approach-steps li{min-height:108px;display:grid;grid-template-columns:40px 1fr 24px;gap:16px;align-items:start;padding:22px 0;border-bottom:1px solid #d2ccbf}.approach-steps li:first-child{border-top:1px solid #d2ccbf}.step-marker{color:var(--accent);font:10px var(--mono);padding-top:5px}.approach-steps h3{font:650 17px/1.4 var(--display);letter-spacing:-.025em;margin:0 0 6px}.approach-steps p{color:#65665e;font-size:13px;line-height:1.7;margin:0;max-width:48ch}.step-glyph{color:#999185;font:19px var(--mono);text-align:right}.about{padding-block:91px 100px}.about-coordinate{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:13px;color:var(--muted);font:9px var(--mono);letter-spacing:.05em}.about-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;padding-top:45px}.about-title{position:relative}.about h2{font-size:clamp(32px,3.8vw,43px)}.about-monogram{position:absolute;left:0;bottom:-43px;width:105px;height:105px;border:1px solid #bcb4a5;border-radius:50%;display:grid;place-items:center;color:var(--olive);font:500 23px var(--mono);letter-spacing:-.08em;transform:rotate(-12deg)}.about-monogram span{position:absolute;right:11px;top:13px;font-size:14px;color:var(--accent)}.about-copy{max-width:560px}.about-copy>p{color:var(--ink-soft);font-size:15px;line-height:1.85;margin:0 0 17px}.about-links{display:flex;gap:24px;padding-top:12px;font-size:12px;font-weight:600}.contact{position:relative;background:var(--ink);color:var(--paper);padding:70px 8% 33px;display:grid;grid-template-columns:1.1fr .9fr;gap:44px;overflow:hidden}.contact::before{content:"";position:absolute;right:14%;top:-130px;width:310px;height:310px;border:1px solid #f4f0e81c;border-radius:50%;box-shadow:0 0 0 45px #f4f0e80a,0 0 0 90px #f4f0e807}.contact .section-index{color:#d18b72}.contact h2{font-size:clamp(46px,5.8vw,68px);margin-bottom:27px}.contact h2 span{color:#d18b72}.button-paper{background:var(--paper);color:var(--ink)}.button-paper:hover{background:#e8dccc}.contact-side{position:relative;z-index:1;align-self:center;max-width:330px;padding-top:20px}.contact-stamp{display:grid;place-items:center;width:68px;height:68px;border:1px solid #d9ae96;border-radius:50%;color:#d9ae96;text-align:center;font:9px/1.5 var(--mono);transform:rotate(10deg);margin-bottom:24px}.contact-side p{font-size:14px;color:#c4c1b7;line-height:1.8;margin:0 0 18px}.contact-side>a{color:#e3b39d;font:12px var(--mono)}.contact-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #f4f0e82e;margin-top:22px;padding-top:16px;color:#999a90;font:9px var(--mono);letter-spacing:.06em}.site-footer{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:10px}.footer-mark{color:var(--ink);font-size:20px}.back-top{color:var(--ink-soft)}.back-top:hover{color:var(--accent)}
@media(min-width:1500px){.hero{min-height:670px}.section-shell{width:min(var(--shell),calc(100% - 128px))}}@media(max-width:900px){.section-shell{width:calc(100% - 56px)}.site-header{padding-inline:28px}.hero{gap:30px;grid-template-columns:1fr .88fr;min-height:570px}.hero h1{font-size:clamp(43px,6.2vw,60px)}.hero-art{padding-inline:13px}.project-featured{gap:27px}.approach-inner{gap:45px}.about-layout{gap:46px}}@media(max-width:680px){html{scroll-padding-top:72px}.section-shell{width:calc(100% - 40px)}.site-header{height:66px;padding-inline:20px}.menu-toggle{display:grid;gap:5px;justify-items:center;width:38px;height:38px;align-content:center;border:1px solid var(--line);background:transparent;border-radius:2px;cursor:pointer}.menu-toggle span{height:1px;width:15px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}.site-nav{display:none;position:absolute;top:65px;left:0;right:0;background:var(--paper-raised);padding:15px 20px 20px;border-bottom:1px solid var(--line);align-items:stretch;gap:0;box-shadow:0 14px 22px #302b2010}.site-nav.is-open{display:flex;flex-direction:column}.site-nav>a{padding:13px 3px;border-bottom:1px solid var(--line)}.site-nav .nav-contact{border:0;padding:13px 3px}.hero{grid-template-columns:1fr;gap:30px;padding-top:61px;padding-bottom:69px;min-height:0}.availability{font-size:9px;margin-bottom:23px}.hero h1{font-size:clamp(43px,11vw,60px)}.hero-intro{font-size:15px;margin:20px 0 22px}.hero-actions{gap:20px}.button{min-height:45px;padding-inline:15px}.text-link{font-size:11px}.hero-art{width:100%;max-width:500px;margin:0 auto;transform:rotate(.4deg)}.hero-coordinate{bottom:19px;font-size:8px}.work{padding-top:70px;padding-bottom:78px}.section-heading{display:block;margin-bottom:26px}.section-heading h2{font-size:36px}.section-aside{font-size:13px;margin-top:14px}.project-filters{overflow-x:auto;gap:4px;margin-right:-20px;padding-right:20px;scrollbar-width:none}.project-filters::-webkit-scrollbar{display:none}.filter-button{white-space:nowrap;padding:8px 9px;font-size:11px}.project-list{grid-template-columns:1fr}.project-featured{grid-column:auto;grid-template-columns:1fr;gap:20px}.project-featured .project-visual{min-height:225px}.project-visual{min-height:215px}.project h3{font-size:22px}.project-content>p{font-size:13px}.project{padding-block:25px 29px}.project-compact{gap:12px}.compact-content h3{font-size:17px}.approach-inner{padding-block:71px 73px;grid-template-columns:1fr;gap:28px}.approach-heading h2{font-size:40px}.approach-steps li{grid-template-columns:28px 1fr 18px;gap:11px;min-height:100px;padding-block:18px}.approach-steps h3{font-size:15px}.approach-steps p{font-size:12px}.about{padding-block:65px 82px}.about-coordinate{font-size:8px;gap:10px}.about-layout{grid-template-columns:1fr;gap:25px;padding-top:30px}.about h2{font-size:35px}.about-monogram{width:65px;height:65px;font-size:16px;left:auto;right:2px;top:0;bottom:auto}.about-monogram span{right:4px;top:3px;font-size:10px}.about-copy>p{font-size:14px}.contact{padding:48px 24px 22px;grid-template-columns:1fr;gap:28px}.contact h2{font-size:52px}.contact-side{padding:0;max-width:290px}.contact-stamp{width:56px;height:56px;font-size:8px;margin-bottom:15px}.contact-bottom{margin-top:8px;font-size:8px}.site-footer{min-height:86px;display:grid;grid-template-columns:auto 1fr auto;gap:9px 16px;padding-block:14px;font-size:9px}.site-footer>span:nth-of-type(1){grid-column:2/4}.site-footer>span:nth-of-type(2){grid-column:1/3;grid-row:2}.back-top{grid-column:3;grid-row:2;text-align:right}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

:root{--muted:#66665e}
.hero h1,.contact h2{letter-spacing:-.04em}
.section-heading h2,.about h2,.approach-heading h2{letter-spacing:-.04em}
.wordmark-mark,.about-monogram{letter-spacing:-.04em}
.art-topline,.art-caption,.section-index,.visual-stamp,.project-meta,.project-tags span,.window-bar,.flow-block,.flow-foot,.orbit-tag,.chat-head,.chat-avatar,.chat-prompt,.chat-compose,.sheet-title,.sheet-row span:first-child,.step-marker,.about-coordinate,.contact-bottom,.contact-stamp,.hero-coordinate{font-size:11px}
.availability{font-size:11px}
.sheet-chart i:nth-child(1){height:36%}.sheet-chart i:nth-child(2){height:62%}.sheet-chart i:nth-child(3){height:48%}.sheet-chart i:nth-child(4){height:81%}.sheet-chart i:nth-child(5){height:67%}.sheet-chart i:nth-child(6){height:100%}.sheet-chart i:nth-child(7){height:74%}.sheet-chart i:nth-child(8){height:89%}
@media(max-width:680px){.availability,.hero-coordinate,.about-coordinate{font-size:10px}.contact-bottom,.site-footer{font-size:10px}}
.hero-coordinate span,.window-bar,.flow-block,.flow-foot,.chat-head,.chat-avatar,.chat-compose,.sheet-row span:first-child,.step-glyph{color:#5f6058}
.contact-bottom{color:#c4c1b7}

:root{--paper:#ffffff;--paper-raised:#ffffff;--paper-deep:#ffffff;--ink:#121317;--ink-soft:#45474d;--muted:#45474d;--line:rgba(69,71,77,.22);--accent:#121317;--accent-dark:#45474d;--olive:#45474d;--display:'Google Sans Flex','Google Symbols',Arial,sans-serif;--body:'Google Sans Flex','Google Symbols',Arial,sans-serif;--mono:'Google Sans Flex','Google Symbols',Arial,sans-serif}
::selection{background:#45474d;color:#ffffff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.typing-visual::after{content:"";display:inline-block;height:.82em;margin-left:.1em;border-right:2px solid var(--ink);vertical-align:-.06em;animation:typing-caret .8s steps(2,end) infinite}
.typing-visual.is-complete::after{opacity:0}
@keyframes typing-caret{50%{opacity:0}}
.site-nav>a:hover,.about-links a:hover,.text-link:hover,.project-link:hover,.back-top:hover{color:var(--accent-dark)}
.site-nav .nav-contact:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#ffffff}
.button-dark:hover,.filter-button.is-active{background:var(--accent-dark);color:#ffffff}
.button-paper:hover{background:#45474d;color:#ffffff}
.project-visual{background:rgba(69,71,77,.06);transition:background-color .24s ease,border-color .24s ease}
.project:hover .project-visual{background:rgba(69,71,77,.12)}
.hero-art{border-color:var(--line);box-shadow:0 22px 50px rgba(18,19,23,.1)}
.headline-mark::after{background:rgba(69,71,77,.17)}
.approach{background:rgba(69,71,77,.055);border-color:var(--line)}
.approach-steps li,.approach-steps li:first-child{border-color:var(--line)}
.approach-steps p,.project-content>p,.compact-content>p,.about-copy>p,.section-aside{color:var(--ink-soft)}
.project-tags span,.compact-link,.filter-button:hover{border-color:var(--line)}
.project-tags span,.project-meta,.visual-stamp,.art-topline,.art-caption,.section-index,.availability,.about-coordinate,.hero-coordinate,.contact-bottom,.step-marker{color:var(--ink-soft)}
.visual-window,.data-sheet,.chat-window{background:#ffffff;border-color:var(--line)}
.window-bar,.flow-foot,.chat-head,.chat-compose,.data-sheet .sheet-row,.project-filters{border-color:var(--line)}
.window-bar,.flow-foot,.chat-head,.chat-avatar,.chat-compose,.sheet-row span:first-child,.flow-block,.step-glyph,.hero-coordinate span{color:var(--ink-soft)}
.flow-block,.flow-accent,.orbit-tag,.chat-prompt,.node-observe,.node-improve,.map-card{background:rgba(69,71,77,.07)}
.flow-accent{color:var(--ink)}
.system-map defs pattern path{stroke:rgba(69,71,77,.14)}
.system-map marker path{fill:var(--ink)}
.map-card{fill:rgba(69,71,77,.07);stroke:rgba(69,71,77,.35)}
.map-card-line{stroke:rgba(69,71,77,.5)}
.map-node,.node-live{stroke:var(--ink-soft)}
.map-node-dot,.map-check{fill:var(--ink)}
.map-check{stroke:var(--ink)}
.map-route{stroke:var(--ink-soft)}
.map-label,.map-small,.map-note{fill:var(--ink-soft)}
.assistant-orbit{border-color:rgba(69,71,77,.55)}
.orbit-two{border-color:rgba(69,71,77,.32)}
.assistant-core,.send-arrow{background:var(--ink);color:#ffffff}
.flow-state,.chat-live{color:var(--ink-soft);background:var(--ink-soft)}
.sheet-chart i,.sheet-chart i:nth-child(3n){background:var(--ink-soft)}
.contact{background:var(--ink);color:#ffffff}
.contact::before{border-color:rgba(255,255,255,.12);box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.02)}
.contact .section-index,.contact h2 span,.contact-side>a{color:#ffffff}
.contact-side p,.contact-bottom{color:rgba(255,255,255,.72)}
.contact-stamp{border-color:#ffffff;color:#ffffff}
.site-footer{color:var(--ink-soft)}
.status-dot,.window-bar i{background:var(--ink-soft);box-shadow:0 0 0 4px rgba(69,71,77,.12)}
.node-observe,.node-improve{fill:rgba(69,71,77,.07)}
.flow-connector{border-color:var(--ink-soft)}
.flow-connector::after{border-left-color:var(--ink-soft)}
.sheet-row{color:var(--ink-soft)}
.assistant-core{box-shadow:0 0 0 9px rgba(18,19,23,.06)}
.headline-mark{background:linear-gradient(105deg,#b8f36b 2%,#75dfaa 49%,#49c8f0 100%);background-size:180% 100%;background-position:0 50%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:gradient-drift 7s ease-in-out infinite alternate}
.headline-mark .typing-visual{background:inherit;background-clip:text;-webkit-background-clip:text;color:transparent}
.headline-mark::after{background:linear-gradient(105deg,rgba(184,243,107,.2),rgba(73,200,240,.18))}
.map-route{stroke-dasharray:5 5;animation:route-flow 18s linear infinite}
.map-node-dot{transform-box:fill-box;transform-origin:center;animation:node-pulse 2.8s ease-in-out infinite}
.node-improve{animation-delay:1.3s}
.button,.filter-button,.nav-contact,.compact-link{border-radius:999px}
.button-dark:hover,.button-paper:hover{box-shadow:0 7px 22px rgba(18,19,23,.18)}
.project-visual{isolation:isolate}
.project-featured .project-visual::before{content:"";position:absolute;inset:4% 9%;z-index:-1;background:radial-gradient(ellipse at 72% 22%,rgba(73,200,240,.17),transparent 56%),radial-gradient(ellipse at 31% 76%,rgba(184,243,107,.17),transparent 55%);filter:blur(20px);opacity:.8;transition:opacity .3s ease,transform .45s ease}
.project-featured:hover .project-visual::before{opacity:1;transform:scale(1.08)}
.visual-window,.assistant-orbit,.chat-window,.data-sheet{transition:transform .3s cubic-bezier(.2,.75,.25,1),border-color .25s ease,box-shadow .25s ease}
.project:hover .visual-window,.project:hover .chat-window,.project:hover .data-sheet{transform:translateY(-4px);border-color:var(--ink-soft);box-shadow:0 15px 32px rgba(18,19,23,.1)}
.project:hover .assistant-core{box-shadow:0 0 0 10px rgba(73,200,240,.17),0 0 30px rgba(184,243,107,.22)}
.contact{grid-template-columns:1fr;gap:28px}
.contact::after{content:"";position:absolute;inset:0 0 0 48%;pointer-events:none;background-image:radial-gradient(rgba(73,200,240,.72) .8px,transparent .9px),radial-gradient(rgba(184,243,107,.64) .7px,transparent .8px);background-size:31px 31px,53px 53px;background-position:0 0,14px 19px;mask-image:linear-gradient(110deg,transparent 4%,#000 100%);opacity:.52;animation:star-drift 24s linear infinite}
.contact-intro,.contact-options,.contact-bottom{position:relative;z-index:1}
.contact h2{font-size:clamp(42px,5.5vw,65px);margin:0}
.contact h2 span{background:linear-gradient(105deg,#b8f36b,#49c8f0);background-size:160% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:gradient-drift 7s ease-in-out infinite alternate}
.contact-options{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}
.contact-option{min-height:200px;padding:23px 27px 24px 0;display:flex;flex-direction:column;align-items:flex-start;transition:transform .25s ease,background-color .25s ease}
.contact-option+ .contact-option{padding-left:28px;border-left:1px solid rgba(255,255,255,.25)}
.contact-option:hover{transform:translateY(-4px);background:rgba(255,255,255,.055)}
.option-kicker{color:rgba(255,255,255,.68);font:500 11px var(--mono);letter-spacing:.07em}
.option-title{margin-top:24px;font:650 clamp(19px,2.4vw,26px)/1.25 var(--display);letter-spacing:-.025em}
.option-detail{max-width:42ch;margin-top:8px;color:rgba(255,255,255,.72);font-size:13px;line-height:1.65}
.option-action{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:20px;color:#b8f36b;font-size:12px;font-weight:600;transition:color .2s ease,transform .2s ease}
.contact-option:hover .option-action{color:#49c8f0;transform:translateX(3px)}
.contact .contact-bottom{margin-top:0}
.reveal-on-view{opacity:0;transform:translateY(18px);filter:blur(3px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.25,1),filter .65s ease}
.reveal-on-view.is-visible{opacity:1;transform:none;filter:none}
.project-list>.project:nth-child(2),.approach-steps li:nth-child(2),.contact-options .contact-option:nth-child(2){transition-delay:70ms}
.project-list>.project:nth-child(3),.approach-steps li:nth-child(3){transition-delay:130ms}
.project-list>.project:nth-child(4){transition-delay:190ms}
.project-list>.project:nth-child(5){transition-delay:250ms}
.project-list>.project:nth-child(6){transition-delay:310ms}
@keyframes gradient-drift{to{background-position:100% 50%}}
@keyframes route-flow{to{stroke-dashoffset:-100}}
@keyframes node-pulse{50%{opacity:.45;transform:scale(.72)}}
@keyframes star-drift{to{background-position:31px 31px,67px 72px}}
@media(max-width:680px){.contact-options{grid-template-columns:1fr}.contact-option,.contact-option+.contact-option{min-height:175px;padding:20px 0;border-left:0}.contact-option+.contact-option{border-top:1px solid rgba(255,255,255,.25)}.option-title{margin-top:17px}.contact::after{inset:0 0 0 22%;opacity:.35}.project-list>.project:nth-child(n){transition-delay:0ms}}
@media(prefers-reduced-motion:reduce){.typing-visual::after{animation:none}.typing-visual.is-complete::after{display:none}}
@media(prefers-reduced-motion:reduce){.headline-mark,.contact h2 span,.status-dot,.map-route,.map-node-dot,.contact::after{animation:none!important}.reveal-on-view{opacity:1;transform:none;filter:none;transition:none}.project-visual::before,.visual-window,.assistant-orbit,.chat-window,.data-sheet,.project,.contact-option,.option-action,.button{transition:none!important}}
.case-notes{margin-top:22px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:13px;line-height:1.7}
.case-notes summary{width:fit-content;padding:10px 0;cursor:pointer;color:var(--ink);font-weight:600;text-underline-offset:4px;transition:color .18s ease}
.case-notes summary:hover{color:var(--accent-dark)}
.case-notes summary:focus-visible{outline:2px solid var(--ink-soft);outline-offset:4px}
.case-notes summary:active{opacity:.76}
.case-notes>div{max-width:62ch;padding:0 0 12px}
.case-notes p{margin:0 0 10px}
.case-notes p:last-child{margin-bottom:0;color:var(--muted)}
.flow-state{color:var(--ink-soft);background:rgba(69,71,77,.08)}
.flow-state i{background:var(--ink-soft)}
.menu-toggle{width:44px;height:44px}
.filter-button{min-height:44px}
.filter-button.is-active span{color:#ffffff}
.project-link{display:inline-flex;align-items:center;min-height:44px;gap:7px}
@media(prefers-reduced-motion:reduce){.case-notes summary{transition:none}}
.growth-grid{fill:none;stroke:rgba(69,71,77,.13);stroke-width:1;stroke-dasharray:2 4}
.growth-axis{fill:none;stroke:rgba(69,71,77,.34);stroke-width:1}
.growth-bar{fill:#49c8f0;transform-box:fill-box;transform-origin:center bottom;animation:bar-rise 2.2s cubic-bezier(.35,0,.2,1) infinite alternate}
.bar-two,.bar-five{fill:#73d7b0}
.bar-three,.bar-six{fill:#b8e766}
.bar-two{animation-delay:-.4s}.bar-three{animation-delay:-.8s}.bar-four{animation-delay:-1.2s}.bar-five{animation-delay:-1.6s}.bar-six{animation-delay:-2s}
.growth-trend{fill:none;stroke:#121317;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:110;stroke-dashoffset:0;animation:trend-glint 3s ease-in-out infinite alternate}
.growth-point{fill:#b8e766;stroke:#121317;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:node-pulse 2.6s ease-in-out infinite}
@keyframes bar-rise{to{opacity:1;transform:scaleY(1.12)}}
@keyframes trend-glint{to{stroke-dashoffset:-12;opacity:.72}}
.ambient-particles{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.56}
main,.site-footer{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.growth-bar,.growth-trend,.growth-point{animation:none!important}.growth-bar{transform:none;opacity:1}}
.hero-art{animation:panel-float 7s ease-in-out infinite}
.status-dot{animation:availability-glow 2.8s ease-in-out infinite}
.assistant-orbit{rotate:0deg;animation:orbit-drift 30s linear infinite}
.assistant-orbit.orbit-two{animation-direction:reverse;animation-duration:38s}
.assistant-core{animation:core-breathe 3.6s ease-in-out infinite}
.chat-live{animation:availability-glow 2.4s ease-in-out infinite}
.response-cursor{animation:response-throb 1.8s ease-in-out infinite alternate}
.sheet-chart i{transform-origin:center bottom;animation:chart-breathe 2.8s ease-in-out infinite alternate}
.sheet-chart i:nth-child(2){animation-delay:-.35s}.sheet-chart i:nth-child(3){animation-delay:-.7s}.sheet-chart i:nth-child(4){animation-delay:-1.05s}.sheet-chart i:nth-child(5){animation-delay:-1.4s}.sheet-chart i:nth-child(6){animation-delay:-1.75s}.sheet-chart i:nth-child(7){animation-delay:-2.1s}.sheet-chart i:nth-child(8){animation-delay:-2.45s}
.about-monogram{translate:0 0;animation:monogram-hover 5s ease-in-out infinite}
.contact-stamp{rotate:0deg;animation:stamp-sway 6s ease-in-out infinite alternate}
@keyframes panel-float{50%{translate:0 -5px}}
@keyframes availability-glow{50%{box-shadow:0 0 0 7px rgba(73,200,240,.12);opacity:.72}}
@keyframes orbit-drift{to{rotate:360deg}}
@keyframes core-breathe{50%{box-shadow:0 0 0 13px rgba(73,200,240,.12),0 0 28px rgba(184,243,107,.18)}}
@keyframes response-throb{to{width:42px;opacity:.48}}
@keyframes chart-breathe{to{scale:1 .78}}
@keyframes monogram-hover{50%{translate:0 -4px}}
@keyframes stamp-sway{to{rotate:-8deg}}
@media(prefers-reduced-motion:reduce){.hero-art,.status-dot,.assistant-orbit,.assistant-core,.chat-live,.response-cursor,.sheet-chart i,.about-monogram,.contact-stamp{animation:none!important;translate:none!important;rotate:none!important;scale:none!important}}
.architecture{padding-block:104px 112px;border-top:1px solid var(--line)}
.architecture-heading{align-items:end}
.graph-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.graph-filter{min-height:42px;padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft);font:500 12px var(--display);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.graph-filter:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}
.graph-filter.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper-raised)}
.graph-filter:focus-visible,.graph-node:focus-visible{outline:3px solid #49c8f0;outline-offset:4px}
.graph-filter:active,.graph-node:active{transform:scale(.98)}
.system-graph{position:relative;min-height:500px;overflow:hidden;border:1px solid #30333d;border-radius:22px;background-color:#11131a;background-image:radial-gradient(rgba(255,255,255,.16) .8px,transparent 1px),linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:26px 26px,52px 52px,52px 52px;isolation:isolate}
.graph-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.graph-connections path{fill:none;stroke:rgba(204,214,228,.32);stroke-width:1.5;stroke-dasharray:5 7;animation:graph-flow 22s linear infinite;transition:opacity .3s ease,stroke .3s ease}
.graph-connections path[hidden]{display:none}
.graph-node{position:absolute;z-index:1;display:flex;min-width:156px;flex-direction:column;align-items:flex-start;gap:5px;padding:13px 15px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#1a1d26;color:#f7f5ef;text-align:left;cursor:pointer;box-shadow:0 12px 24px rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.2,.75,.25,1),border-color .25s ease,box-shadow .25s ease,opacity .25s ease}
.graph-node:hover,.graph-node.is-selected{transform:translateY(-4px);border-color:#b8f36b;box-shadow:0 0 0 4px rgba(184,243,107,.09),0 16px 26px rgba(0,0,0,.3)}
.graph-node[hidden]{display:none}
.graph-node-dot{position:absolute;top:15px;right:14px;width:8px;height:8px;border-radius:50%;background:#b8f36b;box-shadow:0 0 14px rgba(184,243,107,.72);animation:graph-pulse 2.5s ease-in-out infinite}
.graph-node-title{padding-right:9px;font:600 12px var(--display)}
.graph-node-subtitle{color:#b4bacb;font:10px var(--mono)}
.node-origin{left:7%;top:14%}.node-barcode{left:29%;top:14%}.node-sheet{left:66%;top:14%}.node-images{left:7%;top:58%}.node-gemini{left:30%;top:58%}.node-doc{left:52%;top:58%}.node-errors{left:30%;top:77%}.node-ready{left:77%;top:58%}
.node-barcode .graph-node-dot,.node-sheet .graph-node-dot{background:#49c8f0;box-shadow:0 0 14px rgba(73,200,240,.7)}
.node-images .graph-node-dot,.node-gemini .graph-node-dot{background:#c89b59;box-shadow:0 0 14px rgba(200,155,89,.7)}
.node-doc .graph-node-dot,.node-ready .graph-node-dot{background:#73d7b0;box-shadow:0 0 14px rgba(115,215,176,.7)}
.graph-detail{position:relative;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:18px;margin-top:14px;padding:17px 20px;border:1px solid var(--line);background:var(--paper-raised)}
.graph-detail-kicker,.graph-detail-index{font:10px var(--mono);letter-spacing:.06em;color:var(--accent-dark)}
.graph-detail p{max-width:72ch;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.65}
.graph-note{margin:12px 0 0;color:var(--muted);font-size:11px}
@keyframes graph-flow{to{stroke-dashoffset:-96}}
@keyframes graph-pulse{50%{opacity:.48;transform:scale(.72)}}
@media(max-width:900px){.system-graph{min-height:450px}.graph-node{min-width:137px;padding:12px}.graph-detail{grid-template-columns:150px 1fr auto;gap:12px}}
@media(max-width:680px){.architecture{padding-block:70px 78px}.architecture .section-heading{display:block;margin-bottom:24px}.architecture .section-aside{margin-top:14px}.graph-controls{overflow-x:auto;flex-wrap:nowrap;margin-right:-20px;padding:0 20px 6px 0;scrollbar-width:none}.graph-controls::-webkit-scrollbar{display:none}.graph-filter{flex:none}.system-graph{display:grid;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border-radius:16px;background-size:22px 22px,44px 44px,44px 44px}.graph-connections{display:none}.graph-node,.node-origin,.node-barcode,.node-images,.node-gemini,.node-sheet,.node-doc,.node-errors,.node-ready{position:relative;inset:auto;min-width:0;min-height:78px;justify-content:center;transform:none}.graph-node:hover,.graph-node.is-selected{transform:translateY(-2px)}.graph-node-title{font-size:11px}.graph-node-subtitle{font-size:9px}.graph-detail{grid-template-columns:1fr auto;gap:8px;padding:15px}.graph-detail-kicker{grid-column:1}.graph-detail p{grid-column:1/-1;grid-row:2}.graph-detail-index{grid-column:2;grid-row:1}}
@media(prefers-reduced-motion:reduce){.graph-connections path,.graph-node-dot{animation:none!important}.graph-node,.graph-filter{transition:none!important}}
