:root{--ground-nav-height: 120px}body{margin:0;padding-bottom:calc(var(--ground-nav-height) + env(safe-area-inset-bottom,0px))}@media (max-width: 768px){:root{--ground-nav-height: 0px}body{padding-bottom:env(safe-area-inset-bottom,0px)}}:root{--ground-color: #c4b5a0;--ground-dark: #9a8c73}.ground-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100vw;height:var(--ground-height, 120px);z-index:1105;pointer-events:auto}.ground-ridge{position:absolute;top:-28px;left:0;right:0;width:100%;height:72px;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}.ground-inner{position:absolute;inset:0;background:radial-gradient(1px 1px at 18% 28%,rgba(0,0,0,.1) 0 40%,transparent 41%) repeat,radial-gradient(1px 1px at 72% 62%,rgba(0,0,0,.08) 0 45%,transparent 46%) repeat,linear-gradient(180deg,#0000000d,#0000,#0000000a 70%,#00000014),linear-gradient(to bottom,var(--ground-color),var(--ground-dark));background-size:180px 180px,220px 200px,100% 100%,100% 100%;display:flex;align-items:center;justify-content:center;padding:0 40px;pointer-events:auto}.nav-list{display:flex;align-items:center;justify-content:space-evenly;list-style:none;margin:0;padding:0;width:100%;max-width:800px;position:relative;z-index:2}.nav-list li{margin:0;padding:0}.ground-inner a{display:inline-block;text-decoration:none;color:#3a3a32;font-weight:600;font-size:1.25rem;padding:10px 20px;border-radius:8px;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);transition:all .3s ease}.ground-inner a:hover{background:#ffffff59;transform:translateY(-2px)}.ground-inner a:focus{outline:2px solid #6b7d5f;outline-offset:2px}.ground-inner a[aria-current=page]{background:#ffffff73;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}@media (max-width: 768px){.ground-ridge{top:-22px;height:60px}.ground-inner{padding:0 16px}.ground-inner nav{width:100%}.nav-list{gap:12px;max-width:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.ground-inner a{font-size:.95rem;padding:8px 12px;white-space:nowrap}}@media (max-width: 480px){.ground-inner{padding:0 12px}.ground-inner a{font-size:.85rem;padding:6px 10px}}.prairie-grass-layer{position:fixed;bottom:calc(var(--ground-height, 120px) - 24px);left:0;width:100vw;height:260px;pointer-events:none}.prairie-grass-layer-back{z-index:3}.prairie-grass-layer-front{z-index:6}.prairie-grass{width:100%;height:100%;filter:none;mix-blend-mode:normal;opacity:1;background:transparent}.prairie-grass-back,.prairie-grass-front{pointer-events:none}.windmill{position:fixed;left:var(--windmill-x, 28%);bottom:calc(var(--windmill-ground-height, var(--ground-height, 120px)) + var(--windmill-ground-offset, 0px));--windmill-scale: 2.5;--windmill-hub-offset-x: calc(.11% - 5px) ;--windmill-hub-offset-y: -.56%;width:calc(clamp(220px,22vw,360px) * var(--windmill-scale));z-index:4;pointer-events:none;transform:translate(calc(-50% + var(--windmill-scroll-offset, 0px)),var(--windmill-base-trim, 0%));transform-origin:bottom center}.windmill-assembly{position:relative;width:100%;aspect-ratio:1 / 1}.windmill-base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.windmill-blades-wrap{position:absolute;left:calc(var(--windmill-hub-x, 45.2%) + var(--windmill-hub-offset-x, 0%));top:calc(var(--windmill-hub-y, 24.2%) + var(--windmill-hub-offset-y, 0%));width:var(--windmill-blades-size, 34%);height:var(--windmill-blades-size, 34%);transform:translate(-50%,-50%) rotate(var(--windmill-blades-hover-rot, 0deg));transform-origin:50% 50%;animation:windmill-teeter 9s ease-in-out infinite;will-change:transform}.windmill-blades{width:100%;height:100%;display:block;transform-origin:50% 50%}@keyframes windmill-teeter{0%{transform:translate(-50%,-50%) rotate(var(--windmill-blades-hover-rot, 0deg)) rotate(-10deg)}50%{transform:translate(-50%,-50%) rotate(var(--windmill-blades-hover-rot, 0deg)) rotate(10deg)}to{transform:translate(-50%,-50%) rotate(var(--windmill-blades-hover-rot, 0deg)) rotate(-10deg)}}@media (prefers-reduced-motion: reduce){.windmill-blades-wrap{animation:none}}@media (max-width: 640px){.windmill{left:var(--windmill-x-mobile, 24%);width:calc(clamp(180px,40vw,260px) * var(--windmill-scale))}}.horizontal-shell[data-board-open=true] .windmill-blades-wrap{animation-play-state:paused}.wooden-sign-container{position:fixed;background:none;border:none;padding:0;appearance:none;left:var(--sign-x, 2600px);bottom:calc(var(--sign-ground-height, var(--ground-height, 120px)) - 138px);width:clamp(480px,32vw,640px);z-index:5;transform:translate(var(--sign-scroll-offset, 0px));cursor:pointer;will-change:transform;transform-origin:bottom center}.wooden-sign-image{width:100%;height:auto;display:block;filter:drop-shadow(2px 4px 6px rgba(0,0,0,.4));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.wooden-sign-container:hover .wooden-sign-image{transform:scale(1.05) rotate(2deg);filter:drop-shadow(4px 8px 12px rgba(0,0,0,.5)) brightness(1.1)}.wooden-sign-container:focus{outline:none}.wooden-sign-container:focus .wooden-sign-image{transform:scale(1.05);filter:drop-shadow(0 0 0 4px rgba(255,255,255,.5))}@media (max-width: 768px){.wooden-sign-container{width:clamp(360px,84vw,480px);left:var(--sign-x-mobile, 1200px);bottom:calc(var(--sign-ground-height, var(--ground-height, 120px)) - 126px)}}.bug-trail{position:fixed;left:var(--trail-left, 1200px);top:var(--trail-top, 120px);width:var(--trail-width, 1400px);height:var(--trail-height, 420px);transform:translate(var(--trail-scroll-offset, 0px));pointer-events:none;z-index:4}.bug-trail-svg{width:100%;height:100%;display:block;overflow:visible}.bug-trail-dots{fill:none;stroke:#3a2f1f;stroke-width:4;stroke-linecap:round;stroke-dasharray:2 14}.bug-trail-reveal{fill:none;stroke:#fff;stroke-width:7;stroke-linecap:round}.bug-trail-dots-tail{fill:none;stroke:#3a2f1f;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1 11;opacity:.45}.bug-trail-tail-reveal{fill:none;stroke:#fff;stroke-width:7;stroke-linecap:round}.bug-trail-bug{fill:#2f2217;stroke:#2f2217;stroke-width:1.5;transform-origin:center;opacity:0}.bug-trail-arrow{fill:none;stroke:#3a2f1f;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .2s ease}.bug-trail-label{position:absolute;top:0;left:var(--trail-label-left, 0px);width:var(--trail-label-width, 160px);height:var(--trail-label-height, 32px);display:flex;align-items:center;justify-content:flex-start;font-family:var(--font-display);font-size:3.6rem;line-height:1;letter-spacing:.02em;color:#3a2f1f;opacity:var(--trail-label-opacity, 0);transform:translateY(var(--trail-label-offset, 18px));will-change:transform,opacity}@media (max-width: 768px){.bug-trail{z-index:4}.bug-trail-dots{stroke-width:3;stroke-dasharray:2 10}.bug-trail-dots-tail{stroke-width:2;stroke-dasharray:1 8}.bug-trail-label{font-size:1rem}}.contact-trail{position:fixed;left:var(--contact-trail-left, 3300px);top:var(--contact-trail-top, 220px);width:var(--contact-trail-width, 520px);height:var(--contact-trail-height, 260px);transform:translate(var(--contact-trail-scroll-offset, 0px));pointer-events:none;z-index:4}.contact-trail-svg{width:100%;height:100%;display:block;overflow:visible}.contact-trail-dots{fill:none;stroke:#3a2f1f;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:2 12}.contact-trail-reveal{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round}@media (max-width: 768px){.contact-trail-dots{stroke-width:3;stroke-dasharray:2 9}.contact-trail-reveal{stroke-width:5}}.barrel-container{position:fixed;left:var(--barrel-x, 2860px);bottom:calc(var(--barrel-ground-height, var(--ground-height, 120px)) - 70px);width:clamp(120px,10vw,190px);z-index:6;transform:translate(var(--barrel-scroll-offset, 0px));pointer-events:none;will-change:transform}.barrel-image{width:100%;height:auto;display:block;filter:drop-shadow(2px 5px 8px rgba(0,0,0,.35))}@media (max-width: 768px){.barrel-container{left:var(--barrel-x-mobile, 1320px);bottom:calc(var(--barrel-ground-height, var(--ground-height, 120px)) - 60px);width:clamp(90px,18vw,140px)}}.mailbox-container{position:fixed;left:var(--mailbox-x, 3800px);bottom:calc(var(--mailbox-ground-height, var(--ground-height, 120px)) - 40px);width:clamp(240px,20vw,360px);z-index:5;transform:translate(var(--mailbox-scroll-offset, 0px));pointer-events:auto;cursor:pointer;will-change:transform}.mailbox-image{width:100%;height:auto;display:block;filter:drop-shadow(2px 4px 8px rgba(0,0,0,.35))}.mailbox-hinge{position:absolute;left:calc(-8% + 220px);top:calc(16% - 150px);width:18%;height:auto;transform-origin:bottom left;transform:rotate(0);transition:none;filter:drop-shadow(1px 2px 3px rgba(0,0,0,.3));pointer-events:none;will-change:transform}@media (max-width: 768px){.mailbox-container{width:clamp(160px,36vw,240px);left:var(--mailbox-x-mobile, 1800px);bottom:calc(var(--mailbox-ground-height, var(--ground-height, 120px)) - 28px)}.mailbox-hinge{left:calc(-10% + 146px);top:calc(18% - 100px);width:20%}}.ranch-container{position:fixed;left:var(--ranch-x, 4650px);bottom:calc(var(--ranch-ground-height, var(--ground-height, 120px)) - 430px);width:clamp(1200px,90vw,1800px);z-index:3;transform:translate(var(--ranch-scroll-offset, 0px));pointer-events:none;will-change:transform}.ranch-image{width:100%;height:auto;display:block;filter:drop-shadow(4px 8px 16px rgba(0,0,0,.25))}@media (max-width: 768px){.ranch-container{width:clamp(600px,150vw,1000px);left:var(--ranch-x-mobile, 2250px);bottom:calc(var(--ranch-ground-height, var(--ground-height, 120px)) - 313px)}}.horizontal-shell{position:relative;height:100vh;min-height:100svh;width:100vw;overflow:hidden;background:radial-gradient(circle,#f8f0d0,#e6d6ac)}.scroll-track{position:relative;height:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(100vw,100vw);overflow-x:auto;overflow-y:hidden;scroll-snap-type:none;scroll-behavior:auto;padding:0;z-index:5;touch-action:pan-x pan-y;overscroll-behavior:none}.scroll-track::-webkit-scrollbar{height:10px}.scroll-track::-webkit-scrollbar-track{background:#0000000d}.scroll-track::-webkit-scrollbar-thumb{background:#c4b5a0;border-radius:999px}.panel{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;padding:3.5rem 6vw;padding-bottom:calc(var(--ground-nav-height) + 80px);scroll-snap-align:start;min-height:100%;color:#2f2f2f}.panel-inner{max-width:960px;width:100%;display:flex;flex-direction:column;gap:.9rem;z-index:2}.panel-inner.compact{max-width:1100px}.hero-panel,.projects-panel,.about-panel,.contact-panel{background:transparent}.projects-panel{align-items:center;justify-content:center}.about-panel .panel-inner{margin-left:-620px}.about-panel h2{font-size:clamp(6.48rem,8.1vw + 3.24rem,10.8rem);line-height:1.1}.section-header{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.eyebrow{display:inline-flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:#6b7d5f;font-weight:700}.eyebrow-divider{width:2px;height:1em;background:currentColor;opacity:.7}.hero-panel .eyebrow{font-size:1.6rem}h1,h2{margin:0;letter-spacing:-.02em}h1{font-size:clamp(2rem,2.4vw + 1rem,3rem);line-height:1.05}.hero-panel h1{font-size:clamp(5.2rem,6.8vw + 2.8rem,8.8rem);line-height:1.02}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:.5rem}.resume-button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.9rem;padding:.6rem 1.2rem;border-radius:999px;border:2px solid rgba(90,63,36,.5);background:#fdfcf5e6;color:#5a3f24;cursor:pointer;box-shadow:0 6px 14px #5a3f2426;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.resume-button:hover{transform:translateY(-2px);background:#fff7ea;box-shadow:0 10px 18px #5a3f2433}.portfolio-button{border-style:dashed;background:#fffcf5cc}.resume-overlay{position:fixed;inset:0;background:#3c2d1e59;display:flex;align-items:center;justify-content:flex-end;z-index:2500;padding:2rem 3rem 2rem 1.5rem}.resume-modal{width:min(62vw,960px);height:92vh;max-height:92vh;overflow:hidden;background:#f7f1dd;border:1px solid rgba(166,124,82,.5);border-radius:14px;box-shadow:0 24px 60px #2d201259;padding:1.5rem 1.75rem 1.8rem;position:relative;display:flex;flex-direction:column;margin-right:200px}.resume-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:1rem}.resume-actions{display:flex;align-items:center;gap:10px}.resume-header h3{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,1.2vw + 1.2rem,2.2rem);color:#4a3624}.resume-download{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;border:1px solid rgba(90,63,36,.4);background:#ffffffe6;color:#6b4f2c;border-radius:999px;padding:.35rem .7rem;text-decoration:none;cursor:pointer;transition:background .2s ease,transform .2s ease}.resume-download:hover{background:#fff7ea;transform:translateY(-1px)}.resume-close{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;border:1px solid rgba(90,63,36,.4);background:#fffc;color:#6b4f2c;border-radius:999px;padding:.35rem .7rem;cursor:pointer}.resume-content{display:flex;flex-direction:column;flex:1;min-height:0;color:#4a3b2d}.resume-image{width:100%;height:100%;display:block;object-fit:contain;border-radius:8px;background:#fffdf7}.resume-lead{font-size:1.05rem;line-height:1.5;margin:0}.resume-section h4{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.1rem;letter-spacing:.02em;color:#5a3f24}.resume-section ul{margin:0;padding-left:1.2rem;display:grid;gap:.4rem}.resume-section li{line-height:1.4}.resume-role{display:block;font-weight:600}.resume-meta{display:block;font-family:var(--font-mono);font-size:.85rem;color:#5a3f24b3}.resume-tags{display:flex;flex-wrap:wrap;gap:8px}.resume-tags span{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;padding:.35rem .6rem;border-radius:999px;background:#fff9;border:1px solid rgba(166,124,82,.4);color:#5a3f24}.resume-note{font-family:var(--font-mono);font-size:.85rem;color:#5a3f24b3;margin:0}h2{font-size:clamp(1.2rem,1.4vw + .9rem,2rem);line-height:1.2}.contact-cta{opacity:var(--cta-opacity, 0);transform:translateY(var(--cta-offset, 18px));will-change:transform,opacity}.about-popup{position:fixed;right:clamp(1.5rem,6vw,6vw);top:clamp(3rem,10vh,12vh);transform:translateY(var(--about-popup-offset, 26px));background:#ead8b2f5;border-radius:18px;padding:1.6rem 2rem;box-shadow:0 20px 50px #4d392040;color:#3a2f1f;max-width:min(84vw,520px);display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;opacity:var(--about-popup-opacity, 0);pointer-events:none;will-change:transform,opacity;z-index:1400}.about-popup-body{margin:.4rem 0 0;font-family:var(--font-body);font-size:1.57rem;line-height:1.45;text-transform:none;letter-spacing:0;color:#3a2f1feb}.about-popup-body+.about-popup-body{margin-top:.75rem}.cta{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.25rem;border-radius:10px;background:#6b7d5f;color:#fdfcf5;font-weight:700;width:fit-content;box-shadow:0 8px 20px #6b7d5f40;transition:transform .2s ease,box-shadow .2s ease}.cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px #6b7d5f4d}@media (max-width: 900px){.panel{padding:3rem 1.75rem}.about-panel .panel-inner{margin-left:-560px}}@media (max-width: 768px){.about-panel .panel-inner{margin-left:0}}@media (max-width: 640px){.panel{padding:2.25rem 1.2rem}.hero-panel h1{font-size:clamp(3rem,10vw,4.6rem)}.hero-panel .eyebrow{font-size:.95rem}.resume-button{font-size:.8rem;padding:.55rem 1rem}.resume-modal{width:min(94vw,520px);height:86vh;max-height:86vh;padding:1.1rem;margin-right:0}.resume-overlay{justify-content:center;padding:1.25rem}.resume-header{flex-direction:column;align-items:flex-start}.about-panel .panel-inner{margin-left:0}.about-popup{right:1rem;left:1rem;top:auto;bottom:calc(var(--ground-nav-height) + 16px);padding:1.2rem 1.4rem;border-radius:14px}.about-popup-body{font-size:1.1rem}.cta{width:100%;justify-content:center}}.mobile-nav{display:none;flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:1.25rem}.mobile-nav a{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;padding:.4rem .7rem;border-radius:999px;border:1px solid rgba(90,63,36,.35);background:#ffffffe6;color:#5a3f24}.horizontal-shell.is-mobile{height:auto;min-height:100%;overflow:visible}.horizontal-shell.is-mobile .scroll-track{display:block;height:auto;overflow-x:hidden;overflow-y:visible;scrollbar-width:none}.horizontal-shell.is-mobile .scroll-track::-webkit-scrollbar{display:none}.horizontal-shell.is-mobile .panel{min-height:auto;padding:2rem 1.25rem 2.5rem;scroll-snap-align:none}.horizontal-shell.is-mobile .panel+.panel{border-top:1px solid rgba(90,63,36,.15)}.horizontal-shell.is-mobile .panel-inner{max-width:100%;gap:.75rem}.horizontal-shell.is-mobile .projects-panel{align-items:flex-start;justify-content:flex-start}.horizontal-shell.is-mobile .mobile-nav{display:flex}.horizontal-shell.is-mobile .contact-cta{opacity:1!important;transform:none!important}.horizontal-shell.is-mobile .mobile-project-actions{margin-top:.75rem}.horizontal-shell.is-mobile .about-popup{position:static;opacity:1!important;transform:none!important;pointer-events:auto;margin-top:1rem;max-width:100%;padding:0;background:transparent;box-shadow:none;border-radius:0}.horizontal-shell.is-mobile .about-popup-body{margin-top:.6rem;font-size:1rem;line-height:1.5}.horizontal-shell.is-mobile .about-popup-body:first-child{margin-top:0}.bulletin-board-page{--recipe-portfolio-expanded: 340px;--recipe-portfolio-collapsed: 80px;--recipe-portfolio-cards: 260px;--recipe-tray-height: var(--recipe-portfolio-expanded);min-height:100vh;background:radial-gradient(circle at top,#faf5ebe6,#e7dbc9f2);color:#3b2f22;padding:32px 24px calc(var(--recipe-tray-height) + 32px);box-sizing:border-box}.bulletin-board-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;max-width:1080px;margin:0 auto 24px}.bulletin-board-back{border:1px solid rgba(90,63,36,.4);background:#fffaf0e6;color:#5a3f24;padding:8px 14px;border-radius:999px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.bulletin-board-back:hover{transform:translateY(-1px);box-shadow:0 6px 16px #5a3f2433}.bulletin-board-eyebrow{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:2px;color:#5a3f24b3}.bulletin-board-title{margin:0;font-size:28px}.bulletin-board-content{max-width:1080px;margin:0 auto}@media (max-width: 768px){.bulletin-board-page{--recipe-portfolio-expanded: 320px;--recipe-portfolio-collapsed: 72px;--recipe-portfolio-cards: 230px;--recipe-tray-height: 0px;padding:24px 16px}.bulletin-board-title{font-size:24px}.mobile-recipe-tray{margin-top:1.5rem;padding:1rem;background:#fffaf0e6;border:1px solid rgba(90,63,36,.2);border-radius:14px;box-shadow:0 12px 24px #5a3f241f}.mobile-recipe-tray-header{display:flex;flex-direction:column;gap:4px;margin-bottom:.75rem}.mobile-recipe-tray-header h3{margin:0;font-size:18px}.mobile-recipe-tray-hint{margin:0;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#5a3f24b3}.mobile-recipe-group{border:1px solid rgba(90,63,36,.18);border-radius:12px;background:#ffffffa6;overflow:hidden}.mobile-recipe-group+.mobile-recipe-group{margin-top:.75rem}.mobile-recipe-group summary{padding:.8rem .9rem;font-family:var(--font-display);font-size:16px;cursor:pointer;list-style:none}.mobile-recipe-group summary::-webkit-details-marker{display:none}.mobile-recipe-list{padding:0 .9rem .9rem;display:grid;gap:.65rem}.mobile-recipe-card{border:1px solid rgba(90,63,36,.2);border-radius:12px;padding:.75rem .85rem;background:#fffef5;display:grid;gap:.4rem}.mobile-recipe-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mobile-recipe-card-title{margin:0;font-size:14px}.mobile-recipe-card-meta{margin:2px 0 0;font-family:var(--font-mono);font-size:10px;color:#5a3f24b3}.mobile-recipe-card-text{margin:0;font-size:12px;color:#4b3722d9}.mobile-recipe-add{border:1px solid rgba(90,63,36,.4);background:#fffaf0f2;color:#5a3f24;border-radius:999px;padding:4px 10px;font-family:var(--font-mono);font-size:10px;font-weight:600;cursor:pointer;white-space:nowrap}}@media (max-width: 640px){.bulletin-board-page{--recipe-portfolio-expanded: 280px;--recipe-portfolio-collapsed: 64px;--recipe-portfolio-cards: 200px;--recipe-tray-height: 0px;padding:20px 14px}}.portfolio-page{min-height:100vh;width:100vw;background:radial-gradient(circle,#f8f0d0,#e6d6ac);padding:3.5rem 6vw calc(5rem + var(--ground-height, 120px));color:#3a2f1f}.portfolio-header{max-width:720px;margin-bottom:2.5rem}.portfolio-header-top{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.portfolio-home{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;border:1px solid rgba(90,63,36,.4);background:#ffffffe6;color:#6b4f2c;border-radius:999px;padding:.45rem .9rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 6px 14px #5a3f2426}.portfolio-home:hover{transform:translateY(-2px);box-shadow:0 10px 18px #5a3f2433}.portfolio-header h1{margin:.4rem 0 0;font-size:clamp(2.4rem,3.2vw + 1rem,4.2rem);line-height:1.1}.portfolio-collage{display:grid;grid-template-columns:repeat(12,minmax(60px,1fr));grid-auto-rows:60px;gap:18px;padding-bottom:3rem}.collage-item{grid-column:span var(--col-span, 3);grid-row:span var(--row-span, 3);margin:0;border-radius:16px;overflow:hidden;background:#efe0c0;border:2px solid rgba(92,70,48,.4);box-shadow:0 10px 28px #3527152e;transform:translateY(var(--lift, 0px)) rotate(var(--tilt, 0deg));transition:transform .3s ease,box-shadow .3s ease;cursor:zoom-in}.collage-item:hover{transform:translateY(calc(var(--lift, 0px) - 4px)) rotate(var(--tilt, 0deg));box-shadow:0 18px 36px #35271540}.collage-item:focus-visible{outline:2px solid #6b7d5f;outline-offset:4px}.collage-item[data-group=about]{border-color:#90623f80}.collage-item[data-group=ai]{border-color:#667c5680}.collage-item[data-group=fields]{border-color:#5c6d7e80}.collage-media{width:100%;height:100%;object-fit:contain;display:block;background:#efe0c0}.portfolio-lightbox{position:fixed;inset:0;background:#2d201299;display:flex;align-items:center;justify-content:center;z-index:4000;padding:2rem}.portfolio-lightbox-inner{background:#f7f1dd;border-radius:18px;border:1px solid rgba(166,124,82,.5);box-shadow:0 28px 60px #2d201259;width:min(90vw,1200px);height:min(90vh,860px);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.portfolio-lightbox-close{align-self:flex-end;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;border:1px solid rgba(90,63,36,.4);background:#ffffffe6;color:#6b4f2c;border-radius:999px;padding:.35rem .7rem;cursor:pointer}.portfolio-lightbox-media{flex:1;min-height:0;border-radius:14px;background:#efe0c0;display:flex;align-items:center;justify-content:center;overflow:hidden}.portfolio-lightbox-media img,.portfolio-lightbox-media video{width:100%;height:100%;object-fit:contain;display:block}@media (max-width: 1200px){.portfolio-collage{grid-template-columns:repeat(10,minmax(50px,1fr));grid-auto-rows:52px;gap:16px}}@media (max-width: 900px){.portfolio-collage{grid-template-columns:repeat(8,minmax(48px,1fr));grid-auto-rows:48px;gap:14px}}@media (max-width: 768px){.collage-item,.collage-item:hover{transform:none}}@media (max-width: 640px){.portfolio-page{padding:2.5rem 1.5rem 4rem}.portfolio-header-top{flex-direction:column;align-items:flex-start;gap:.75rem}.portfolio-collage{grid-template-columns:repeat(4,minmax(40px,1fr));grid-auto-rows:40px;gap:12px}.collage-item{transform:translateY(var(--lift, 0px))}.portfolio-lightbox{padding:1.25rem}.portfolio-lightbox-inner{width:min(94vw,900px);height:min(85vh,720px);padding:1rem}}@media (max-width: 480px){.portfolio-page{padding:2.2rem 1.1rem 4.5rem}.portfolio-collage{grid-auto-rows:36px;gap:10px}.portfolio-lightbox{padding:1rem}.portfolio-lightbox-inner{height:min(80vh,560px)}}*{margin:0;padding:0;box-sizing:border-box}:root{--font-display: "IM Fell English SC", serif;--font-body: "Vollkorn", serif;--font-mono: "IBM Plex Mono", monospace}html,body{height:100%;overflow-x:hidden;overflow-y:auto}body{background:#fdfcf5;color:#3a3a3a;font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100%;overflow-x:hidden;position:relative;background:#fdfcf5}h1,h2,h3,h4,h5,h6,.display,.section-title{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:.02em;color:#3a3a3a}.meta,.label,.tag,.badge,.timestamp,.recipe-card-meta{font-family:var(--font-mono)}p{color:#666}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;height:auto}:focus-visible{outline:2px solid #6b7d5f;outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width: 768px){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
