:root{--cream: #ece3d2;--paper: #f4eee2;--paper-deep: #e6dbc8;--ink: #1d1714;--brown: #543739;--brown-deep: #24170f;--olive: #535133;--olive-deep: #3d3d22;--accent: #c54030;--gold: #efc27c;--shadow: 0 28px 60px rgba(28, 19, 12, .22);--soft-shadow: 0 18px 32px rgba(28, 19, 12, .16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--cream);background:radial-gradient(circle at top,rgba(255,246,229,.08),transparent 30%),radial-gradient(circle at 20% 10%,rgba(239,194,124,.06),transparent 18%),#120d0a;font-family:Manrope,sans-serif}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.025),transparent 20%),radial-gradient(circle at 80% 30%,rgba(255,255,255,.022),transparent 18%),radial-gradient(circle at 50% 80%,rgba(255,255,255,.015),transparent 22%);animation:atmosphere 18s ease-in-out infinite alternate;pointer-events:none}body:after{content:"";position:fixed;inset:0;background-image:radial-gradient(circle at 14% 18%,rgba(255,247,227,.18) 0 2px,transparent 3px),radial-gradient(circle at 72% 16%,rgba(255,247,227,.14) 0 1.5px,transparent 3px),radial-gradient(circle at 82% 74%,rgba(255,247,227,.14) 0 2px,transparent 3px),radial-gradient(circle at 30% 78%,rgba(255,247,227,.12) 0 1.5px,transparent 3px);opacity:.55;animation:sparkleField 14s linear infinite;pointer-events:none}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}.site-shell{position:relative;min-height:100vh}.site-shell:before{content:"";position:fixed;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.018) 32%,transparent 60%),linear-gradient(295deg,transparent 0%,rgba(239,194,124,.03) 38%,transparent 70%);animation:veilShift 16s ease-in-out infinite alternate;pointer-events:none}.ambient{position:fixed;z-index:0;border-radius:999px;filter:blur(28px);opacity:.35;pointer-events:none}.ambient-a{top:12vh;left:-6vw;width:20vw;height:20vw;background:#efc27c1f;animation:driftBlob 16s ease-in-out infinite}.ambient-b{right:-8vw;bottom:8vh;width:24vw;height:24vw;background:#c5403014;animation:driftBlob 22s ease-in-out infinite reverse}.wandering-glyph{position:fixed;z-index:0;border-radius:50%;pointer-events:none;opacity:.38}.wandering-glyph:before,.wandering-glyph:after{content:"";position:absolute;inset:0;border-radius:inherit}.wandering-glyph:before{border:1px dashed rgba(255,239,206,.22)}.wandering-glyph:after{inset:26%;border:1px solid rgba(255,239,206,.16)}.glyph-a{top:22vh;right:10vw;width:84px;height:84px;animation:glyphDrift 18s ease-in-out infinite}.glyph-b{top:56vh;left:8vw;width:62px;height:62px;animation:glyphDrift 22s ease-in-out infinite reverse}.glyph-c{top:76vh;right:24vw;width:44px;height:44px;animation:glyphDrift 16s ease-in-out infinite}.glyph-d{top:8vh;left:22vw;width:54px;height:54px;animation:glyphDrift 20s ease-in-out infinite reverse}.topbar{position:fixed;top:0;z-index:20;width:100%;padding:24px clamp(20px,4vw,56px);pointer-events:none}.nav{display:flex;gap:clamp(16px,3vw,42px);width:fit-content;padding:14px 18px;border:1px solid rgba(255,248,234,.16);border-radius:999px;background:#160f0b66;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 30px #00000024;pointer-events:auto;animation:navFloat 8s ease-in-out infinite}.nav-link{position:relative;font-size:.92rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fffaf4e0;transition:color .18s ease,transform .18s ease}.nav-link:hover{transform:translateY(-2px);color:#fff3dc}.nav-link.is-active{color:var(--gold)}.nav-link.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:currentColor;transform-origin:left;animation:underlineGrow .32s ease-out both}.panel{position:relative;z-index:1;min-height:100vh;overflow:clip}.section-shell{opacity:0;transform:translateY(42px) scale(.98)}.section-shell.is-visible{opacity:1;transform:translateY(0) scale(1);transition:opacity .78s ease,transform .9s cubic-bezier(.2,.9,.2,1)}.panel-home{display:grid;grid-template-columns:.88fr 1.12fr;align-items:center;gap:clamp(28px,5vw,72px);padding:130px clamp(24px,6vw,72px) 48px;background:radial-gradient(circle at 22% 30%,rgba(255,239,212,.05),transparent 24%),linear-gradient(180deg,#0c070414,#0c070433),var(--brown)}.hero-ornament{position:absolute;pointer-events:none}.hero-ornament-top{top:28px;left:50%;width:340px;height:56px;transform:translate(-50%)}.hero-ornament-top:before,.hero-ornament-top:after{content:"";position:absolute;inset:0;border-top:3px solid rgba(12,7,4,.9);border-radius:50%}.hero-ornament-top:after{inset:14px 48px auto;height:20px}.hero-spark{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,242,212,.9) 0%,rgba(255,242,212,.2) 36%,transparent 68%);filter:blur(1px);pointer-events:none}.hero-spark-a{top:18%;right:15%;width:18px;height:18px;animation:twinkle 4.4s ease-in-out infinite}.hero-spark-b{top:34%;right:8%;width:12px;height:12px;animation:twinkle 5.2s ease-in-out infinite .7s}.hero-spark-c{bottom:22%;left:44%;width:16px;height:16px;animation:twinkle 4.8s ease-in-out infinite 1.2s}.hero-copy{position:relative;z-index:1;justify-self:end;max-width:760px}.eyebrow,.section-kicker{margin:0 0 14px;font-size:.92rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero-copy h1,.panel-about h2,.paper-board h2,.panel-contact h2,.education-block h3,.works-centerpiece strong,.work-card h3{margin:0;font-family:Cormorant Garamond,serif;font-weight:500;letter-spacing:-.03em;line-height:.95}.hero-copy h1{font-size:clamp(4.5rem,10vw,8.7rem);text-wrap:balance}.hero-note,.hero-whisper,.skill-list span,.about-card p,.education-list span,.contact-column a{color:#faf1e4d1;line-height:1.75}.hero-note{max-width:34rem;margin:22px 0 0;font-size:1.05rem}.hero-whisper{margin:18px 0 0;font-size:.96rem;letter-spacing:.08em;text-transform:uppercase;color:#efc27cdb}.portrait-frame{position:relative;justify-self:start;width:min(34vw,430px);min-width:260px;aspect-ratio:.8;display:grid;place-items:center;animation:frameFloat 8s ease-in-out infinite}.portrait-frame:before,.portrait-frame:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.portrait-frame:before{inset:-34px;border:2px solid rgba(245,234,205,.44);animation:spinLoop 24s linear infinite}.portrait-frame:after{inset:-18px;border:6px double rgba(235,221,188,.88);animation:spinLoop 16s linear infinite reverse}.portrait-frame-inner{position:relative;width:100%;height:100%;padding:16px;border:6px solid rgba(233,222,196,.95);border-radius:55% 55% 50% 50%/45% 45% 55% 55%;background:linear-gradient(135deg,#fff6e629,#fff6e60a);box-shadow:0 0 0 18px #f0e6ce26,0 24px 48px #10090647}.portrait-frame-inner:after{content:"";position:absolute;inset:auto 50% -78px;width:86px;height:126px;transform:translate(-50%);border:5px solid rgba(233,222,196,.95);border-radius:40px;background:linear-gradient(180deg,#fff6e624,#fff6e608)}.portrait-ring{width:100%;height:100%;overflow:hidden;border-radius:inherit}.portrait-ring img{width:100%;height:100%;object-fit:cover;object-position:center top;transform:scale(1.04);animation:portraitBreath 9s ease-in-out infinite}.panel-about{padding:150px clamp(24px,6vw,72px) 90px;background:radial-gradient(circle at top right,rgba(239,194,124,.08),transparent 22%),radial-gradient(circle at bottom left,rgba(197,64,48,.05),transparent 20%),linear-gradient(180deg,#2c1d0e,var(--brown-deep))}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,4vw,52px);align-items:start}.skills-card,.about-card{position:relative;padding:clamp(24px,3vw,40px);border:1px solid rgba(255,243,224,.12);border-radius:36px;background:linear-gradient(180deg,#fff6e612,#fff6e605),#0b080633;box-shadow:var(--shadow);overflow:hidden}.skills-card:before,.about-card:before{content:"";position:absolute;inset:-40% auto auto -10%;width:180px;height:180px;background:radial-gradient(circle,rgba(239,194,124,.12),transparent 70%);animation:driftBlob 12s ease-in-out infinite}.skills-card:after,.about-card:after,.paper-board:after,.contact-column article:after{content:"";position:absolute;inset:-30% auto auto -18%;width:180px;height:240%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);transform:rotate(12deg);animation:sheenSweep 12s linear infinite;pointer-events:none}.skills-card{animation:cardBob 7s ease-in-out infinite}.about-card{animation:cardBob 9s ease-in-out infinite reverse}.section-kicker{color:var(--accent)}.skills-card h2,.about-card h2{font-size:clamp(3rem,7vw,5.4rem);color:#fbf3e6}.skill-list{margin:30px 0 0;padding-left:20px;display:grid;gap:20px}.skill-list li,.education-list article{position:relative;animation:riseSoft .76s ease both}.skill-list li{padding-left:6px}.skill-list strong,.education-list strong,.contact-column strong{display:block;margin-bottom:8px;font-size:1.2rem;font-weight:800;color:#f6ecda}.skill-list span,.about-card p,.education-list span,.contact-column a{display:block;font-size:1.05rem}.education-block{margin-top:38px;padding-top:28px;border-top:1px solid rgba(255,243,224,.1)}.education-block h3{margin-bottom:22px;font-size:clamp(2.4rem,5vw,4rem);font-weight:600}.education-list{display:grid;gap:22px}.panel-works{display:grid;place-items:center;padding:130px 24px 80px;background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.03),transparent 22%),linear-gradient(180deg,#ffffff05,#00000014),var(--brown)}.paper-board{position:relative;width:min(100%,1080px);padding:clamp(28px,4vw,56px);background:linear-gradient(#fffbf5c7,#fffbf5c7),url(/assets/paper-texture.png) center / cover;color:var(--brown);border-radius:30px;box-shadow:var(--shadow);overflow:hidden}.paper-board:before{content:"";position:absolute;inset:16px;border:1px solid rgba(84,55,57,.08);border-radius:22px;pointer-events:none}.works-board{overflow:hidden}.paper-board .accent{color:var(--accent)}.paper-board h2{font-size:clamp(4rem,10vw,7rem)}.works-board-header{position:relative;z-index:1;max-width:700px;margin:0 auto;text-align:center}.works-intro{margin:18px auto 0;max-width:34rem;color:#543739d1;font-size:1.05rem;line-height:1.8}.works-stage{position:relative;min-height:620px;margin-top:40px;border-radius:30px;padding:40px;background:linear-gradient(180deg,#ffffff52,#ffffff24),#fff8f075;box-shadow:inset 0 1px #fff6;overflow:hidden}.works-stage:before,.works-stage:after{content:"";position:absolute;top:50%;left:50%;border:1px dashed rgba(84,55,57,.18);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.works-stage:before{width:520px;height:520px;animation:orbitSpin 34s linear infinite}.works-stage:after{width:320px;height:320px;animation:orbitSpin 24s linear infinite reverse}.works-stage-glow{position:absolute;border-radius:50%;filter:blur(24px);pointer-events:none}.works-stage-glow-a{top:12%;left:8%;width:180px;height:180px;background:#c5403024;animation:driftBlob 10s ease-in-out infinite}.works-stage-glow-b{right:10%;bottom:12%;width:220px;height:220px;background:#efc27c29;animation:driftBlob 14s ease-in-out infinite reverse}.works-centerpiece{position:absolute;top:50%;left:50%;z-index:1;display:grid;place-items:center;width:280px;height:280px;padding:34px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffffffbf,#f7ead7d6 55%,#e7d5bceb);box-shadow:inset 0 2px 10px #ffffff80,0 28px 50px #54373929;transform:translate(-50%,-50%);text-align:center;animation:centerpieceFloat 8.5s ease-in-out infinite}.centerpiece-orbit{position:absolute;border:1px solid rgba(84,55,57,.14);border-radius:50%}.centerpiece-orbit.outer{inset:14px}.centerpiece-orbit.inner{inset:38px;border-style:dashed}.centerpiece-label{font-size:.82rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.works-centerpiece strong{display:block;margin-top:10px;color:var(--brown);font-size:clamp(2rem,4vw,3rem)}.works-centerpiece p{margin:12px 0 0;max-width:12rem;color:#543739c2;font-size:.98rem;line-height:1.6}.work-card{position:absolute;z-index:2;width:min(290px,30vw);padding:26px 24px 26px 28px;border:1px solid rgba(84,55,57,.12);border-radius:26px;background:linear-gradient(180deg,#ffffffc2,#ffffff80),#ffffff73;box-shadow:var(--soft-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(var(--shift-x, 0),var(--shift-y, 0)) rotate(var(--card-rotate, 0deg));animation-name:workCardReveal;animation-duration:.82s;animation-timing-function:ease;animation-fill-mode:both;animation-delay:var(--card-delay, 0ms);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.work-card:after{content:"";position:absolute;top:14px;right:16px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f2d8a0,#9f6d3a 70%,#6d4420);box-shadow:0 2px 5px #54373938}.card-north{top:56px;left:50%;--shift-x: -50%;--shift-y: 0px;--card-rotate: -5deg}.card-west{left:38px;bottom:42px;--shift-x: 0px;--shift-y: 0px;--card-rotate: -8deg}.card-east{right:40px;top:180px;--shift-x: 0px;--shift-y: 0px;--card-rotate: 7deg}.work-card:hover{transform:translate(var(--shift-x, 0),calc(var(--shift-y, 0px) - 10px)) rotate(0) scale(1.03);box-shadow:0 26px 38px #5437392e;border-color:#c540303d}.work-pin{position:absolute;top:-10px;left:28px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff2d4,#d39e52 70%,#885722);box-shadow:0 6px 12px #5437392e}.work-number{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:8px 12px;border-radius:999px;background:#54373914;color:#543739c7;font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.work-label{margin:18px 0 8px;color:var(--accent);font-size:.9rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.work-card h3{color:var(--brown);font-size:clamp(2.2rem,4vw,3.2rem)}.work-card p:last-child{margin:14px 0 0;color:#543739c7;line-height:1.75}.panel-contact{padding:130px clamp(24px,6vw,72px) 72px;background:radial-gradient(circle at 50% 18%,rgba(255,246,230,.08),transparent 18%),radial-gradient(circle at 20% 70%,rgba(239,194,124,.06),transparent 22%),linear-gradient(180deg,var(--olive),var(--olive-deep))}.contact-header{text-align:center}.contact-header h2{font-size:clamp(3.4rem,9vw,7.2rem)}.gold{color:var(--gold)}.contact-stage{display:grid;justify-items:center;gap:26px;margin-top:34px}.phone-button{position:relative;display:grid;justify-items:center;gap:18px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.phone-button:focus-visible{outline:none}.phone-button:focus-visible .phone-hint{color:#fff7e8}.phone-button:hover .phone-illustration,.phone-button:focus-visible .phone-illustration{transform:translateY(-8px) scale(1.02)}.phone-glow{position:absolute;top:48%;left:50%;width:min(58vw,480px);height:min(58vw,480px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,245,221,.2),transparent 65%);animation:ringPulse 3.8s ease-in-out infinite;pointer-events:none}.phone-button.is-open .phone-glow{animation-duration:1.7s}.phone-hint{position:relative;z-index:2;font-size:.9rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff3dcd1;transition:color .18s ease}.phone-illustration{position:relative;z-index:2;width:min(100%,460px);aspect-ratio:1.25;transition:transform .32s ease}.phone-shadow{position:absolute;left:14%;right:14%;bottom:2%;height:30px;border-radius:50%;background:#00000052;filter:blur(16px);animation:shadowPulse 4s ease-in-out infinite}.ring-mark{position:absolute;top:6%;width:78px;height:78px;border:4px solid transparent;border-top-color:#fff6debd;border-right-color:#fff6de61;border-radius:50%;opacity:0}.ring-mark-a{left:10%;animation:ringWaveLeft 2.6s ease-out infinite}.ring-mark-b{right:12%;transform:scaleX(-1);animation:ringWaveRight 2.6s ease-out infinite .5s}.ring-mark-c{top:0;left:50%;width:56px;height:56px;transform:translate(-50%);border-top-color:#fff6de8a;border-right-color:transparent;animation:ringBlink 2.6s ease-out infinite .9s}.phone-button.is-open .ring-mark{opacity:0;animation:none}.phone-cord{position:absolute;top:22%;left:12%;width:76px;height:138px;border-left:5px solid rgba(231,231,231,.45);border-bottom:5px solid rgba(231,231,231,.42);border-radius:0 0 0 120px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.15));opacity:.72}.phone-receiver{position:absolute;top:2%;left:13%;width:74%;height:28%;transform-origin:center 80%;transition:transform .42s cubic-bezier(.2,.9,.2,1);animation:receiverShake 3.4s ease-in-out infinite}.phone-button.is-open .phone-receiver{transform:translateY(-30px) rotate(-14deg);animation:none}.receiver-ear,.receiver-bar{position:absolute;inset:0;border-radius:999px;background:linear-gradient(180deg,#5c5c5c,#0f0f0f 74%);box-shadow:inset 0 2px 6px #ffffff29,0 12px 20px #0003}.receiver-ear{top:0;width:28%;height:100%;border-radius:42% 42% 48% 48%}.receiver-ear:before{content:"";position:absolute;inset:16% 12%;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3,#141414e6 72%)}.receiver-ear-left{left:0}.receiver-ear-right{right:0}.receiver-bar{top:18%;left:13%;right:13%;height:64%}.phone-cradle{position:absolute;top:18%;left:35%;width:30%;height:14%;display:flex;justify-content:space-between}.phone-cradle span{width:22%;height:100%;border-radius:18px 18px 8px 8px;background:linear-gradient(180deg,#191919,#040404 82%);box-shadow:inset 0 1px 4px #ffffff1a}.phone-body{position:absolute;left:20%;right:20%;bottom:15%;height:44%;border-radius:34% 34% 20% 20%/30% 30% 18% 18%;background:linear-gradient(180deg,#525252,#111 72%,#050505);box-shadow:inset 0 2px 10px #ffffff24,0 24px 26px #0000003d}.phone-body:before{content:"";position:absolute;inset:14% 12% auto;height:24%;border-radius:20px;background:linear-gradient(180deg,#ffffff1f,#fff0)}.phone-base{position:absolute;left:14%;right:14%;bottom:6%;height:18%;border-radius:18px 18px 28px 28px;background:linear-gradient(180deg,#2f2f2f,#050505 74%);box-shadow:inset 0 1px 6px #ffffff14,0 18px 24px #0000002e}.phone-dial{position:absolute;top:46%;left:50%;width:48%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 32%,#ffffff47,#444444d1 50%,#0a0a0af5 72%);box-shadow:inset 0 2px 12px #ffffff24,0 12px 18px #0003;transition:transform .32s ease}.phone-button.is-open .phone-dial{transform:translate(-50%,-50%) rotate(36deg)}.phone-center-cap{position:absolute;top:50%;left:50%;width:24%;height:24%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6,#121212e6 76%);box-shadow:inset 0 1px 4px #ffffff2e}.dial-hole{position:absolute;top:50%;left:50%;width:16%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#222222f2,#000 74%);box-shadow:inset 0 1px 3px #ffffff14;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-60px)}.phone-mouthpiece{position:absolute;left:50%;bottom:12%;width:56%;height:12px;transform:translate(-50%);border-radius:999px;background:linear-gradient(180deg,#ffffff3d,#0003)}.phone-base-shine{position:absolute;left:18%;right:18%;bottom:8%;height:4px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),transparent)}.contact-grid{width:min(100%,980px);max-height:0;opacity:0;overflow:hidden;pointer-events:none;display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:26px;transform:translateY(24px) scale(.96);transition:max-height .54s ease,opacity .38s ease,transform .54s cubic-bezier(.2,.9,.2,1)}.contact-grid.is-open{max-height:620px;opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.contact-column{display:grid;gap:22px}.contact-column article{position:relative;padding:26px 28px;border:1px solid rgba(255,245,226,.14);border-radius:28px;background:linear-gradient(180deg,#fff8eb14,#fff8eb05),#18190e47;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:contactCardIn .54s ease both;overflow:hidden}.contact-column article:nth-child(2){animation-delay:.1s}.align-right{text-align:right}.contact-column a{font-size:1.28rem;transition:color .18s ease,transform .18s ease}.contact-column a:hover{color:#fff3dc;transform:translate(3px)}@keyframes atmosphere{0%{transform:scale(1) translateY(0)}to{transform:scale(1.06) translateY(-10px)}}@keyframes sparkleField{0%{transform:translateY(0);opacity:.44}50%{opacity:.72}to{transform:translateY(-18px);opacity:.46}}@keyframes veilShift{0%{transform:translateZ(0)}to{transform:translate3d(18px,-12px,0)}}@keyframes underlineGrow{0%{transform:scaleX(.2);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes driftBlob{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(18px,-22px,0) scale(1.08)}}@keyframes glyphDrift{0%,to{transform:translateZ(0) rotate(0) scale(1)}50%{transform:translate3d(14px,-20px,0) rotate(18deg) scale(1.08)}}@keyframes navFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes twinkle{0%,to{opacity:.22;transform:scale(.7)}50%{opacity:1;transform:scale(1.28)}}@keyframes frameFloat{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes spinLoop{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbitSpin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes portraitBreath{0%,to{transform:scale(1.04)}50%{transform:scale(1.08)}}@keyframes cardBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes sheenSweep{0%{transform:translate(-120%) rotate(12deg);opacity:0}18%,22%{opacity:1}40%,to{transform:translate(320%) rotate(12deg);opacity:0}}@keyframes riseSoft{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes workCardReveal{0%{opacity:0;transform:translate(var(--shift-x, 0),calc(var(--shift-y, 0px) + 24px)) rotate(var(--card-rotate, 0deg)) scale(.96)}to{opacity:1;transform:translate(var(--shift-x, 0),var(--shift-y, 0)) rotate(var(--card-rotate, 0deg)) scale(1)}}@keyframes centerpieceFloat{0%,to{transform:translate(-50%,-50%) rotate(0)}50%{transform:translate(-50%,calc(-50% - 10px)) rotate(2deg)}}@keyframes ringPulse{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(.9)}50%{opacity:.85;transform:translate(-50%,-50%) scale(1.08)}}@keyframes receiverShake{0%,to{transform:rotate(0)}10%{transform:rotate(-3deg)}16%{transform:rotate(3deg)}22%{transform:rotate(-2deg)}28%{transform:rotate(0)}}@keyframes shadowPulse{0%,to{transform:scaleX(.96);opacity:.28}50%{transform:scaleX(1.02);opacity:.42}}@keyframes ringWaveLeft{0%,to{opacity:0;transform:scale(.8) rotate(-18deg)}24%,42%{opacity:1;transform:scale(1) rotate(-18deg)}60%{opacity:0;transform:scale(1.12) rotate(-18deg)}}@keyframes ringWaveRight{0%,to{opacity:0;transform:scaleX(-1) scale(.8) rotate(-18deg)}24%,42%{opacity:1;transform:scaleX(-1) scale(1) rotate(-18deg)}60%{opacity:0;transform:scaleX(-1) scale(1.12) rotate(-18deg)}}@keyframes ringBlink{0%,to{opacity:0;transform:translate(-50%) scale(.7)}28%,42%{opacity:1;transform:translate(-50%) scale(1)}60%{opacity:0;transform:translate(-50%) scale(1.08)}}@keyframes contactCardIn{0%{opacity:0;transform:translateY(32px) rotate(2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@media(max-width:1024px){.panel-home,.about-grid,.contact-grid{grid-template-columns:1fr}.panel-home{padding-top:150px}.hero-copy{justify-self:start;order:1}.portrait-frame{justify-self:center;order:0;width:min(70vw,420px)}.works-stage{min-height:0;display:grid;gap:22px;padding:26px}.works-centerpiece,.work-card{position:relative;inset:auto;width:100%;max-width:620px;margin:0 auto;transform:none}.works-centerpiece{animation:none;height:auto;min-height:220px}.work-card{--shift-x: 0px;--shift-y: 0px;--card-rotate: 0deg}.work-card:hover{transform:translateY(-8px) rotate(0) scale(1.02)}.contact-grid{width:min(100%,620px)}.align-right{text-align:left}}@media(max-width:720px){.topbar{padding:16px}.nav{gap:10px;width:100%;justify-content:space-between;padding:12px 14px}.nav-link{font-size:.75rem}.panel{min-height:auto}.panel-home,.panel-about,.panel-works,.panel-contact{padding-left:18px;padding-right:18px}.hero-ornament-top{width:220px}.hero-note,.hero-whisper,.skill-list span,.about-card p,.education-list span,.contact-column a,.works-intro,.work-card p:last-child{font-size:1rem}.portrait-frame{width:min(78vw,360px);min-width:0}.paper-board{border-radius:22px}.works-stage{padding:20px}.works-centerpiece{width:100%;min-height:200px;padding:26px}.phone-illustration{width:min(100%,360px)}.dial-hole{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-46px)}.contact-column article{padding:22px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.section-shell{opacity:1;transform:none}.contact-grid{max-height:none;opacity:1;overflow:visible;pointer-events:auto;transform:none}}
