@import"https://fonts.googleapis.com/css2?family=Sour+Gummy:ital,wght@0,100..900;1,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Stack+Sans+Headline:wght@200..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";*{margin:0;padding:0;box-sizing:border-box;caret-color:transparent}body{font-family:Stack Sans Headline,sans-serif;background:#fff;min-height:100vh}.main-content-wrapper{transition:transform .3s ease-out}.main-content-wrapper.shifted{transform:translate(-300px)}.container{min-height:100vh;display:flex;justify-content:center;padding:2vw;position:relative;z-index:10;pointer-events:none;transform:translateY(0);transition:transform .8s ease}.container.hidden{transform:translateY(-100vh);pointer-events:none}.canvas{position:fixed!important;top:0;left:0;width:100vw!important;height:100vh!important;z-index:2;background:transparent!important}.content{text-align:center;pointer-events:auto;max-height:50vh;overflow:hidden}.greeting{font-size:4vw;font-weight:400;color:#666;margin:0;margin-top:3vw;letter-spacing:-.01em;font-family:"Instrument Serif",serif}.name{font-size:10vw;font-weight:700;color:#000;letter-spacing:-.03em;margin:0;line-height:1.1;cursor:pointer;display:flex;align-items:baseline;justify-content:center;width:fit-content;min-width:45vw;white-space:nowrap;overflow:hidden;transition:min-width .5s ease}.container.hidden .content{pointer-events:none}.container.hidden .name{cursor:auto}.name-base{display:inline-block}.name-extension{display:inline-block;max-width:0;overflow:hidden;transition:max-width .5s ease;white-space:nowrap}.name-punctuation{display:inline-block}.name.expanded .name-extension{max-width:60vw}@media(max-width:768px){.greeting{font-size:7vw;margin-top:7vw}.name{font-size:11vw;min-width:60vw}.name.expanded .name-extension{max-width:80vw}.content{max-height:15vh}}.journal-entry{padding:40px;font-family:Sour Gummy,sans-serif;font-optical-sizing:auto;color:#333;height:100%;overflow-y:auto}.journal-entry h1{margin-bottom:12px;font-weight:700;color:#312828;font-size:34px}.journal-entry h1.underlined{font-size:30px;margin-bottom:12px;border-bottom:3px solid #860e0e;padding-bottom:8px}.journal-entry h2{font-size:12px;font-style:italic;color:#666;line-height:10px;text-align:right;margin:0}.journal-entry p{padding:0;margin-top:0;font-size:14px;line-height:1.8;margin-bottom:12px;text-align:justify;color:#312828}.journal-entry blockquote{font-size:14px;font-style:italic;margin:18px 0;padding:12px 18px;border-left:4px solid #860e0e;color:#555}.journal-entry ul{font-size:14px;line-height:1.8;margin-bottom:12px;padding-left:20px}.journal-entry li{margin-bottom:5px}.journal-entry a{color:#860e0e;text-decoration:none;border-bottom:1px solid #c9a3a3;transition:all .2s ease-in-out}.journal-entry a:hover,.journal-entry a:active{color:#312828;border-bottom-color:#312828}.journal-entry h3{font-size:24px;font-weight:700;color:#312828;margin-top:30px;margin-bottom:10px}.journal-entry h4{font-size:20px;font-weight:700;font-style:italic;color:#555;margin-top:24px;margin-bottom:8px}.journal-entry h5{font-size:18px;font-weight:700;text-transform:uppercase;color:#666;margin-top:20px;margin-bottom:8px}.journal-entry ol{font-size:14px;line-height:1.8;margin-bottom:12px;padding-left:20px}.journal-entry ol li{margin-bottom:5px}.journal-entry strong,.journal-entry b{font-weight:700;color:#000}.journal-entry em,.journal-entry i{font-style:italic}.journal-entry s,.journal-entry del{text-decoration:line-through;opacity:.7}.journal-entry sub,.journal-entry sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.journal-entry sub{bottom:-.25em}.journal-entry sup{top:-.5em}.journal-entry mark{background-color:#fff9c4;padding:1px 3px}.journal-entry hr{border:0;height:2px;background-color:#860e0e;opacity:.3;margin:40px 0}.journal-entry img{max-width:100%;height:auto;border-radius:4px;margin:14px 0}.journal-entry figure{margin:20px 0}.journal-entry figcaption{font-size:11px;font-style:italic;color:#666;text-align:center;line-height:1.5;margin-top:8px}.journal-entry table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}.journal-entry th,.journal-entry td{border:1px dashed #860e0e;padding:10px;text-align:left;line-height:1.6}.journal-entry th{font-weight:700;color:#312828;font-size:14px}.journal-entry code{font-family:Courier New,Courier,monospace;background-color:#f4f4f4;padding:2px 5px;border-radius:3px;font-size:11px;color:#312828;border:1px solid #eee}.journal-entry pre{font-family:Courier New,Courier,monospace;background-color:#f8f8f8;border:1px solid #ddd;border-radius:4px;padding:14px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.6}.journal-entry pre code{font-family:inherit;background:none;padding:0;border:none;font-size:inherit}.journal-entry .note,.journal-entry .warning,.journal-entry .tip{font-size:14px;font-style:italic;margin:18px 0;padding:12px 18px;border-left-width:4px;border-left-style:solid;color:#555}.journal-entry .note{border-left-color:#0e6a86}.journal-entry .tip{border-left-color:#0e861c}.journal-entry .warning{border-left-color:#b9740d}.date-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.date-header-side{flex:1}.date-header-side.left{text-align:left}.date-header-side.right{text-align:right}.decorative-star{font-size:24px;color:#860e0e;opacity:.6}.date-badge{margin:0;padding:5px 15px;border:1px solid #860e0e;border-radius:20px;background:#860e0e0d}.title-container{text-align:center}.decorated-title{display:inline-block;position:relative;padding:0 25px;margin:0}.title-decoration{position:absolute;top:50%;transform:translateY(-50%);font-size:22px;color:#860e0e}.title-decoration.left{left:0}.title-decoration.right{right:0}.timeline-item{position:relative;padding-left:20px;border-left:3px solid rgba(134,14,14,.15)}.timeline-item.last{margin-bottom:20px}.timeline-dot{position:absolute;left:-7px;top:10px;width:10px;height:10px;background:#860e0e;border-radius:50%;outline:2px solid #860e0e}.gradient-highlight{background:linear-gradient(120deg,#fff9c4 0% 100%);background-repeat:no-repeat;background-size:100% 40%;background-position:0 80%;padding:2px 0}.text-emphasis{color:#860e0e;font-weight:600}.colored-emoji{color:#860e0e;font-size:16px}.solid-underline{border-bottom:2px solid #860e0e;padding-bottom:1px}.dotted-underline{border-bottom:2px dotted #860e0e}.callout-box{border:2px dashed #860e0e;border-radius:12px;padding:16px;position:relative;margin-top:12px;box-shadow:0 2px 8px #860e0e1a}.callout-label{position:absolute;top:-12px;left:20px;background:#fff;padding:0 12px;color:#860e0e;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:1.5px}.callout-box p{margin-bottom:0}.tech-highlight{background:#860e0e1a;padding:2px 6px;border-radius:3px;font-weight:600}.messy-circle{position:relative;display:inline-block;font-weight:700;color:#860e0e}.messy-circle:after{content:"";position:absolute;inset:-2px -5px -4px;border:2px solid rgba(134,14,14,.4);border-radius:95% 4% 92% 5%/4% 95% 6%;transform:rotate(-1deg);pointer-events:none}.handwritten-quote{font-family:Courier New,Courier,monospace;background-color:#fcfcfc;color:#000;font-size:16px;font-weight:700;background-image:linear-gradient(to bottom,transparent 29px,#ccc 29px);background-size:100% 30px;padding:0 20px;margin:30px 0;border:1px solid #ddd;box-shadow:3px 3px #0000001a;transform:rotate(1deg)}.handwritten-quote cite{display:block;text-align:right;font-size:12px;color:#666;padding-top:5px}.journal-stamp-title{display:inline-block;border:3px double #312828;padding:20px 30px;transform:rotate(-1deg);margin-bottom:35px;background-color:#fcfcfc;box-shadow:3px 4px #860e0e26;position:relative;z-index:1}.journal-stamp-title h1{margin:0!important;border:none!important;font-size:26px!important;letter-spacing:2px;text-transform:uppercase;color:#312828}.washi-tape{width:140px;height:35px;background-color:#860e0e1f;margin:0 auto -25px;transform:rotate(1deg);position:relative;z-index:10;border-left:1px dashed rgba(134,14,14,.3);border-right:1px dashed rgba(134,14,14,.3);box-shadow:0 2px 4px #0000001a}.ruled-paper-box{background-color:#fff;background-image:linear-gradient(to bottom,transparent 23px,#d0d0d0 23px);background-size:100% 24px;border:1px solid #ccc;padding:22px 25px 22px 35px;margin:20px 0;box-shadow:2px 5px 15px #00000014;position:relative;line-height:24px!important;transform:rotate(-1deg)}.ruled-paper-box:after{content:"";position:absolute;top:0;bottom:0;left:25px;width:1px;border-left:2px solid rgba(255,0,0,.2)}.ruled-paper-box p{margin:0;line-height:24px;color:#222;font-family:inherit}.pen-circle{border:2px solid #860e0e;border-radius:50% 20%/10% 40%;padding:4px 8px;display:inline-block;transform:rotate(-2deg);margin:0 2px}.journal-nav-container{position:fixed;bottom:2vw;left:50%;transform:translate(-50%,150%);z-index:10;opacity:0;transition:transform .5s ease,opacity .5s ease}.journal-nav-container.visible{transform:translate(-50%);opacity:1}.journal-nav-container.hidden{transform:translate(-50%,150%);opacity:0}.journal-nav-bar{display:flex;align-items:center;gap:.5vw;background-color:#0000004d;-webkit-backdrop-filter:blur(.4vw);backdrop-filter:blur(.4vw);border-radius:9999px;padding:.5vw .6vw}.journal-nav-button{transition-property:all;transition-duration:.3s;padding:.5vw 1vw;border-radius:9999px;font-size:.7vw;text-transform:uppercase;border:.1vw solid transparent;background-color:transparent;color:#fff;cursor:pointer}.journal-nav-button:hover{border-color:#fff}.journal-nav-button.active{background-color:#ffffffe6;color:#000;border-color:#fff}.journal-nav-button.active:hover{border-color:#fff}.blog-view-button-container{position:fixed;z-index:10;opacity:0;transition:transform .5s ease,opacity .5s ease}.blog-view-button-container.left{left:10vw;top:50%;transform:translate(-150%,-50%)}.blog-view-button-container.left.visible{transform:translateY(-50%);opacity:1}.blog-view-button-container.left.hidden{transform:translate(-150%,-50%);opacity:0}.blog-view-button-container.right{right:10vw;top:50%;transform:translate(150%,-50%)}.blog-view-button-container.right.visible{transform:translateY(-50%);opacity:1}.blog-view-button-container.right.hidden{transform:translate(150%,-50%);opacity:0}.blog-view-button{background-color:#0000004d;color:#fff;-webkit-backdrop-filter:blur(.4vw);backdrop-filter:blur(.4vw);text-decoration:none;display:block}.blog-view-button:hover{background-color:#fff;border-color:#0000004d;color:#000}@media(max-width:768px){.journal-nav-container{bottom:6vh}.journal-nav-bar{gap:1vh;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1vh 1.5vh}.journal-nav-button{padding:1vh .5vh;font-size:1.5vh;border-width:1px}.blog-view-button-container.left{left:2vh;top:30%}.blog-view-button-container.left.visible{transform:translateY(0);opacity:1}.blog-view-button-container.left.hidden{transform:translate(-150%);opacity:0}.blog-view-button-container.right{right:2vh;top:30%}.blog-view-button-container.right.visible{transform:translateY(0);opacity:1}.blog-view-button-container.right.hidden{transform:translate(150%);opacity:0}.blog-view-button{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1.5vh 2.5vh}}.projects-info-container{position:fixed;top:14vh;left:5vw;transform:translateY(10vw);width:35vw;text-align:left;z-index:1;pointer-events:none;opacity:1;transition:transform .8s ease;color:#000}.projects-info-container.visible{transform:translateY(0);z-index:20;transition:transform .8s ease,z-index 0s linear .8s;pointer-events:auto}.projects-info-container strong,.projects-info-container em{color:#fe6847}.projects-info-container.slide-up{transform:translateY(-100vw);z-index:1;pointer-events:none;transition:transform .8s ease}.project-detail-container{transform:translateY(100vw);transition:transform .8s ease;z-index:1}.project-detail-container.visible{transform:translateY(0);z-index:20;transition:transform .8s ease,z-index 0s linear .8s}.project-detail-container.visible.is-animating{z-index:1;transition:transform .8s ease}.project-description{transform:translate3d(0,100vw,0);opacity:0;transition:transform .8s cubic-bezier(.4,0,.2,1),opacity .8s cubic-bezier(.4,0,.2,1);position:relative;z-index:2;will-change:transform,opacity;backface-visibility:hidden}.project-detail-container.visible .project-description.visible{transform:translateZ(0);opacity:1}.project-description.slide-up{transform:translate3d(0,-100vw,0);opacity:0}.project-description p{transform:inherit;opacity:0;transition:transform .8s cubic-bezier(.4,0,.2,1),opacity .8s cubic-bezier(.4,0,.2,1)}.project-detail-container.visible .project-description.visible p.paragraph-stagger-0{opacity:1;transform:translateZ(0);transition-delay:0s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-1{opacity:1;transform:translateZ(0);transition-delay:.08s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-2{opacity:1;transform:translateZ(0);transition-delay:.16s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-3{opacity:1;transform:translateZ(0);transition-delay:.24s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-4{opacity:1;transform:translateZ(0);transition-delay:.32s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-5{opacity:1;transform:translateZ(0);transition-delay:.4s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-6{opacity:1;transform:translateZ(0);transition-delay:.48s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-7{opacity:1;transform:translateZ(0);transition-delay:.56s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-8{opacity:1;transform:translateZ(0);transition-delay:.64s}.project-detail-container.visible .project-description.visible p.paragraph-stagger-9{opacity:1;transform:translateZ(0);transition-delay:.72s}.project-description.slide-up p.paragraph-stagger-0{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:0s}.project-description.slide-up p.paragraph-stagger-1{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.08s}.project-description.slide-up p.paragraph-stagger-2{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.16s}.project-description.slide-up p.paragraph-stagger-3{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.24s}.project-description.slide-up p.paragraph-stagger-4{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.32s}.project-description.slide-up p.paragraph-stagger-5{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.4s}.project-description.slide-up p.paragraph-stagger-6{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.48s}.project-description.slide-up p.paragraph-stagger-7{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.56s}.project-description.slide-up p.paragraph-stagger-8{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.64s}.project-description.slide-up p.paragraph-stagger-9{transform:translate3d(0,-100vw,0);opacity:0;transition-delay:.72s}.projects-info-container h2{font-size:3.7vw;font-weight:700;margin-bottom:3vw;font-family:"Instrument Serif",serif;z-index:1;line-height:.9vw;width:fit-content;position:relative}.projects-info-container p{font-size:1.3vw;color:#666;line-height:1.8vw;font-weight:300;margin-bottom:1vw}.projects-info-container ul{margin:1vw 0;padding-left:.5vw;list-style:none;font-size:1.2vw}.projects-info-container li{margin-bottom:.5vw;position:relative;padding-left:1.5vw}.projects-info-container li:before{content:"•";position:absolute;left:0;top:0;color:#fe6847;font-size:3vw}.project-subtitle{font-size:1vw;font-weight:200;color:#888;margin:-1.5vw 0 2vw;letter-spacing:-.02vw;position:relative;z-index:1}.projects-title{transform:translateY(100vw);transition:transform .8s ease;position:relative;z-index:1}.projects-overview-description{transform:translateY(100vw);transition:transform .8s ease;position:relative;z-index:2}.projects-info-container.visible .projects-title{transform:translateY(0);transition-delay:.2s}.projects-info-container.visible .projects-overview-description{transform:translateY(0);transition-delay:.3s}.projects-info-container.visible.is-returning .projects-title{transform:translateY(0);transition-delay:.1s}.projects-info-container.visible.is-returning .projects-overview-description{transform:translateY(0);transition-delay:0s}.projects-info-container.slide-up .projects-title,.projects-info-container.slide-up .projects-overview-description{transform:translateY(-100vw);transition-delay:1s}.projects-info-container:not(.visible):not(.slide-up) .projects-title{transition:transform 1.2s ease}.projects-info-container:not(.visible):not(.slide-up) .projects-overview-description{transition:transform 1.2s ease}.project-title-icons{display:inline-flex;gap:1vw;margin-left:1.5vw;vertical-align:middle;transform:translateY(-.3vw);position:absolute;left:100%;top:50%;transform:translateY(-50%)}.project-title-icons a{display:flex;align-items:center;transition:opacity .3s ease;color:#000}.project-title-icons a:hover{opacity:.6}.project-icon{width:3vw;height:3vw;fill:currentColor}@media(max-width:768px){.projects-info-container{top:10vh;left:5vh;width:80vw;text-align:left;transform:translateY(120vh)}.projects-info-container.visible{transform:translateY(0)}.projects-info-container.slide-up{transform:translateY(-120vh)}.projects-info-container h2{font-size:3vh;margin-bottom:1vh;line-height:1;width:100%;position:relative;display:flex;justify-content:flex-start;align-items:center}.projects-info-container p{font-size:1.4vh;line-height:1.5}.projects-info-container ul{margin:1vh 0;padding-left:1vh;font-size:1.4vh}.projects-info-container li{margin-bottom:.75vh;padding-left:2vh}.projects-info-container li:before{font-size:2.25vh}.project-subtitle{font-size:1.4vh;margin:-1vh 0 1vh}.project-title-icons{position:absolute;right:0;left:auto;top:50%;transform:translateY(-50%);display:flex;gap:2vh;z-index:30;pointer-events:auto}.project-icon{width:3vh;height:3vh}}.about-info-container{position:fixed;top:12vh;right:5vw;transform:translateY(10vh);width:45vw;text-align:left;z-index:1;pointer-events:none;opacity:1;transition:transform .8s ease;color:#000}.about-info-container.visible{transform:translateY(0);z-index:20;transition:transform .8s ease,z-index 0s linear .8s;pointer-events:auto}.about-info-container.slide-up{transform:translateY(-100vh);z-index:1;pointer-events:none;transition:transform .8s ease}.about-title{font-size:3.7vw;font-weight:700;margin-bottom:3vw;font-family:"Instrument Serif",serif;line-height:.9;transform:translateY(100vh);transition:transform .8s ease;position:relative;z-index:1}.about-info-container.visible .about-title{transform:translateY(0);transition-delay:.2s}.about-description{font-size:1.3vw;color:#666;line-height:1.5;font-weight:300;margin-bottom:2vw;transform:translateY(100vh);transition:transform .8s ease;position:relative;z-index:2}.about-info-container.visible .about-description{transform:translateY(0);transition-delay:.3s}.about-links{display:flex;flex-direction:column;gap:2vw;transform:translateY(100vh);transition:transform .8s ease}.about-info-container.visible .about-links{transform:translateY(0);transition-delay:.4s}.about-link{display:flex;flex-direction:row;align-items:center;gap:1.5vw;text-decoration:none;color:#000;transition:transform .3s ease;cursor:pointer}.about-link:hover{transform:translate(1vw)}.about-icon{width:2.5vw;height:2.5vw;flex-shrink:0}.about-icon svg{width:100%;height:100%;stroke:#000}.about-text-content{display:flex;flex-direction:column;gap:.3vw}.about-label{font-size:.9vw;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.1vw}.about-value{font-size:1.5vw;font-weight:800;color:#000}@media(max-width:768px){.about-info-container{top:10vh;left:5vh;width:80vw;transform:translateY(70vh)}.about-info-container.visible{transform:translateY(0)}.about-info-container.slide-up{transform:translateY(-70vh)}.about-title{font-size:3vh;margin-bottom:1.5vh;line-height:1.2}.about-description{font-size:1.6vh;line-height:1.5}.about-links{gap:1.5vh}.about-icon{width:3vh;height:3vh}.about-link{gap:.75vh}.about-label{font-size:1.25vh}.about-value{font-size:2vh}}.back-button{position:fixed;top:5vh;left:5vw;z-index:100;background:none;border:none;padding:0;color:#666;line-height:1;cursor:pointer;opacity:1;transform:translate(-10vw);pointer-events:none;transition:transform .8s ease}.back-button .material-symbols-outlined{font-size:1.7vw}.back-button svg{width:1.7vw;height:1.7vw;display:block}.back-button.visible{transform:translate(0);pointer-events:auto}.back-button:hover{color:#000}@media(max-width:768px){.back-button{top:4vh;left:6vw;transform:translate(-16vw)}.back-button .material-symbols-outlined{font-size:8vw}.back-button svg{width:8vw;height:8vw}}.scroll-arrows-container{position:fixed;bottom:8vh;left:22.5vw;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transition:opacity .5s ease;--pulse-opacity: 1}.scroll-arrows-container.visible{opacity:1;animation:pulse 2s ease-in-out infinite}.scroll-text{position:absolute;right:100%;bottom:.8vw;margin-right:1vw;font-size:.9vw;font-weight:700;color:#999;letter-spacing:.05vw;opacity:0;transition:opacity .4s ease-in-out;pointer-events:none;white-space:nowrap}.scroll-text.visible{opacity:var(--pulse-opacity)}.scroll-arrow{font-size:2.5vw;color:#999;line-height:1;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .4s ease-in-out}.scroll-arrow.visible{opacity:var(--pulse-opacity);pointer-events:auto}@keyframes pulse{0%,to{--pulse-opacity: .4}50%{--pulse-opacity: .7}}@media(max-width:768px){.scroll-arrows-container{position:fixed;left:90vw;bottom:35vh}.scroll-text{font-size:2.5vw;margin-right:.5vw;bottom:2.75vw}.scroll-arrow{font-size:8vw}}.credits-button{position:fixed;top:1.4vw;right:1.4vw;z-index:50;width:1.4vw;height:1.4vw;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;color:#000;cursor:pointer;transform:translate(200%);transition:transform .3s ease-out;pointer-events:none;padding:0}.credits-button.visible{transform:translate(0);pointer-events:auto}.credits-button svg{width:100%;height:100%;color:#000}.credits-button:hover{background:#0000001a;transform:scale(1.1)}.credits-button:hover svg{stroke:#000}.credits-sidebar{position:fixed;top:0;right:0;width:20vw;height:100%;background:#f7f7f7;box-shadow:-.15vw 0 .7vw #0000001a;transform:translate(100%);transition:transform .3s ease-out;z-index:100;overflow-y:auto}.credits-sidebar.open{transform:translate(0)}.sidebar-content{padding:2.8vw 1.4vw}.sidebar-close{position:absolute;top:1vw;right:1vw;background:none;border:none;font-size:1.6vw;color:#333;cursor:pointer;line-height:1}.sidebar-title{font-size:1.1vw;font-weight:700;margin-bottom:1.4vw}.sidebar-subheading{font-size:1.1vw;font-weight:700;margin-bottom:1.4vw;margin-top:3vw}.credits-list{display:flex;flex-direction:column;gap:1.4vw}.credit-item{border-left:.2vw solid #FE6847;padding-left:.7vw}.credit-source{font-weight:600;font-size:1vw;margin-bottom:.35vw;font-family:"Instrument Serif",serif}.credit-text{font-size:.6vw;color:#666;line-height:1.4}.credit-text a{color:#333;text-decoration:underline}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;z-index:90;pointer-events:none;transition:background .3s ease-out}.overlay.active{background:#0003;pointer-events:auto}@media(max-width:768px){.credits-button{top:5vw;right:5vw;width:7vw;height:7vw}.credits-sidebar{width:80vw;box-shadow:-2px 0 10px #0000001a}.sidebar-content{padding:8vw 6vw}.sidebar-close{top:4vw;right:4vw;font-size:8vw}.sidebar-title{font-size:5vw;margin-bottom:4vw}.sidebar-subheading{font-size:4.5vw;margin-bottom:4vw;margin-top:8vw}.credits-list{gap:5vw}.credit-item{border-left-width:1px;padding-left:3vw}.credit-source{font-size:4vw;margin-bottom:1.5vw}.credit-text{font-size:3vw}}.loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;transform:translateY(0);transition:transform 1s cubic-bezier(.76,0,.24,1)}.loading-screen.fade-out{transform:translateY(-100%);pointer-events:none}.loading-content{display:flex;flex-direction:column;align-items:center;gap:3rem}.loading-spinner{width:80px;height:80px;border:2px solid rgba(0,0,0,.08);border-top-color:#000;border-radius:50%;animation:spin 1.2s cubic-bezier(.68,-.55,.265,1.55) infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:Stack Sans Headline,sans-serif;font-size:1.1rem;color:#000;letter-spacing:.15em;font-weight:400;text-transform:uppercase;animation:fadeIn 1.5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-timeout-notification{position:fixed;top:40px;left:50%;transform:translate(-50%);z-index:10001;animation:slideDownNotification .4s ease-out}@keyframes slideDownNotification{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.loading-timeout-content{background:#ffffff26;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#000;padding:16px 24px;border-radius:16px;box-shadow:0 8px 32px #0000001a,0 0 0 1px #ffffff4d inset;border:1px solid rgba(255,255,255,.4);display:flex;align-items:center;gap:16px}.loading-timeout-icon{width:24px;height:24px;flex-shrink:0}.loading-timeout-content p{margin:0;font-size:14px;font-weight:500;line-height:1.5}.mobile-disclaimer{position:fixed;top:5vw;left:50%;transform:translate(-50%);z-index:10000;animation:slideDown .4s ease-out;width:calc(100% - 8vw)}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.mobile-disclaimer-content{background:#ffffff26;backdrop-filter:blur(5vw);-webkit-backdrop-filter:blur(5vw);color:#000;border-radius:4vw;box-shadow:0 2vw 8vw #0000001a,0 0 0 .25vw #ffffff4d inset;border:.25vw solid rgba(255,255,255,.4);display:flex;align-items:center;padding:4vw 5vw 4vw 7.5vw;gap:5vw;position:relative}.mobile-disclaimer-icon{width:6vw;height:6vw;flex-shrink:0}.mobile-disclaimer-content p{margin:0;font-size:2.5vw;font-weight:500;line-height:1.5;flex:1;padding-right:7vw}.mobile-disclaimer-close{background:none;border:none;cursor:pointer;padding:0;position:absolute;top:50%;right:4vw;transform:translateY(-50%);width:6vw;height:6vw;flex-shrink:0}.mobile-disclaimer-close svg{width:100%;height:100%;stroke:#000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.mobile-view{min-height:100vh;background:#fff;font-family:Stack Sans Headline,sans-serif;padding:0;overflow-x:hidden}.mobile-hero{text-align:center;padding:4rem 1.5rem 3rem;background:linear-gradient(180deg,#fafafa,#fff)}.mobile-greeting{font-size:1.25rem;font-weight:400;color:#666;margin:0 0 .25rem;font-family:"Instrument Serif",serif}.mobile-name{font-size:3.5rem;font-weight:700;color:#000;letter-spacing:-.03em;margin:0;line-height:1.1}.mobile-tagline{font-size:1rem;color:#666;margin:1rem 0 0;max-width:280px;margin-left:auto;margin-right:auto;line-height:1.5}.mobile-section{padding:2.5rem 1.5rem;border-top:1px solid #eee}.mobile-section-title{font-size:1.5rem;font-weight:600;color:#000;margin:0 0 1.25rem;letter-spacing:-.02em}.mobile-about-text{font-size:.95rem;color:#444;line-height:1.7;margin:0 0 1rem}.mobile-links{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.mobile-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#f8f8f8;border-radius:8px;text-decoration:none;color:#333;font-size:.875rem;transition:background .2s ease}.mobile-link:active{background:#f0f0f0}.mobile-link-icon{width:20px;height:20px;flex-shrink:0}.mobile-link-icon svg{width:100%;height:100%}.mobile-project{background:#fafafa;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem;overflow:hidden}.mobile-project:last-of-type{margin-bottom:0}.mobile-project-header{margin-bottom:1rem}.mobile-project-title{font-size:1.25rem;font-weight:600;color:#000;margin:0 0 .25rem}.mobile-project-subtitle{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.mobile-swipe-hint{font-size:.8rem;color:#999;margin:0 0 1rem;font-style:italic}.mobile-slides-container{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:1rem}.mobile-slides-container::-webkit-scrollbar{display:none}.mobile-slide{flex:0 0 100%;width:100%;min-width:100%;scroll-snap-align:center}.mobile-project-media{position:relative;width:100%;border-radius:8px;overflow:hidden;margin-bottom:1rem;background:#eee;cursor:pointer}.mobile-media-zoom-hint{position:absolute;bottom:8px;right:8px;width:28px;height:28px;background:#0009;border-radius:6px;display:flex;align-items:center;justify-content:center;pointer-events:none}.mobile-media-zoom-hint svg{width:16px;height:16px;color:#fff}.mobile-modal-overlay{position:fixed;inset:0;background:#000000f2;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-modal-content{position:relative;max-width:100%;max-height:100%}.mobile-modal-content img,.mobile-modal-content video{max-width:100%;max-height:85vh;border-radius:8px;object-fit:contain}.mobile-modal-close{position:absolute;top:-40px;right:0;width:36px;height:36px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-project-media img,.mobile-project-media video{width:100%;height:auto;display:block}.mobile-project-description{font-size:.9rem;color:#444;line-height:1.65}.mobile-project-description strong{color:#000}.mobile-project-description ul{padding-left:1.25rem;margin:.75rem 0}.mobile-project-description li{margin-bottom:.5rem}.mobile-slide-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #eee}.mobile-slide-dot{width:8px;height:8px;border-radius:50%;background:#ddd;transition:background .2s ease,transform .2s ease}.mobile-slide-dot.active{background:#000;transform:scale(1.2)}.mobile-journal-section{background:#fafafa}.mobile-journal-link{display:inline-block;padding:.875rem 1.5rem;background:#000;color:#fff;text-decoration:none;border-radius:8px;font-size:.95rem;font-weight:500;margin-top:.5rem;transition:background .2s ease}.mobile-journal-link:active{background:#333}.mobile-footer{text-align:center;padding:2rem 1.5rem;border-top:1px solid #eee;background:#fafafa}.mobile-footer p{margin:0;font-size:.875rem;color:#666}.mobile-footer-note{margin-top:.5rem!important;font-size:.75rem!important;color:#999!important}::selection{background-color:#fe6847;color:#fffff2}
