@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;450;500;600;700;800&display=swap');
:root{--bg:#080808;--ink:#ededeb;--muted:#a0a09d;--accent:#dededb;--line:#292929;--pad:clamp(24px,6vw,100px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--bg);font-family:'Manrope',Arial,sans-serif;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}::selection{background:#dededb;color:#080808}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}a,button,summary{-webkit-tap-highlight-color:transparent}.skip{position:fixed;top:-80px;left:20px;padding:15px;background:var(--ink);color:var(--bg);z-index:100}.skip:focus{top:10px}header{height:100px;position:absolute;top:0;left:0;width:100%;z-index:20;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:30px}.identity{font-size:14px;font-weight:700;letter-spacing:.04em;display:flex;flex-direction:column;gap:7px}.identity span{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:.12em}nav{display:flex;gap:36px;font-size:14px;color:#c5c5c2}nav a:hover,.header-contact:hover{color:white}.header-contact{font-size:14px;color:var(--muted)}.threshold{height:100svh;position:relative}.scene{height:100svh;min-height:0;position:relative;background:#000;overflow:hidden}.scene-image{position:absolute;inset:0}.scene-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.5) 20%,transparent 45%,rgba(0,0,0,.2) 80%,rgba(0,0,0,.8) 100%);pointer-events:none}.scene-meta{position:absolute;top:145px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--accent);letter-spacing:.12em}.opening{position:absolute;bottom:120px;left:var(--pad);right:var(--pad);will-change:opacity,transform}.overline{font-size:12px;letter-spacing:.15em;color:var(--accent);margin:0 0 18px}h1{margin:0;font-size:clamp(70px,9.8vw,165px);font-weight:500;line-height:1.02;letter-spacing:-.065em}.opening-line{font-size:16px;color:#bdbdba;margin:23px 0 0}.reality-title{position:absolute;top:32%;left:var(--pad);right:var(--pad);display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(-50%);pointer-events:none}.reality-title>span{font-size:12px;letter-spacing:.18em;color:var(--accent)}.reality-title h1{font-size:clamp(32px,4vw,56px);line-height:1.02;letter-spacing:-.065em;margin:25px 0;font-weight:450}.reality-title p{font-size:16px;color:#c2c2bf;margin:0;line-height:1.6}.scene-footer{position:absolute;left:var(--pad);right:var(--pad);bottom:35px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:12px;color:#ababaa}.explore{display:flex;align-items:center;gap:22px;font-size:14px}.scroll-track{height:30px;width:1px;background:linear-gradient(var(--accent),transparent);display:block}.scene-coordinate{font-size:12px;letter-spacing:.08em}.section{padding:100px var(--pad)}.section-label{display:flex;gap:40px;align-items:center;margin-bottom:70px;font-size:12px;letter-spacing:.14em;color:var(--muted)}.section-label>span:first-child{color:var(--accent)}.intersection{position:relative;background:var(--bg)}.intersection-body{display:grid;grid-template-columns:1.2fr 1fr;gap:10vw;align-items:center}.intersection h2{font-size:clamp(54px,6.5vw,110px);line-height:1.12;letter-spacing:-.06em;font-weight:500;margin:0}.intersection h2 span{color:var(--accent)}.thesis{max-width:460px}.small-label{font-size:12px;letter-spacing:.14em;color:var(--accent);line-height:1.7}.thesis p{color:var(--muted);line-height:1.8;margin:25px 0;font-size:16px}.thesis p.lead{font-size:clamp(22px,2vw,30px);line-height:1.5;color:var(--ink);letter-spacing:-.025em}.current{border-top:1px solid var(--line)}.work-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:70px}.work-intro h2,.practice>h2,.experiment-heading h2,.closing h2{font-size:clamp(40px,5vw,80px);line-height:1.15;letter-spacing:-.055em;font-weight:450;margin:0}h2 span{color:#888885}.work-intro p,.experiment-heading p{color:var(--muted);line-height:1.7;margin:0;font-size:14px}.world-project{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:55px 0;border-top:1px solid var(--line)}.world-number{font-size:13px;color:var(--muted);letter-spacing:.12em;padding-top:7px}.world-project h3{font-size:clamp(32px,4vw,54px);font-weight:450;letter-spacing:-.045em;margin:20px 0}.world-project p{color:var(--muted);font-size:16px;line-height:1.8;max-width:650px}.world-project .world-thesis{color:var(--accent);font-size:18px}.world-detail{margin-top:30px;max-width:650px}.world-detail summary{padding:15px 0;font-size:14px;display:flex;justify-content:space-between;color:var(--ink);border-bottom:1px solid var(--line)}.world-detail>div{padding-top:10px}.systems{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.systems summary{padding:33px 0;display:grid;grid-template-columns:60px 1fr 170px 18px;gap:25px;align-items:center}.systems h3{font-size:clamp(22px,2.3vw,34px);letter-spacing:-.035em;font-weight:450;margin:0}.row-number,.row-type{color:var(--muted);font-size:12px;letter-spacing:.07em}.plus{position:relative;width:16px;height:16px;display:block;flex-shrink:0}.plus:before,.plus:after{content:'';position:absolute;top:7px;left:0;width:16px;height:1px;background:var(--accent);transition:transform .3s}.plus:after{transform:rotate(90deg)}details[open]>summary .plus:after{transform:rotate(0)}.system-copy{padding:0 0 30px 85px;max-width:740px;color:var(--muted);line-height:1.8}.system-copy p{margin-top:0}.system-copy a{display:inline-block;color:var(--ink);font-size:14px;border-bottom:1px solid #878784;padding-bottom:5px}.practice{background:#0b0b0b;border-top:1px solid var(--line)}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:55px}.practice-grid article{border-top:1px solid #3d3d3b;padding-top:30px}.practice-grid h3{font-size:30px;font-weight:450;letter-spacing:-.04em;margin:20px 0}.practice-grid p{color:var(--muted);line-height:1.8;max-width:490px}.practice-grid details{margin-top:25px}.practice-grid summary{display:flex;justify-content:space-between;padding:18px 0;font-size:14px}.practice-grid details p{padding:0 0 20px}.experiments{border-top:1px solid var(--line)}.experiment-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:45px}.experiment-heading h2{font-size:clamp(34px,4vw,58px)}.app-link{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:35px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s}.app-index{font-size:12px;color:var(--muted);letter-spacing:.1em}.app-link h3{margin:0 0 8px;font-weight:500;font-size:22px;letter-spacing:-.02em}.app-link p{color:var(--muted);font-size:14px;margin:0;line-height:1.6}.app-launch{font-size:14px;color:var(--accent);border-bottom:1px solid #878784;padding-bottom:6px}.app-link:hover{background:#ffffff07}.closing{border-top:1px solid var(--line);background:var(--bg)}.closing h2{margin-top:35px;font-size:clamp(50px,7vw,100px)}.contact-link{font-size:18px;display:inline-block;margin-top:45px;padding-bottom:8px;border-bottom:1px solid #878784}footer{padding:30px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;letter-spacing:.04em}.reveal{transition:opacity .65s ease-out,transform .65s cubic-bezier(.2,.7,.3,1)}.motion .reveal{opacity:0;transform:translateY(14px)}.motion .reveal.visible{opacity:1;transform:none}
@media(min-width:1800px){.section,header,footer{padding-left:max(var(--pad),calc((100vw - 1550px)/2));padding-right:max(var(--pad),calc((100vw - 1550px)/2))}}@media(max-width:900px){header{height:85px}nav{gap:24px}.header-contact{display:none}.scene-meta{top:120px}.section{padding-top:90px;padding-bottom:90px}.intersection-body{gap:6vw}.world-project{grid-template-columns:1fr 3fr}.work-intro{flex-direction:column;align-items:start;gap:25px}.practice-grid{gap:35px}.scene-coordinate{display:none}.experiment-heading{flex-direction:column;align-items:start;gap:20px}}@media(max-width:600px){header{gap:15px}.identity{font-size:12px}.identity span{font-size:12px}nav{gap:16px;font-size:12px}.scene-meta{top:118px;font-size:12px;letter-spacing:.06em}.scene-meta span:last-child{display:none}.scene-image img{object-fit:contain}.opening{bottom:140px}h1{font-size:clamp(54px,13.4vw,78px)}.opening-line{font-size:14px;line-height:1.7;max-width:230px;margin-top:18px}.overline{font-size:12px;letter-spacing:.12em}.scene-footer{bottom:30px;gap:15px}.explore{font-size:13px;gap:12px}.reality-title h1{font-size:38px}.reality-title p{font-size:14px}.section{padding-top:70px;padding-bottom:70px}.section-label{margin-bottom:40px;gap:24px}.intersection-body{grid-template-columns:1fr;gap:45px}.intersection h2{font-size:57px}.thesis{max-width:100%}.thesis p.lead{font-size:24px}.work-intro h2{font-size:36px}.work-intro{margin-bottom:40px}.work-intro p{font-size:14px}.world-project{grid-template-columns:1fr;gap:26px;padding:35px 0}.world-project h3{font-size:32px}.world-number{font-size:12px}.systems summary{grid-template-columns:25px 1fr 16px;gap:12px;padding:28px 0}.systems h3{font-size:22px}.row-type{display:none}.system-copy{padding-left:37px;font-size:16px}.practice>h2{font-size:43px}.practice-grid{grid-template-columns:1fr;gap:40px;margin-top:45px}.practice-grid h3{font-size:29px}.app-link{grid-template-columns:27px 1fr;gap:16px}.app-launch{grid-column:2;justify-self:start}.app-link h3{font-size:21px}.experiment-heading h2{font-size:37px}.closing h2{font-size:51px}.contact-link{font-size:16px}footer{font-size:12px;flex-wrap:wrap}footer a{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.threshold{height:100svh}.scene{position:relative}.scroll-track{animation:none}.scene-image{will-change:auto}.motion .reveal{opacity:1;transform:none}.reveal{transition:none}}

.app-link+.app-link{border-top:0}.cathedral-demo{display:inline-block;margin:8px 0 8px;padding-bottom:7px;border-bottom:1px solid #878784;color:var(--accent);font-size:14px}.cathedral-demo:hover{color:var(--ink)}

.visual-studies{margin-top:65px;padding-top:35px;border-top:1px solid var(--line)}.studies-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:30px}.studies-heading h3{font-size:26px;font-weight:450;letter-spacing:-.035em;margin:0}.studies-heading p{color:var(--muted);font-size:13px;margin:0}figure{margin:0}.visual-studies img{display:block;width:100%;height:auto;background:#111}.study-wide{max-width:100%}.visual-studies figcaption{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.12em;color:var(--muted);padding:15px 0 0}.study-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:35px;align-items:start}.study-pair figure:last-child{padding-top:70px}@media(max-width:600px){.visual-studies{margin-top:55px}.studies-heading{display:block}.studies-heading p{margin-top:12px}.study-pair{gap:18px;margin-top:24px}.study-pair figure:last-child{padding-top:35px}.visual-studies figcaption{font-size:10px;letter-spacing:.07em}.study-wide figcaption span:last-child{display:none}}

@media(max-height:500px){.scene-meta{display:none}.opening{bottom:85px}h1{font-size:clamp(46px,8vw,76px)}.opening-line{margin-top:12px}.reality-title h1{font-size:clamp(45px,8vw,70px);margin:15px 0}.scene-footer{bottom:20px}.scene-image img{object-fit:contain}}

.opening{animation:opening-in .7s ease-out both}@keyframes opening-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.study-ocean{margin-top:40px}@media(max-width:600px){.study-ocean{margin-top:28px}}@media(prefers-reduced-motion:reduce){.opening{animation:none}.reveal{transition:none}.motion .reveal{opacity:1;transform:none}}

/* A one-screen scene: native exit timeline, no sticky spacer or JS scroll loop. */
@media(prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){
.threshold{view-timeline-name:--hero;view-timeline-axis:block}
.opening{animation:hero-name 1s ease-out both;animation-timeline:--hero;animation-range:exit 0% exit 24%}
.reality-title{top:56%;animation:hero-reality 1s ease-out both;animation-timeline:--hero;animation-range:exit 8% exit 27%}
.reality-title h1{font-size:clamp(65px,9vw,130px)}
.scene-image{animation:hero-glass 1s linear both;animation-timeline:--hero;animation-range:exit 0% exit 65%}
@keyframes hero-name{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-14px)}}
@keyframes hero-reality{from{opacity:0;transform:translateY(calc(-50% + 14px))}to{opacity:1;transform:translateY(-50%)}}
@keyframes hero-glass{from{transform:scale(1);opacity:1}to{transform:scale(1.04);opacity:.65}}
@media(max-width:600px){.reality-title h1{font-size:70px}}
@media(max-height:500px){.reality-title h1{font-size:48px}.reality-title>span{display:none}}
}}
.section-label:after{content:'';height:1px;background:var(--line);flex:1;transform-origin:left}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 24px}
.gallery-grid .photo-frame{display:block;overflow:hidden;aspect-ratio:3/2;background:#111}
.gallery-grid .portrait .photo-frame{aspect-ratio:3/4}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.photo-open{display:block;position:relative;cursor:zoom-in}
.photo-hint{position:absolute;bottom:15px;right:15px;padding:8px 11px;background:#080808dd;color:var(--ink);font-size:12px;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.photo-open:focus-visible .photo-hint{opacity:1;transform:none}
.gallery-grid figcaption{font-size:12px;letter-spacing:.07em}
.gallery-grid figcaption span:last-child{display:none}
.experiment-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.experiment-grid .app-link{display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:26px;min-height:205px;border:1px solid var(--line);background:#0b0b0b;transition:border-color .3s,background .3s,transform .3s}
.experiment-grid .app-link+.app-link{border-top:1px solid var(--line)}
.experiment-grid .app-launch{margin-top:auto;font-size:12px}
.experiment-grid .app-link h3{font-size:26px}
.page-index{position:fixed;bottom:20px;left:50%;transform:translate(-50%,12px);z-index:30;display:flex;gap:4px;padding:5px;border:1px solid #ffffff20;background:#111;box-shadow:0 5px 25px #0008;opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
.page-index.shown{opacity:1;visibility:visible;transform:translate(-50%,0)}
.page-index a{padding:10px 14px;display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);transition:color .2s,background .2s}
.page-index a span{font-size:13px}
.page-index a[aria-current]{color:var(--ink);background:#ffffff10}
footer{padding-bottom:95px}
.photo-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px var(--pad);border:0;background:#050505;color:var(--ink)}
.photo-viewer::backdrop{background:#050505}
.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:20px}
.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px}
.viewer-top span{font-size:12px;letter-spacing:.12em;color:var(--muted)}
.photo-viewer button{background:none;border:1px solid #ffffff30;padding:10px 14px;cursor:pointer;font-size:14px}
.viewer-image{width:100%;height:100%;object-fit:contain;min-height:0;display:block}
.viewer-bottom p{font-size:12px;letter-spacing:.1em;margin:0;text-align:center;color:var(--muted)}
body.viewer-open{overflow:hidden}
@media(hover:hover) and (pointer:fine){.photo-open:hover img{transform:scale(1.025)}.photo-open:hover .photo-hint{opacity:1;transform:none}.experiment-grid .app-link:hover{border-color:#8b8b88;background:#151515;transform:translateY(-3px)}.page-index a:hover{color:var(--ink)}}
@media(max-width:600px){.gallery-grid{gap:26px 16px}.gallery-grid .landscape{grid-column:1/-1}.gallery-grid figcaption{font-size:12px;letter-spacing:0}.experiment-grid{gap:12px}.experiment-grid .app-link{padding:20px 16px;min-height:180px;gap:18px}.experiment-grid .app-link h3{font-size:21px}.experiment-grid .app-link p{font-size:14px}.page-index{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 32px);justify-content:space-between}.page-index a{padding:9px 10px;gap:6px}.page-index a span{font-size:12px}.photo-viewer{padding:20px 16px max(20px,env(safe-area-inset-bottom))}.viewer-bottom{flex-wrap:wrap}.viewer-bottom p{order:3;width:100%;padding-top:3px}}
@media(prefers-reduced-motion:reduce){.gallery-grid img,.photo-hint,.page-index,.experiment-grid .app-link{transition:none}.experiment-grid .app-link:hover{transform:none}}

/* Keep longer app descriptions comfortable on narrow screens. */
.experiment-grid .app-link{min-width:0}
.experiment-grid .app-link h3{overflow-wrap:anywhere}
@media(max-width:440px){.experiment-grid{grid-template-columns:1fr}.experiment-grid .app-link{min-height:200px}}
.construction-link{display:block;width:fit-content;font-size:14px;color:var(--muted);margin-top:24px;padding:8px 0;border-bottom:1px solid var(--line)}
.construction-link:hover{color:var(--ink)}

/* Silver expanse: readable typography, a compact scene, and the original dark fade. */
.open-sky-cover .threshold,.open-sky-cover .scene{height:80svh;min-height:600px;max-height:820px}
.open-sky-cover .scene-shade{background:linear-gradient(0deg,#080808 0%,rgba(8,8,8,.86) 9%,rgba(8,8,8,.4) 23%,transparent 46%),linear-gradient(180deg,rgba(8,8,8,.92) 0%,rgba(8,8,8,.68) 22%,transparent 40%)}
.open-sky-cover header .identity,.open-sky-cover header nav,.open-sky-cover .header-contact{color:#fff;text-shadow:0 1px 6px #0006}
.open-sky-cover header .identity{font-size:16px}
.open-sky-cover header .identity span{color:#eee;font-size:12px;font-weight:500}
.open-sky-cover header nav,.open-sky-cover .header-contact{font-size:16px;font-weight:500}
.open-sky-cover header nav a:hover,.open-sky-cover .header-contact:hover{color:#fff;text-decoration:underline;text-underline-offset:6px}
.open-sky-cover header a:focus-visible{outline-color:#fff}
.open-sky-cover .scene-meta{color:#fff;font-size:15px;font-weight:600;letter-spacing:.1em;text-shadow:0 1px 5px #0008;top:132px}
.open-sky-cover .reality-title{color:#111;text-shadow:0 1px 16px #ffffffb3}
.open-sky-cover .opening-line,.open-sky-cover .overline,.open-sky-cover .scene-footer{color:#f3f3f0}
.open-sky-cover .scene-image img{object-fit:cover;object-position:center}
@media(max-width:600px){.open-sky-cover .threshold,.open-sky-cover .scene{height:82svh;min-height:560px;max-height:760px}.open-sky-cover header{height:88px;gap:16px}.open-sky-cover header .identity{font-size:14px}.open-sky-cover .header-contact{font-size:14px}.open-sky-cover .scene-meta{top:116px;font-size:13px;gap:16px}.open-sky-cover .scene-meta span:last-child{text-align:right}.open-sky-cover .reality-title p{max-width:290px}}
@media(max-height:500px){.open-sky-cover .threshold,.open-sky-cover .scene{height:100svh;min-height:360px}.open-sky-cover .reality-title p{font-size:16px;padding:5px 12px}}

/* A larger typographic mark, without the redundant caption or a panel. */
.open-sky-cover .reality-title h1{font-size:clamp(60px,7.5vw,112px);font-weight:600;text-transform:uppercase;letter-spacing:.035em;line-height:1.08;margin:0;color:#101010;text-shadow:0 1px 20px #fff9}
@media(max-width:600px){.open-sky-cover .reality-title h1{font-size:clamp(40px,10.5vw,62px);letter-spacing:.02em}}
@media(max-height:500px){.open-sky-cover .reality-title h1{font-size:44px}}

.open-sky-cover .reality-title{top:56%}

/* Austin's AI squared mark hands the scene over to The Reality Layer. */
.open-sky-cover .hero-monogram{bottom:105px;color:#fff;font-size:clamp(150px,19vw,280px);font-weight:500;letter-spacing:-.065em;line-height:.9;text-shadow:0 2px 24px #0004;width:fit-content}
.hero-monogram sup{font-size:.36em;line-height:0;vertical-align:super;letter-spacing:0;margin-left:.06em;font-weight:400}
@media(max-width:600px){.open-sky-cover .hero-monogram{font-size:clamp(145px,38vw,210px);bottom:105px}}
@media(max-height:500px){.open-sky-cover .hero-monogram{font-size:120px;bottom:85px}}
@supports not (animation-timeline:view()){.hero-monogram{display:none}}
@media(prefers-reduced-motion:reduce){.hero-monogram{display:none}}

/* Cathedral's square architectural study follows its description on phones. */
.world-project{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 60px;align-items:start}
.world-project .world-number{grid-column:1/-1}
.cathedral-film{margin:0;min-width:0}
.cathedral-film video{display:block;width:100%;height:auto;aspect-ratio:1;background:#000;object-fit:contain}
.cathedral-film figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--muted);font-size:11px;letter-spacing:.1em}
.cathedral-play{background:transparent;border:0;border-bottom:1px solid var(--line);padding:8px 0;font-size:12px;letter-spacing:0;cursor:pointer;min-width:48px}
.cathedral-play:hover{color:var(--ink)}
@media(max-width:760px){.world-project{grid-template-columns:1fr;gap:26px}.cathedral-film{width:100%;max-width:560px}}
