@font-face { font-family:"Inria Serif"; src:url("assets/fonts/InriaSerif-Regular.ttf") format("truetype"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Inria Serif"; src:url("assets/fonts/InriaSerif-Bold.ttf") format("truetype"); font-style:normal; font-weight:700; font-display:swap; }

:root { --ink:#1b1b19; --paper:#f1f0eb; --acid:#d9ff43; --muted:#a5a6a0; --line:rgba(27,27,25,.18); --max:1440px; --pad:clamp(1.25rem,4vw,4rem); }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:var(--paper); font-family:"Inria Serif", Georgia, serif; font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
.minimal-home { min-height:100svh; background:var(--paper); color:var(--ink); }
.corner-icon { position:fixed; top:clamp(1.25rem,3vw,2.5rem); left:clamp(1.25rem,3vw,2.5rem); width:clamp(2rem,3.5vw,3rem); height:auto; }
.minimal-home main { min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(1.75rem,4vw,3rem); padding:clamp(1.5rem,5vw,5rem); text-align:center; }
.hero-divider { display:block; width:min(70vw,640px); height:1px; margin-top:clamp(1.75rem,4vw,3rem); background:linear-gradient(90deg,transparent,rgba(27,27,25,.25) 22%,rgba(27,27,25,.25) 78%,transparent); }
.hero-contact { position:relative; z-index:5; padding:.7rem 1.15rem .78rem; border:1px solid rgba(27,27,25,.08); border-radius:.4rem; background:#f7f6f1; box-shadow:0 8px 22px rgba(27,27,25,.08); color:var(--ink); font-size:clamp(.9rem,1.4vw,1.1rem); line-height:1; text-decoration:none; opacity:1; will-change:translate,transform,opacity; transition-property:opacity; transition-duration:.1s; }
.hero-contact:hover { box-shadow:0 12px 30px rgba(27,27,25,.16); }
.hero-contact:focus-visible { outline:2px solid #0768d7; outline-offset:3px; }
.hero-contact.is-vanished { opacity:0; }
.hero-contact.is-caught { pointer-events:none; animation:button-caught .5s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes button-caught { from { opacity:1; scale:1; } to { opacity:0; scale:.15; } }
.minimal-contact { min-height:100svh; background:var(--paper); color:var(--ink); }
.corner-back { position:fixed; z-index:2; top:clamp(1.25rem,3vw,2.5rem); left:clamp(1.25rem,3vw,2.5rem); color:var(--ink); font-size:1rem; line-height:1; text-decoration:none; }
.minimal-contact main { min-height:100svh; display:grid; place-items:center; padding:clamp(1.5rem,5vw,5rem); text-align:center; }
.riddle-gate { width:min(92vw,260px); max-height:4rem; overflow:hidden; padding:0; border:1px solid rgba(27,27,25,.08); border-radius:1rem; background:#f7f6f1; box-shadow:0 8px 22px rgba(27,27,25,.08); transition:width .45s cubic-bezier(.2,.75,.2,1),max-height .65s cubic-bezier(.2,.75,.2,1),padding .45s ease,box-shadow .2s ease; }
.riddle-gate.is-open { width:min(92vw,700px); max-height:900px; padding:clamp(1.5rem,4vw,2.5rem); box-shadow:0 14px 38px rgba(27,27,25,.1); }
.riddle-gate.is-solved { width:min(92vw,360px); max-height:5rem; padding:.85rem 1rem; }
.riddle-reveal { width:100%; padding:.8rem 1.2rem .88rem; border:0; background:transparent; color:var(--ink); font:inherit; font-size:clamp(.9rem,1.4vw,1.1rem); cursor:pointer; white-space:nowrap; }
.riddle-reveal:hover { background:rgba(27,27,25,.035); }
.riddle-panel { margin:0; opacity:0; transition:opacity .3s ease .2s; }
.riddle-gate.is-open .riddle-panel { opacity:1; }
.riddle-gate.is-solving .riddle-panel { opacity:0; transition-delay:0s; }
.riddle-panel blockquote { margin:0; font-size:clamp(.9rem,1.65vw,1.16rem); line-height:1.55; }
.riddle-form { width:min(100%,430px); margin:2rem auto 0; text-align:left; }
.riddle-form label { display:block; margin-bottom:.45rem; font-size:.85rem; }
.riddle-input-row { display:grid; grid-template-columns:1fr auto; gap:.5rem; }
.riddle-input-row input { min-width:0; padding:.72rem .8rem; border:1px solid rgba(27,27,25,.25); border-radius:.7rem; background:#fff; color:var(--ink); font:inherit; outline:none; }
.riddle-input-row input:focus { border-color:#0768d7; box-shadow:0 0 0 2px rgba(7,104,215,.14); }
.riddle-input-row button { padding:.72rem 1rem; border:0; border-radius:.7rem; background:var(--ink); color:var(--paper); font:inherit; cursor:pointer; }
.riddle-feedback { min-height:1.4em; margin:.45rem 0 0!important; color:#b33333; font-size:.82rem!important; white-space:normal!important; }
.contact-line { display:flex; align-items:center; justify-content:center; gap:.55rem; }
.contact-flat { display:block; }
.minimal-contact p { margin:0; font-size:clamp(.55rem,2.2vw,1.65rem); line-height:1.4; letter-spacing:-.025em; white-space:nowrap; }
.contact-prefix { font-size:.86em; }
.minimal-contact p a { display:inline-block; color:#0768d7; line-height:1.15; }
.minimal-contact p a:hover { color:#0059bd; }
.copy-email { display:grid; place-items:center; width:2rem; height:2rem; flex:0 0 auto; padding:0; border:0; border-radius:.35rem; background:transparent; color:var(--ink); cursor:pointer; }
.copy-email:hover { background:rgba(27,27,25,.08); }
.copy-email img { display:block; width:1.2rem; height:1.2rem; object-fit:contain; }
.copy-email.is-copied { animation:copy-flash .35s ease-out; }
.copy-email.is-copied img { animation:copy-icon-flash .35s ease-out; }
@keyframes copy-flash { 45% { background:#0768d7; } }
@keyframes copy-icon-flash { 45% { filter:invert(1); } }
.copy-status { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.header-logo { display:block; width:min(84vw,850px); height:auto; }
.minimal-home p { position:relative; max-width:none; margin:0; font-size:clamp(.55rem,2.2vw,1.65rem); line-height:1.4; letter-spacing:-.025em; white-space:nowrap; text-align:left; }
.subtitle-sizer { visibility:hidden; }
.subtitle-visible { position:absolute; inset:0 auto auto 0; }
.selected-phrase { display:inline-block; width:auto; padding:.04em .22em .08em; border:1px solid #0768d7; border-radius:0; background:#0768d7; color:#fff; line-height:1.15; text-align:left; }
.selected-phrase::after { content:""; display:inline-block; width:1px; height:.8em; margin-left:.08em; background:currentColor; vertical-align:-.04em; animation:type-cursor .75s steps(1) infinite; }
.selected-phrase.is-empty { width:0; padding-inline:0; border-color:transparent; background:transparent; color:var(--ink); }
.selected-phrase.is-empty::after { display:inline-block; }
@keyframes type-cursor { 50% { opacity:0; } }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.section-shell,.site-header { width:min(100%,var(--max)); margin-inline:auto; padding-inline:var(--pad); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; background:var(--acid); color:var(--ink); padding:.75rem 1rem; }
.skip-link:focus { top:1rem; }
.site-header { height:92px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(241,240,235,.16); position:relative; z-index:20; }
.brand { display:inline-flex; align-items:center; gap:.72rem; font-weight:700; letter-spacing:-.03em; }
.brand-icon { display:block; width:25px; height:25px; object-fit:contain; filter:invert(1); }
.site-nav { display:flex; align-items:center; gap:clamp(1.25rem,3vw,3rem); font-size:.86rem; }
.site-nav a:not(.nav-cta) { color:#c7c7c3; transition:color .2s; }.site-nav a:hover { color:var(--acid); }
.nav-cta { border:1px solid rgba(241,240,235,.3); padding:.65rem .85rem; }
.nav-cta span,.button span,.text-link span { margin-left:.5rem; }
.menu-toggle { display:none; border:0; background:none; color:inherit; padding:.5rem; }
.menu-toggle > span:not(.sr-only) { display:block; width:24px; height:1px; background:currentColor; margin:6px; transition:.2s; }
.hero { min-height:calc(100svh - 92px); display:grid; grid-template-rows:1fr auto; align-items:center; overflow:hidden; background:var(--acid); color:var(--ink); max-width:none; padding-inline:max(var(--pad),calc((100% - var(--max))/2 + var(--pad))); position:relative; }
.hero::before,.hero::after { content:""; position:absolute; border:1px solid rgba(16,17,18,.12); border-radius:50%; pointer-events:none; }
.hero::before { width:min(70vw,900px); aspect-ratio:1; left:50%; top:48%; transform:translate(-50%,-50%); }
.hero::after { width:min(50vw,640px); aspect-ratio:1; left:50%; top:48%; transform:translate(-50%,-50%); }
.hero-center { position:relative; z-index:1; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:clamp(5rem,12vh,9rem) 0 4rem; }
.hero-logo { display:block; width:min(78vw,700px); height:auto; }
.hero-tagline { max-width:750px; margin:clamp(2rem,5vh,3.5rem) auto 2.5rem; font-size:clamp(1.15rem,2vw,1.65rem); line-height:1.35; letter-spacing:-.025em; }
.hero-copy { position:relative; z-index:2; padding:clamp(5rem,10vh,8rem) 2rem clamp(4rem,8vh,7rem) 0; }
.eyebrow,.section-index,.label { margin:0 0 2rem; text-transform:uppercase; letter-spacing:.13em; font-size:.7rem; font-weight:700; }
.eyebrow span { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--acid); margin-right:.6rem; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:2rem; max-width:900px; font-size:clamp(3.5rem,7.5vw,7.2rem); line-height:.91; letter-spacing:-.075em; font-weight:600; }
h1 em { color:var(--acid); font-family:Georgia,serif; font-weight:400; }
.hero-intro { color:#b4b5b0; max-width:600px; font-size:clamp(1.05rem,1.5vw,1.35rem); }
.hero-actions { display:flex; align-items:center; gap:2rem; margin-top:2.5rem; }
.button { display:inline-flex; align-items:center; justify-content:space-between; min-width:185px; padding:1rem 1.15rem; font-size:.78rem; font-weight:700; transition:transform .2s, background .2s; }
.button:hover { transform:translateY(-2px); }.button-primary { background:var(--acid); color:var(--ink); }.button-light { background:var(--paper); color:var(--ink); }.button-dark { background:var(--ink); color:var(--paper); }
.text-link { display:inline-block; font-size:.8rem; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:.3rem; }
.hero-visual { align-self:stretch; position:relative; margin-right:calc(var(--pad) * -1); overflow:hidden; background:#161819; border-left:1px solid rgba(241,240,235,.12); }
.visual-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px); background-size:48px 48px; transform:perspective(500px) rotateY(-10deg) scale(1.2); }
.orb { position:absolute; border-radius:50%; filter:blur(1px); }.orb-one { width:70%; aspect-ratio:1; background:radial-gradient(circle at 38% 35%,#edff9a 0,#bde32e 18%,#4f5e14 48%,transparent 69%); left:14%; top:18%; box-shadow:0 0 100px rgba(217,255,67,.2); }.orb-two { width:32%; aspect-ratio:1; border:1px solid rgba(217,255,67,.5); right:8%; bottom:14%; }
.axis { position:absolute; color:#818575; font-size:.55rem; display:flex; justify-content:space-between; }.axis-x { left:7%; right:7%; bottom:9%; }.axis-y { top:7%; bottom:7%; right:6%; flex-direction:column; }
.core { position:absolute; inset:35% 24%; transform:rotate(30deg); }.core span { position:absolute; inset:0; border:1px solid rgba(217,255,67,.7); border-radius:50%; }.core span:nth-child(2){ transform:rotateY(65deg) }.core span:nth-child(3){ transform:rotateX(65deg) }
.hero-visual p { position:absolute; left:7%; bottom:11%; color:#e7e8dd; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.hero-meta { position:relative; z-index:1; border-top:1px solid rgba(16,17,18,.22); padding:1rem 0; display:flex; justify-content:space-between; color:#4d571e; text-transform:uppercase; letter-spacing:.12em; font-size:.59rem; }.hero-meta p { margin:0; }.hero-meta span { margin:.4rem; }
.statement { background:var(--paper); color:var(--ink); padding-block:clamp(6rem,12vw,11rem); display:grid; grid-template-columns:25% 75%; }
.statement > div { max-width:930px; }.statement h2,.section-heading h2,.cta-section h2,.contact-options h2 { font-size:clamp(2.7rem,5.2vw,5.4rem); line-height:1; letter-spacing:-.06em; font-weight:500; }
.statement p:last-child { max-width:620px; margin:3rem 0 0 auto; color:#62635f; font-size:1.15rem; }
.work,.approach { padding-block:clamp(6rem,10vw,10rem); }
.section-heading { display:grid; grid-template-columns:40% 60%; align-items:start; margin-bottom:5rem; }.section-heading h2 { margin:0; }
.capability-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(241,240,235,.18); border:1px solid rgba(241,240,235,.18); }
.capability-card { background:var(--ink); padding:1.5rem; min-height:560px; display:grid; grid-template-rows:auto 1fr auto; }.card-featured { grid-row:span 2; min-height:720px; }
.card-number { color:#777976; font-size:.65rem; }.card-art { position:relative; min-height:250px; overflow:hidden; margin:1rem 0; background:#151718; }
.art-product { background:radial-gradient(circle at 65% 45%,#d9ff43 0,rgba(217,255,67,.45) 7%,transparent 25%),linear-gradient(135deg,#171918,#292d24); }.art-product span { position:absolute; width:55%; aspect-ratio:1; border:1px solid rgba(217,255,67,.45); border-radius:50%; top:16%; left:22%; }.art-product span:nth-child(2){ transform:scale(.7) }.art-product span:nth-child(3){ transform:scale(.4); background:rgba(217,255,67,.08) }
.art-intelligence { background-image:linear-gradient(30deg,#20231b 12%,transparent 12.5%,transparent 87%,#20231b 87.5%),linear-gradient(150deg,#20231b 12%,transparent 12.5%,transparent 87%,#20231b 87.5%),linear-gradient(30deg,#20231b 12%,transparent 12.5%,transparent 87%,#20231b 87.5%),linear-gradient(150deg,#20231b 12%,transparent 12.5%,transparent 87%,#20231b 87.5%); background-size:48px 84px; }.art-intelligence span { position:absolute; width:8px; height:8px; background:var(--acid); border-radius:50%; left:25%; top:35%; box-shadow:100px 40px 0 #d9ff43,220px -20px 0 #d9ff43,270px 100px 0 #d9ff43; }
.art-platform { background:linear-gradient(145deg,#171918,#272b21); }.art-platform span { position:absolute; border:1px solid rgba(217,255,67,.55); width:45%; height:45%; left:28%; top:27%; transform:rotate(30deg) skew(-8deg); }.art-platform span:nth-child(2){ transform:rotate(30deg) skew(-8deg) translate(18px,-18px);opacity:.6}.art-platform span:nth-child(3){ transform:rotate(30deg) skew(-8deg) translate(36px,-36px);opacity:.3}
.card-copy { border-top:1px solid rgba(241,240,235,.16); padding-top:1.5rem; }.card-copy p { color:var(--acid); text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; }.card-copy h3 { max-width:500px; font-size:clamp(1.5rem,2.4vw,2.3rem); line-height:1.08; letter-spacing:-.04em; }.card-copy > span { color:#7e807c; font-size:.7rem; }
.approach { background:var(--acid); color:var(--ink); }.process-list { margin:0 0 0 40%; padding:0; list-style:none; }.process-list li { border-top:1px solid rgba(16,17,18,.25); padding:2.2rem 0; display:grid; grid-template-columns:70px 1fr; }.process-list li > span { font-size:.65rem; }.process-list h3 { font-size:1.6rem; letter-spacing:-.03em; }.process-list p { max-width:520px; color:#4e541e; }
.principles { min-height:700px; display:grid; place-items:center; position:relative; overflow:hidden; }.principles blockquote { position:relative; z-index:2; max-width:880px; font-family:Georgia,serif; font-size:clamp(2.6rem,5.5vw,5.6rem); font-style:italic; line-height:1.03; text-align:center; letter-spacing:-.04em; }.principle-graphic { position:absolute; width:min(72vw,720px); aspect-ratio:1; }.principle-graphic span { position:absolute; inset:0; border:1px solid rgba(217,255,67,.18); border-radius:50%; }.principle-graphic span:nth-child(2){ inset:12%}.principle-graphic span:nth-child(3){ inset:24%}.principle-graphic span:nth-child(4){ inset:36%;background:radial-gradient(circle,rgba(217,255,67,.22),transparent 65%)}
.cta-section { background:var(--acid); color:var(--ink); padding-block:clamp(5rem,9vw,9rem); text-align:center; }.cta-section .eyebrow span { background:var(--ink); }.cta-section h2 { font-size:clamp(3rem,7vw,7rem); letter-spacing:-.07em; max-width:1000px; margin:0 auto 3rem; }
.site-footer { padding-block:4rem 2rem; display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; color:#a1a29d; font-size:.78rem; }.site-footer .brand { color:var(--paper); align-self:start; }.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; }.footer-links a:hover { color:var(--acid); }.copyright { grid-column:1/-1; border-top:1px solid rgba(241,240,235,.14); padding-top:1.5rem; margin:2rem 0 0; font-size:.62rem; text-transform:uppercase; letter-spacing:.09em; }

.contact-page { background:var(--paper); color:var(--ink); }.contact-page .site-header { border-bottom-color:var(--line); }.contact-page .brand-icon { filter:none; }.contact-page .site-nav a:not(.nav-cta) { color:#535450; }.contact-page .nav-cta { border-color:var(--line); }.contact-page .site-nav a:hover { color:#657900; }
.contact-hero { background:var(--acid); min-height:670px; padding-block:clamp(6rem,10vw,10rem); }.contact-hero .eyebrow span { background:var(--ink); }.contact-hero h1 { max-width:1100px; }.contact-hero h1 em { color:var(--ink); }.contact-intro { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; }.contact-intro p { max-width:600px; font-size:1.2rem; margin:0; }.contact-intro .button { justify-self:end; }
.contact-options { display:grid; grid-template-columns:1fr 1fr; gap:0; padding-block:clamp(6rem,10vw,10rem); }.contact-options article { padding-right:clamp(2rem,6vw,6rem); }.contact-options article + article { border-left:1px solid var(--line); padding-left:clamp(2rem,6vw,6rem); padding-right:0; }.contact-options h2 { font-size:clamp(2.3rem,3.8vw,4rem); }.contact-options article > p:not(.section-index) { color:#666762; max-width:560px; margin-bottom:2rem; }
.contact-details { border-top:1px solid var(--line); padding-block:3rem 5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }.contact-details .label { color:#747570; margin-bottom:.7rem; }.contact-details p,.contact-details a { margin-bottom:0; }.contact-page .site-footer { background:var(--ink); color:#a1a29d; max-width:none; padding-inline:max(var(--pad),calc((100% - var(--max))/2 + var(--pad))); }.contact-page .site-footer .brand-icon { filter:invert(1); }

@media (max-width:800px) {
  .site-header { height:76px; }.menu-toggle { display:block; z-index:2; }.site-nav { display:none; position:absolute; left:0; right:0; top:75px; background:var(--ink); padding:2rem var(--pad); flex-direction:column; align-items:stretch; gap:1.4rem; border-bottom:1px solid #333; }.site-nav.is-open { display:flex; }.contact-page .site-nav { background:var(--paper); }.menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-3.5px) rotate(-45deg)}
  .hero { min-height:calc(100svh - 76px); }.hero::before { width:110vw; }.hero::after { width:80vw; }.hero-meta { margin-top:0; }.statement,.section-heading { grid-template-columns:1fr; gap:2rem; }.statement p:last-child { margin-left:0; }.capability-grid { grid-template-columns:1fr; }.card-featured,.capability-card { grid-row:auto; min-height:560px; }.process-list { margin-left:0; }.principles { min-height:570px; }.site-footer { grid-template-columns:1fr 1fr; }.site-footer .brand,.copyright { grid-column:1/-1; }
  .contact-intro,.contact-options,.contact-details { grid-template-columns:1fr; }.contact-intro .button { justify-self:start; }.contact-options { gap:5rem; }.contact-options article { padding-right:0; }.contact-options article + article { border-left:0; border-top:1px solid var(--line); padding:5rem 0 0; }.contact-details { gap:2.5rem; }
}
@media (max-width:480px) { h1 { font-size:3.45rem; }.hero-actions { align-items:flex-start; flex-direction:column; }.hero-meta { align-items:flex-start; gap:1rem; flex-direction:column; }.capability-card { padding:1rem; min-height:500px; }.process-list li { grid-template-columns:45px 1fr; }.site-footer { grid-template-columns:1fr; }.site-footer .brand { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } .selected-phrase::after { display:none; } }
