:root{--paper:#f5f1ee;--ink:#292329;--muted:#716a70;--line:#d9d1d3;--accent:#8b233b;--plum:#3c2939}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:disabled{cursor:default}a:focus-visible,button:focus-visible,canvas:focus-visible{outline:3px solid #b85c71;outline-offset:5px}button:disabled{opacity:.45}.skip-link{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:14px;z-index:100}.skip-link:focus{top:10px}.header{height:91px;padding:0 4.1%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:17px}.monogram{font:bold 44px/.8 Georgia,serif;letter-spacing:-5px}.monogram>span{font:25px Arial;letter-spacing:0;margin-left:5px;color:var(--accent)}.brand-name{font:10px/1.65 Arial;letter-spacing:1.4px;padding-left:16px;border-left:1px solid var(--line)}.brand-name small{font-size:8px;color:var(--muted);letter-spacing:1.9px}.header nav{display:flex;gap:28px;font-size:12px}.header nav a{transition:color .2s}.header nav a:hover{color:var(--accent)}.header-actions{display:flex;align-items:center;gap:20px}.lang{background:transparent;font-size:11px;padding:7px;border:1px solid var(--line);border-radius:50%;width:33px;height:33px}.contact-link{font-size:11px;border-bottom:1px solid var(--ink);padding:5px 0}.menu-toggle{display:none;background:transparent;font-size:21px}.hero-scroll{height:190vh;min-height:1150px}.hero-sticky{position:sticky;top:0;min-height:720px;height:100vh;max-height:1080px;padding:36px 4.1% 0;display:flex;flex-direction:column;justify-content:center}.hero-layout{display:grid;grid-template-columns:.92fr 1.08fr;align-items:center;gap:5%;flex:1;max-height:800px}.eyebrow{font-size:9px;letter-spacing:1.65px;display:flex;align-items:center;gap:8px;font-weight:500}.eyebrow>i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #8b233b0d}h1{font-size:clamp(44px,5.05vw,80px);line-height:1.02;letter-spacing:-3.8px;font-weight:400;margin:32px 0 26px}h1 em{font:italic 1em/.98 Georgia,'Times New Roman',serif;color:var(--accent);letter-spacing:-4.5px;display:inline-block;margin-top:6px;max-width:550px}.hero-description{max-width:375px;color:var(--muted);font-size:13px;line-height:1.85}.hero-links{display:flex;gap:22px;align-items:center;margin-top:27px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:23px;padding:15px 19px;background:var(--accent);color:#fff;font-size:11px;border:1px solid var(--accent);transition:background .2s}.button:hover{background:var(--plum);border-color:var(--plum)}.quiet-link{font-size:10px;border-bottom:1px solid #b8adb2;padding:6px 0}.hero-signature{display:flex;align-items:center;gap:23px;margin-top:35px}.signature{font:italic 31px Georgia;color:var(--accent);transform:rotate(-7deg)}.hero-signature>span:last-child{font-size:7px;letter-spacing:1.3px;line-height:1.8;color:#877a82;border-left:1px solid var(--line);padding-left:23px}.scene-panel{background:#e9e1e5;border:1px solid #ded3da;position:relative;align-self:center;min-width:0}.scene-top{position:absolute;top:20px;left:22px;right:22px;display:flex;justify-content:space-between;z-index:2;pointer-events:none;font-size:7px;letter-spacing:1px;color:#70616d}.live-dot{display:flex;align-items:center;gap:6px}.live-dot:before{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent)}.scene-view{height:clamp(340px,31.5vw,530px);position:relative;background:radial-gradient(ellipse at 50% 42%,#f6f1f3 0,#e9e1e5 70%);overflow:hidden}.scene-view canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab;position:relative;z-index:1}.scene-view canvas:active{cursor:grabbing}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:#e9e1e5;z-index:4;font-size:10px;letter-spacing:.5px}.scene-loading[hidden],.scene-fallback[hidden]{display:none}.loader{width:24px;height:24px;border:1px solid #c7b1bf;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hello-note{position:absolute;top:18%;left:6%;background:#fffaf6;padding:9px 13px;box-shadow:0 5px 18px #5c374510;border:1px solid #e8d5d8;transform:rotate(-5deg);font-size:10px;z-index:2;pointer-events:none;transition:opacity .3s}.hello-note>span:last-child{color:var(--accent);margin-left:10px}.hello-note:after{content:'';position:absolute;border:7px solid transparent;border-top-color:#fffaf6;bottom:-14px;left:40px}.scene-floor-label{position:absolute;bottom:29px;left:22px;font-size:6px;letter-spacing:1.3px;color:#9b8797}.rotate{position:absolute;right:17px;bottom:17px;padding:7px 8px;font-size:7px;z-index:2;background:#eee6ebc9;border:1px solid #d5c4cf;border-radius:20px;color:#786475}.scene-controls{padding:17px 22px 19px;background:#f8f4f5;border-top:1px solid #ded3da;position:relative;z-index:2}.sequence-header{display:flex;align-items:center;justify-content:space-between}.tiny-label{font-size:6px;letter-spacing:1.4px;color:#8f7b88}.sequence-header p{font-size:12px;line-height:1.3;margin:4px 0 0}.playback{display:flex;gap:5px}.playback button{border:1px solid #dbd0d6;background:transparent;border-radius:50%;width:29px;height:29px;font-size:13px;line-height:1}.playback button:hover{background:#e8d9e1}.phase-buttons{display:grid;grid-template-columns:repeat(4,1fr);margin-top:15px;gap:8px}.phase-buttons button{background:transparent;text-align:left;padding:7px 0;font-size:8px;color:#887381;display:flex;gap:6px;align-items:center}.phase-buttons button>span:first-child{font-size:6px;font-family:monospace}.phase-buttons button[aria-pressed=true]{color:var(--accent);font-weight:bold}.timeline{height:2px;background:#e2d7de;margin-top:3px;overflow:hidden}.timeline>i{display:block;height:100%;background:var(--accent);width:0;transition:width .1s linear}.hero-bottom{display:flex;justify-content:space-between;padding:23px 0;font-size:7px;letter-spacing:1.4px;flex-shrink:0;margin-top:24px;border-top:1px solid var(--line);color:#8a7c83}.hero-bottom>span:last-child{color:var(--accent);letter-spacing:.5px}.content-wrap{padding:0 4.1%}.section{padding:95px 0;scroll-margin-top:25px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:42px}h2{font-size:clamp(34px,3.9vw,58px);line-height:1.1;letter-spacing:-2.2px;font-weight:400;margin:22px 0 0;white-space:pre-line}.section-heading>p{max-width:290px;font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 3px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:30px}.project-art{display:block;width:100%;height:390px;padding:24px 27px;overflow:hidden;position:relative;text-align:left}.housing-art{background:#dbe1d3;color:#30443b}.learning-art{background:#dfd7e8;color:#493753}.art-meta{font:7px monospace;letter-spacing:.8px;display:flex;justify-content:space-between}.art-meta>span{font:15px Arial}.housing-demo,.learning-demo{background:#fbfcf6;padding:23px;margin:28px auto 0;transform:rotate(-4deg);width:94%;box-shadow:4px 15px 35px #26332a15;border:1px solid #f8fbf3;transition:transform .5s}.project-art:hover .housing-demo,.project-art:hover .learning-demo{transform:rotate(0) translateY(-3px)}.demo-nav{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dde3d5;padding-bottom:14px;font-size:7px}.demo-nav b{font-size:11px;letter-spacing:-.3px}.demo-nav b>span{font-weight:400;color:#93a082}.housing-demo h3{font-size:24px;line-height:1.15;letter-spacing:-1px;margin:22px 0 16px;font-weight:500}.housing-demo h3 em{font-family:Georgia;letter-spacing:-.8px;color:#7a8c69}.search-demo{border:1px solid #e0e5d9;display:flex;justify-content:space-between;align-items:center;font-size:6px;background:white;padding:7px}.search-demo>span:last-child{background:#30443b;color:white;padding:7px 8px}.homes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.homes>div{background:white;border:1px solid #e5e8df;padding-bottom:10px}.homes>div>span,.homes>div>strong{font-size:6px;display:block;padding:2px 8px}.homes>div>span{color:#929c8a;margin-top:6px}.homes>div>strong{font-size:8px;font-weight:500}.room{height:80px;position:relative;background:linear-gradient(90deg,#b2b5a1 45%,#dad6bc 45%);overflow:hidden}.room:before{content:'';position:absolute;left:10%;top:8px;width:26%;height:46px;background:#eaeedc;border:5px solid #a2aa99;box-shadow:inset -2px -10px 0 #c9d2bc}.room>i{position:absolute;bottom:0;right:15px;width:60%;height:26px;background:#f5ebdd;border-radius:7px 7px 0 0;box-shadow:0 -8px 0 #d1b5a6}.room>b{position:absolute;bottom:0;left:10px;width:12px;height:30px;background:#56654c;border-radius:12px 2px}.room-two{background:linear-gradient(90deg,#b9b09d 70%,#e0d5be 70%)}.room-two>i{background:#d8dcce;box-shadow:0 -8px 0 #8e9a8a}.art-foot{position:absolute;bottom:12px;left:27px;font:6px monospace;letter-spacing:.9px;opacity:.65}.learning-demo{background:#faf7fc;transform:rotate(4deg);margin-top:28px}.learning-demo .demo-nav{border-color:#e3d8eb}.learning-demo .demo-nav b>span{color:#9f80ad}.lesson-intro{display:flex;gap:15px;align-items:center;margin:20px 0}.lesson-avatar{display:grid;place-items:center;width:70px;height:80px;background:#e5d5ef;border-radius:36px 36px 10px 10px;font:italic 32px Georgia;color:#725289}.lesson-intro small{font-size:5px;letter-spacing:.6px}.lesson-intro h3{font-size:24px;line-height:1.05;letter-spacing:-1px;margin:7px 0;font-weight:400}.lesson-row{background:white;border:1px solid #e8dfef;display:flex;align-items:center;gap:12px;padding:9px;margin-top:9px;border-radius:5px}.lesson-icon{width:28px;height:28px;background:#f1e4d0;display:grid;place-items:center;border-radius:6px;font-size:18px}.lesson-icon.alt{background:#e4e9dd}.lesson-row b{font-size:8px;display:block;font-weight:500}.lesson-row small{font-size:6px;color:#93829e;display:block}.lesson-row>span:last-child{margin-left:auto;font-size:10px}.lesson-progress{display:flex;align-items:center;gap:4px;font-size:5px;margin-top:14px}.lesson-progress>span{margin-right:auto}.lesson-progress>i{height:4px;width:22px;background:#bb9dca;border-radius:3px}.lesson-progress>i:last-child{background:#e3d7ec}.project-top{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.project-top h3{font-size:22px;letter-spacing:-.7px;font-weight:400;margin:0}.arrow{background:transparent;border:1px solid #bdb2b9;border-radius:50%;width:33px;height:33px;font-size:17px}.arrow:hover{background:var(--accent);color:white;border-color:var(--accent)}.project>p{color:var(--muted);font-size:12px;line-height:1.8;max-width:450px;margin:11px 0 15px;min-height:44px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags>span{font-size:8px;padding:4px 8px;border:1px solid #d5c9cf;border-radius:3px}.skills{background:var(--plum);color:#f2e9ec;margin:0 -4.47%;padding:75px 4.47%}.skills .eyebrow{color:#c19aaa}.skills .section-heading{margin-bottom:44px}.code-mark{font:italic 76px Georgia;color:#b88b9f;padding-right:12px}.skill-row{display:grid;grid-template-columns:.12fr .9fr 1fr 1.1fr;gap:25px;align-items:center;padding:28px 0;border-top:1px solid #6e5367}.skill-number{font:9px monospace;color:#b794a7}.skill-row h3{font-size:17px;line-height:1.4;font-weight:400;letter-spacing:-.3px}.skill-row p{font-size:11px;color:#c8b8c4;line-height:1.7;max-width:250px}.skill-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.skill-tags>span{font-size:8px;border:1px solid #795e72;padding:5px 8px;border-radius:2px}.about{display:grid;grid-template-columns:1.05fr .95fr;gap:12%;border-top:0}.about h2{font-size:clamp(32px,3.4vw,49px);margin-bottom:26px}.about-left p{font-size:13px;line-height:1.85;color:var(--muted);max-width:440px}.about-languages{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:8px;color:#7e6c77}.journey{padding-top:9px}.journey-top{display:flex;justify-content:space-between;align-items:center;font-size:7px;letter-spacing:1px;margin-bottom:27px;color:#8b7182}.journey-top>span:last-child{font-size:30px}.journey article{display:grid;grid-template-columns:.3fr 1fr;border-top:1px solid var(--line);padding:25px 0;gap:20px}.journey-date{font:9px monospace;color:var(--accent);padding-top:3px}.journey h3{font-size:17px;font-weight:500;margin:0 0 2px;letter-spacing:-.5px}.journey article>div>span{font-size:8px;letter-spacing:.5px;color:#9a7d8f;text-transform:uppercase}.journey p{font-size:11px;color:var(--muted);margin:9px 0 0;line-height:1.7}.contact{border-top:1px solid #cbbac3;background:#e9dfe3;padding:45px 45px 40px;position:relative}.contact-top{display:flex;justify-content:space-between;align-items:center}.contact-star{font-size:70px;color:var(--accent);line-height:1}.contact h2{font-size:clamp(45px,6.4vw,92px);letter-spacing:-3.5px;margin-top:0}.contact-bottom{display:grid;grid-template-columns:1fr 1.25fr auto;gap:25px;align-items:end;margin-top:32px}.contact-bottom p{font-size:10px;max-width:245px;color:#8b7280;line-height:1.9;margin:0}.email{font-size:clamp(12px,1.6vw,22px);letter-spacing:-.6px;border-bottom:1px solid #bda2b0;display:flex;justify-content:space-between;gap:15px;padding-bottom:10px}.email>span{color:var(--accent)}#copy-email{background:transparent;font-size:8px;text-decoration:underline;padding:12px 0}.copy-status{font-size:9px;position:absolute;bottom:8px;right:45px;color:var(--accent);margin:0}footer{display:flex;align-items:center;gap:25px;padding:33px 0;font-size:8px;color:var(--muted)}.footer-brand{margin-right:auto;font-size:20px;font-weight:bold;letter-spacing:-1px;color:var(--ink)}.footer-brand>span{font-size:8px;font-weight:400;margin-left:12px;letter-spacing:0;color:var(--muted)}dialog{width:min(710px,92vw);max-height:88vh;overflow:auto;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:34px;box-shadow:0 40px 100px #29132344}dialog::backdrop{background:#281b2acc;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.dialog-top button{background:transparent;font-size:25px}dialog h2{font-size:37px;margin:20px 0}dialog p,dialog li{font-size:12px;line-height:1.9;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:25px 0}.detail-grid h3{font-size:11px}.detail-grid ul{padding-left:16px}dialog .button{margin-top:28px}.scene-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#e9e1e5;z-index:5;padding:30px;text-align:center;font-size:12px}.scene-fallback>span{font-size:70px;color:var(--accent)}.scene-fallback button{background:var(--accent);color:white;padding:8px 20px;font-size:11px}@media(min-width:1600px){.header,.hero-sticky,.content-wrap{padding-left:max(4.1%,calc((100vw - 1600px)/2));padding-right:max(4.1%,calc((100vw - 1600px)/2))}}@media(max-width:1050px){.header nav{gap:17px}.brand-name{display:none}h1{font-size:55px}.hero-layout{gap:3%;grid-template-columns:1fr 1.1fr}.hero-description{font-size:12px}.hero-links{gap:12px}.quiet-link{font-size:9px}.scene-view{height:370px}.hello-note{font-size:8px}.scene-top{font-size:6px}.scene-label{letter-spacing:.5px}.project-art{height:340px;padding:20px}.housing-demo,.learning-demo{width:100%;padding:17px}.housing-demo h3,.lesson-intro h3{font-size:21px}.lesson-avatar{width:57px;height:65px}.skill-row{grid-template-columns:.1fr 1fr 1.2fr}.skill-tags{grid-column:2/4;justify-content:flex-start}.skill-row p{max-width:none}.about{gap:7%}.contact-bottom{grid-template-columns:1fr 1.5fr}.contact-bottom button{grid-column:2;justify-self:end}.contact-bottom{gap:15px}.hero-signature{margin-top:26px}}@media(max-width:760px){html{scroll-padding-top:70px}.header{height:72px;padding:0 6%}.monogram{font-size:36px}.header nav{display:none;position:absolute;left:0;right:0;top:71px;padding:24px 6%;background:var(--paper);border-bottom:1px solid var(--line);gap:25px;box-shadow:0 12px 20px #3926380a}.header nav.open{display:flex}.menu-toggle{display:block}.header-actions{gap:17px}.contact-link{font-size:9px}.lang{width:29px;height:29px;font-size:9px}.hero-scroll{height:210vh;min-height:1350px}.hero-sticky{min-height:790px;height:100svh;max-height:1100px;padding:25px 6% 0;justify-content:flex-start}.hero-layout{display:flex;flex-direction:column;gap:23px;align-items:stretch;max-height:none;flex:0}.hero-copy .eyebrow{font-size:7px;letter-spacing:1px}h1{font-size:46px;letter-spacing:-2.2px;line-height:1.01;margin:20px 0 12px}h1 br:nth-of-type(1){display:none}h1>span:nth-of-type(2):before{content:' '}h1 em{font-size:44px;letter-spacing:-2.5px;margin-top:4px}.hero-description{max-width:430px;font-size:11px;margin:0;line-height:1.7}.hero-links{margin-top:17px;gap:20px}.hero-links .button{padding:11px 14px;font-size:9px}.hero-signature{display:none}.scene-panel{align-self:stretch}.scene-view{height:300px}.scene-top{top:14px;left:16px;right:16px}.hello-note{top:17%;left:5%;font-size:8px}.scene-controls{padding:12px 16px 13px}.tiny-label{font-size:5px}.sequence-header p{font-size:10px}.phase-buttons{margin-top:9px}.phase-buttons button{font-size:7px;padding:5px 0}.playback button{width:25px;height:25px;font-size:11px}.hero-bottom{margin-top:18px;padding:16px 0;gap:20px;font-size:5px;letter-spacing:.8px}.hero-bottom>span:first-child{max-width:170px}.content-wrap{padding:0 6%}.section{padding:58px 0}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px;max-width:320px;font-size:11px}h2{font-size:37px;letter-spacing:-1.7px;margin-top:19px}.eyebrow{font-size:7px;letter-spacing:1px}.projects{grid-template-columns:1fr;gap:40px}.project-art{height:355px;padding:22px 25px}.housing-demo,.learning-demo{max-width:390px;padding:22px}.housing-demo h3,.lesson-intro h3{font-size:25px}.project-top h3{font-size:21px}.project>p{font-size:11px;min-height:0}.tags>span{font-size:7px}.skills{margin:0 -6.82%;padding:55px 6.82%}.skills .section-heading{display:flex;gap:15px}.skills h2{font-size:32px}.code-mark{font-size:43px;padding:0}.skill-row{gap:10px 18px;grid-template-columns:22px 1fr;padding:22px 0}.skill-row h3{font-size:16px;margin:0}.skill-row p{grid-column:2;margin:0;font-size:10px}.skill-tags{grid-column:2;gap:6px}.skill-tags>span{font-size:7px}.about{display:block}.about h2{font-size:35px}.about-left p{font-size:12px}.journey{margin-top:40px}.about-languages{font-size:7px}.contact{padding:26px}.contact-star{font-size:44px}.contact h2{font-size:46px;letter-spacing:-2px;margin-top:10px}.contact-bottom{display:block;margin-top:25px}.contact-bottom p{margin-bottom:25px;max-width:290px}.email{font-size:15px;letter-spacing:-.4px}.contact-bottom button{display:block;margin:8px 0 0 auto}.copy-status{bottom:5px;right:26px;font-size:8px}footer{gap:17px;flex-wrap:wrap;padding:27px 0;font-size:7px}.footer-brand{flex-basis:100%;font-size:22px}.footer-brand>span{font-size:7px}.detail-grid{grid-template-columns:1fr;gap:5px}dialog{padding:25px}dialog h2{font-size:30px}.scene-floor-label{bottom:19px;left:16px;font-size:5px}.rotate{font-size:6px;right:12px;bottom:12px}}@media(max-width:380px){.hero-sticky{padding-top:19px;min-height:780px}h1{font-size:40px}h1 em{font-size:39px}.scene-view{height:285px}.hero-layout{gap:19px}.contact-link{font-size:8px}.header-actions{gap:10px}.header nav{gap:17px}.project-art{padding:18px;height:330px}.housing-demo,.learning-demo{padding:17px}.lesson-intro h3{font-size:22px}.email{font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.hero-scroll{height:auto;min-height:0}.hero-sticky{position:relative;height:auto;min-height:0;padding-bottom:20px}}

@media(min-width:761px){.hero-sticky{height:calc(100svh - 91px)}}.hello-note{top:8%}

/* The user-selected cartoon replaces the WebGL avatar. */
.hero-scroll{height:auto;min-height:0}.hero-sticky{position:relative;height:auto;max-height:none;min-height:720px}.hero-layout{max-height:none}.cartoon-panel{text-align:center;position:relative;padding:25px 10px}.cartoon-panel>.eyebrow{justify-content:center}.cartoon-frame{background-image:url('./avatar-frames-transparent.webp');background-size:400% 200%;background-repeat:no-repeat;aspect-ratio:3/4;width:100%;max-width:360px;margin:auto;mix-blend-mode:multiply}.cartoon-wave{background-position:0 0}.cartoon-code{background-position:0 100%;max-width:370px}.cartoon-greeting{font:italic 22px/1.4 Georgia;color:var(--accent);margin:8px 0 18px}.cartoon-panel .quiet-link{margin-left:16px;background:transparent}.cartoon-design{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:55px}.cartoon-design p{color:var(--muted);max-width:400px}.cartoon-design h2{max-width:470px}@media(max-width:760px){.hero-sticky{height:auto;min-height:0;padding-bottom:0}.cartoon-frame{max-width:280px}.cartoon-panel{padding-top:15px}.cartoon-design{grid-template-columns:1fr;gap:25px}.cartoon-code{max-width:300px}.cartoon-greeting{font-size:19px}}

/* Blend the pale sprite backdrop into the page without a visible card. */
.cartoon-frame{mix-blend-mode:darken;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 2%,#000 98%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 2%,#000 98%,transparent);-webkit-mask-composite:source-in}
#cartoon-voice,#cartoon-pause{display:none!important}

.macoloc-art{background:#e6e3f5;color:#272080;padding:24px 27px}.macoloc-browser{margin:25px auto 0;background:white;border-radius:7px 7px 0 0;box-shadow:0 15px 35px #27208022;overflow:hidden;transform:rotate(-3deg);transition:transform .4s;height:285px;width:96%}.macoloc-art:hover .macoloc-browser{transform:rotate(0)}.browser-bar{display:flex;gap:4px;align-items:center;padding:9px;background:#f8f7fc;border-bottom:1px solid #e5e2f0}.browser-bar i{width:4px;height:4px;border-radius:50%;background:#b5b0cd}.browser-bar span{font-size:6px;margin:auto;color:#6b6488}.macoloc-browser img{width:100%;display:block}.macoloc-art .art-foot{background:#e6e3f5;padding:8px 0;z-index:1}.gallery-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.gallery-tabs button{background:transparent;border:1px solid var(--line);border-radius:20px;padding:7px 12px;font-size:11px}.gallery-tabs button[aria-pressed=true]{background:#272080;color:white;border-color:#272080}.gallery-viewport{max-height:58vh;overflow:auto;background:white;border:1px solid var(--line);border-radius:5px}.gallery-viewport img{display:block;width:100%;height:auto}.gallery-caption{font-size:10px!important}.gallery-viewport:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:760px){.macoloc-art{padding:20px}.macoloc-browser{height:260px}.gallery-tabs button{font-size:10px;padding:6px 10px}}

.aura-art{background:#ece3da;color:#7b5a43}.aura-art .art-foot{background:#ece3da;padding:8px 0;z-index:1}.aura-art .macoloc-browser{transform:rotate(2deg)}.aura-art:hover .macoloc-browser{transform:rotate(0)}.aura-art .browser-bar{background:#fbf8f4;border-color:#eadfd5}.aura-art .browser-bar i{background:#cdb8a6}.aura-art .browser-bar span{color:#8a6c57}#project-gallery[data-project=aura] .gallery-tabs button[aria-pressed=true]{background:#7b5a43;border-color:#7b5a43}@media(min-width:761px){.projects>.project:nth-child(3){grid-column:1/-1}.projects>.project:nth-child(3) .project-art{height:440px}.projects>.project:nth-child(3) .macoloc-browser{height:330px;width:70%}}
.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.cert{display:grid;gap:8px;padding:22px;border:1px solid var(--line);background:#fbf8f6;position:relative;transition:border-color .2s,transform .2s}.cert:hover{border-color:var(--accent);transform:translateY(-3px)}.cert h3{font-size:17px;font-weight:500;letter-spacing:-.4px;margin:0;padding-right:24px}.cert-date{font:9px monospace;color:var(--accent)}.cert-issuer{font-size:11px;color:var(--muted)}.cert-arrow{position:absolute;top:20px;right:20px;color:var(--accent)}
.availability{display:flex;align-items:center;gap:9px;font-size:11px;margin:22px 0 0;color:var(--ink)}.availability>i{width:8px;height:8px;border-radius:50%;background:#3f9a63;box-shadow:0 0 0 4px #3f9a6322}.cv-link{font-size:10px;border-bottom:1px solid #b8adb2;padding:6px 0;justify-self:start}.hero-links{flex-wrap:wrap}
@media(min-width:761px){.contact-bottom .cv-link{grid-column:2;margin-top:6px}}.contact-bottom .cv-link{display:inline-block;margin-top:14px}

/* Lisibilité : tailles minimales plus confortables */
body{font-size:16px}.header nav{font-size:14px}.contact-link{font-size:13px}.eyebrow{font-size:11px;letter-spacing:1.8px}.hero-description{font-size:16px;max-width:470px}.quiet-link{font-size:13px}.button{font-size:13px}.hero-signature>span:last-child{font-size:10px}.hero-bottom{font-size:10px}.section-heading>p{font-size:15px;max-width:340px}.art-meta{font-size:11px}.art-foot{font-size:10px}.project>p{font-size:15px;max-width:520px}.tags>span{font-size:12px;padding:5px 10px}.skill-row h3{font-size:20px}.skill-row p{font-size:14px;max-width:290px}.skill-tags>span{font-size:12px;padding:6px 10px}.skill-number{font-size:12px}.about-left p{font-size:16px;max-width:520px}.about-languages{font-size:12px}.journey-top{font-size:10px}.journey-date{font-size:12px}.journey h3{font-size:20px}.journey article>div>span{font-size:10px}.journey p{font-size:14px}.contact-bottom p{font-size:13px;max-width:290px}#copy-email,.cv-link{font-size:12px}footer{font-size:12px}.cert-date{font-size:11px}.cert h3{font-size:19px}.cert-issuer{font-size:13px}.availability{font-size:13px}.gallery-tabs button{font-size:12px}dialog p,dialog li{font-size:14px}.detail-grid h3{font-size:13px}.copy-status{font-size:11px}

/* Un peu de mouvement */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}.project-art{transition:transform .35s,box-shadow .35s}.project-art:hover{transform:translateY(-4px);box-shadow:0 22px 45px #3926381f}.skill-row{transition:padding-left .3s}.skill-row:hover{padding-left:12px}.hero-links .button{box-shadow:0 10px 24px #8b233b33}.cv-hero{border:1px solid var(--ink);padding:14px 18px;font-size:12px;border-bottom:1px solid var(--ink)}.cv-hero:hover{background:var(--ink);color:#fff}.availability>i{animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px #3f9a6300}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
