@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@300;400;500;600&display=swap";:root{color:#f4f0e8;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#0c0c11;font-family:Manrope,sans-serif}*{box-sizing:border-box}html{scrollbar-width:none;background:#0c0c11}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}.site::-webkit-scrollbar{width:0;height:0;display:none}body{-ms-overflow-style:none;scrollbar-width:none;background:#0c0c11;min-width:320px;min-height:100vh;margin:0}.site{-ms-overflow-style:none;scrollbar-width:none}button,a{font:inherit}button{color:inherit}::selection{color:#0c0c11;background:#a78bfa}.site{isolation:isolate;background:#0c0c11;min-height:100svh;position:relative;overflow:hidden}.particle-layer{z-index:0;position:fixed;inset:0}.particles{color:#fff;width:100%;height:100%;position:absolute;inset:0}.landing{z-index:5;pointer-events:none;place-items:center;transition:opacity .65s,visibility .65s,transform .65s cubic-bezier(.22,1,.36,1);display:grid;position:fixed;inset:0}.enter{pointer-events:auto;cursor:pointer;text-transform:uppercase;letter-spacing:.22em;background:0 0;border:0;padding:2rem;font:clamp(.8rem,1.3vw,.95rem) DM Mono;transition:color .3s,letter-spacing .3s,text-shadow .3s}.enter:hover{color:#a78bfa;letter-spacing:.32em;text-shadow:0 0 22px #8b5cf699}.is-entered .landing{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.05)}.profile-stage{z-index:2;pointer-events:none;place-items:center;padding:5rem 1.25rem 2rem;display:grid;position:fixed;inset:0}.profile-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#111118e8;border:1px solid #ffffff12;border-radius:22px;grid-template-rows:1fr auto;grid-template-columns:1fr auto;width:min(650px,92vw);min-height:320px;padding:5.25rem 2rem 1.5rem;animation:1s cubic-bezier(.16,1,.3,1) both profile-enter;display:grid;position:relative;box-shadow:0 28px 80px #0008}.profile-picture{object-fit:cover;border:4px solid #09090d;border-radius:32px;width:124px;height:124px;position:absolute;top:-62px;left:2rem;box-shadow:0 12px 30px #0008}.profile-main h1{letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(1.8rem,5vw,2.35rem)}.typewriter{color:#8f8f9b;align-items:center;gap:.5rem;min-height:1.5em;margin:0;font:500 clamp(.76rem,2vw,.9rem) DM Mono;display:flex}.typewriter svg{color:#fff}.typewriter i{background:#a78bfa;width:1px;height:1.1em;animation:.75s step-end infinite caret}.meteor-hint{color:#5f5f6b;margin:.8rem 0 0;font:.68rem DM Mono}.meteor-hint kbd{color:#aaaabc;font:inherit}.view-counter{flex-direction:column;align-self:start;align-items:flex-end;gap:.35rem;display:flex}.view-counter>span{color:#666674;letter-spacing:.2em;text-transform:uppercase;font:.6rem DM Mono}.view-digits{align-items:center;height:50px;display:flex}.view-digits b{color:#777;letter-spacing:.12em;font:500 1rem DM Mono}.view-digits img{object-fit:contain;width:22.5px;height:50px}.logo-loop{grid-column:1/-1;align-self:end;width:100%;margin-top:2.5rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000)}.logo-loop-track{gap:16px;width:max-content;animation:22s linear infinite logo-scroll;display:flex}.logo-loop-item{transform-origin:50%;flex:none;transition:opacity .25s,filter .25s,transform .25s;display:block}.logo-loop-item img{image-rendering:auto;width:88px;height:31px;display:block}.logo-loop:has(.logo-loop-item:hover) .logo-loop-item:not(:hover){opacity:.22;filter:grayscale()}.logo-loop-item:hover{z-index:2;position:relative;transform:scale(1.2)}.meteors{z-index:10;pointer-events:none;position:fixed;inset:0;overflow:hidden}.meteor-field{position:absolute;inset:-25%}.meteor-rail{animation:linear infinite meteor-fall;position:absolute;inset-block:0}.meteor-rail i{background:linear-gradient(to bottom,transparent,var(--meteor-color));border-radius:999px;width:1px;display:block;position:relative}.meteor-rail i:after{background:var(--meteor-color);width:3px;height:3px;box-shadow:0 0 8px 1px var(--meteor-color);content:"";border-radius:50%;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)}@keyframes profile-enter{0%{opacity:0;transform:translateY(34px)scale(.94)}to{opacity:1;transform:none}}@keyframes meteor-fall{0%{transform:translateY(-10%)}to{transform:translateY(110%)}}@keyframes logo-scroll{to{transform:translate(calc(-50% - 8px))}}@keyframes caret{50%{opacity:0}}@media (width<=560px){.profile-stage{padding-top:4.5rem}.profile-card{grid-template-columns:1fr;min-height:360px;padding:4.75rem 1.35rem 1.25rem}.profile-picture{border-radius:27px;width:104px;height:104px;top:-52px;left:1.35rem}.view-counter{position:absolute;top:1.25rem;right:1.25rem}.view-digits{height:40px}.view-digits img{width:18px;height:40px}.logo-loop{margin-top:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.logo-loop{margin-top:2rem;padding:.5rem 0}.profile-stage{animation:.85s cubic-bezier(.16,1,.3,1) both profile-stage-enter}.meteors{animation:.8s cubic-bezier(.16,1,.3,1) both meteors-reveal}.logo-loop:hover .logo-loop-track{animation-play-state:running}.logo-loop:has(.logo-loop-item:hover) .logo-loop-track{animation-play-state:paused}@keyframes profile-stage-enter{0%{opacity:0;filter:blur(10px);transform:translateY(24px)scale(.97)}to{opacity:1;filter:blur();transform:none}}@keyframes meteors-reveal{0%{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur()}}.profile-stage,.profile-card{animation:none}.typewriter strong{color:inherit;font:inherit;transition:color .55s,text-shadow .55s}.typewriter strong.is-highlighted{color:#a78bfa;text-shadow:0 0 14px #8b5cf666}.preloader{z-index:100;background:#0c0c11;place-items:center;transition:opacity .6s cubic-bezier(.16,1,.3,1),visibility .6s;display:grid;position:fixed;inset:0}.preloader.is-leaving{opacity:0;visibility:hidden}.preloader-word{color:#3d3d45;letter-spacing:-.04em;font:600 clamp(1.35rem,3vw,2rem) DM Mono;position:relative}.preloader-word:after{color:#0000;content:"ethone.fr";background:linear-gradient(100deg,#0000 20%,#fff 48% 52%,#0000 80%) 0 0/240% 100%;-webkit-background-clip:text;background-clip:text;animation:1.5s linear infinite loader-shine;position:absolute;inset:0}.site:not(.is-ready) .landing{opacity:0;visibility:hidden}.enter:disabled{cursor:default}@keyframes loader-shine{0%{background-position:180% 0}to{background-position:-80% 0}}.site{scroll-behavior:smooth;scroll-snap-type:y mandatory;height:100svh;overflow:hidden auto}.home-section,.about-section{scroll-snap-align:start;scroll-snap-stop:always;min-height:100svh;position:relative}.profile-stage{height:100svh;position:relative;inset:auto}.drift-down{z-index:4;color:#666674;letter-spacing:.18em;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:.45rem;font:.62rem DM Mono;transition:color .3s;display:flex;position:absolute;bottom:1.4rem;left:50%;transform:translate(-50%)}.drift-down svg{font-size:.72rem;animation:1.5s ease-in-out infinite drift-arrow}.drift-down:hover{color:#fff}.about-section{background:#0c0c11b8;place-items:center;padding:4rem 1.25rem;display:grid}.about-shell{width:min(700px,92vw)}.about-shell h2{text-align:center;letter-spacing:.2em;margin:0 0 1.6rem;font:700 clamp(1.15rem,3vw,1.45rem) DM Mono}.info-card{color:#d7d7dc;background:#111116ed;border:1px solid #ffffff12;border-radius:20px;width:100%;position:relative;box-shadow:0 22px 55px #0004}.about-card{padding:1.65rem 1.8rem}.about-card strong{color:#fff;margin-bottom:.55rem;font-size:.78rem;display:block}.about-card p{color:#b2b2ba;margin:0 0 1.15rem;font-size:.82rem;line-height:1.75}.about-card p:last-child{margin-bottom:0}.weather-card{text-align:left;cursor:pointer;margin-top:1rem;padding:1.65rem 1.8rem;transition:border-color .3s,transform .3s;display:block}.weather-card:hover{border-color:#fff2}.card-label{color:#555560;letter-spacing:.08em;text-transform:uppercase;font:.55rem DM Mono;position:absolute;top:1.15rem;right:1.35rem}.weather-current{align-items:center;gap:1rem;display:flex}.weather-current>svg{color:#fff;width:1.5rem;font-size:1.5rem}.weather-current strong{color:#fff;font-size:1rem}.weather-current p{color:#6f6f7a;margin:.55rem 0 0;font:.7rem DM Mono}.weather-current p span{margin-left:1.2rem}.forecast{opacity:0;max-height:0;transition:max-height .65s cubic-bezier(.16,1,.3,1),opacity .35s,margin .65s;overflow:hidden}.weather-card.is-expanded .forecast{opacity:1;max-height:240px;margin-top:1.35rem}.forecast-day{color:#777782;border-top:1px solid #ffffff0d;grid-template-columns:65px 1fr auto;align-items:center;padding:.75rem 0;font:.72rem DM Mono;display:grid}.forecast-day svg{color:#aaaab4;width:1rem;margin-right:.35rem}.forecast-day strong{color:#fff}.clock-card{align-items:center;gap:1.4rem;margin-top:1rem;padding:1.35rem 1.8rem;display:flex}.analog-clock{flex:none;width:92px;height:92px}.clock-copy{position:relative}.clock-copy strong{color:#fff;font-size:1.05rem;display:block}.clock-copy p{color:#777782;margin:.55rem 0;font-size:.72rem}.clock-copy small{color:#555560;font-size:.67rem}.clock-24{color:#fff;opacity:0;pointer-events:none;background:#25252b;border:1px solid #ffffff17;border-radius:8px;padding:.55rem .7rem;font:600 .7rem DM Mono;transition:opacity .25s,transform .25s;position:absolute;bottom:calc(100% + .7rem);left:0;transform:translateY(7px)}.about-section .about-shell>*{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}.about-section.is-visible .about-shell>*{opacity:1;transform:none}.about-section.is-visible .about-shell>:nth-child(2){transition-delay:80ms}.about-section.is-visible .about-shell>:nth-child(3){transition-delay:.16s}.about-section.is-visible .about-shell>:nth-child(4){transition-delay:.24s}@keyframes drift-arrow{50%{transform:translateY(5px)}}@media (width<=600px){.about-section{padding-block:2.5rem}.about-card,.weather-card,.clock-card{padding:1.25rem}.clock-card{gap:1rem}.analog-clock{width:76px;height:76px}.forecast-day{grid-template-columns:45px 1fr auto;font-size:.62rem}}.clock-time{display:inline-block;position:relative}.clock-time:hover .clock-24{opacity:1;transform:none}.clock-copy:hover .clock-24{opacity:0;transform:translateY(7px)}.clock-copy .clock-time:hover .clock-24{opacity:1;transform:none}.music-section{scroll-snap-align:start;scroll-snap-stop:always;background:#09090dbf;place-items:center;min-height:100svh;padding:3rem 2rem;display:grid;position:relative}.music-layout{grid-template-columns:minmax(190px,240px) minmax(390px,480px) minmax(190px,240px);align-items:center;gap:clamp(1.5rem,4vw,4rem);width:min(1120px,96vw);display:grid}.music-ranking h3{color:#5d5d68;letter-spacing:.2em;margin:0 0 1.2rem;font:.62rem DM Mono}.music-ranking ol{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.music-ranking li{grid-template-columns:18px 46px 1fr auto;align-items:center;gap:.7rem;min-width:0;display:grid}.music-ranking li>span,.music-ranking li>em{color:#555560;font:.68rem DM Mono}.music-ranking li img{object-fit:cover;background:#15151b;border-radius:10px;width:46px;height:46px}.music-ranking li div{min-width:0}.music-ranking li strong,.music-ranking li small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.music-ranking li strong{color:#d6d6dc;font-size:.78rem}.music-ranking li small{color:#5f5f69;margin-top:.25rem;font-size:.62rem}.music-ranking li>em{text-align:right}.recent-plays{text-align:center}.recent-plays h2{color:#eeeef2;letter-spacing:.23em;margin:0 0 1rem;font:700 1rem DM Mono}.coverflow{perspective:900px;height:300px;transform-style:preserve-3d;position:relative}.cover{z-index:var(--cover-order);cursor:pointer;width:245px;height:245px;opacity:var(--cover-opacity);transform:translateX(calc(-50% + var(--cover-x))) translateZ(var(--cover-z)) rotateY(var(--cover-rotate)) scale(var(--cover-scale));transform-origin:50%;filter:brightness(var(--cover-brightness));-webkit-box-reflect:below 2px linear-gradient(transparent 45%,#0007);background:#121218;border:1px solid #ffffff18;border-radius:4px;padding:0;transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .45s,filter .45s;position:absolute;top:0;left:50%;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%}.cover.is-active{z-index:20;opacity:1;filter:none}.track-player{color:#63636e;grid-template-columns:22px 32px 1fr 32px;align-items:center;gap:.5rem;width:min(330px,90%);margin:-1rem auto 0;font:.58rem DM Mono;display:grid}.track-player button{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:22px;padding:0;display:grid}.track-player button:disabled{color:#444;cursor:not-allowed}.track-player input{accent-color:#a78bfa;cursor:pointer;width:100%;height:2px}.track-copy{margin-top:1.25rem}.track-copy strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;display:block;overflow:hidden}.track-copy p{color:#696975;margin:.4rem 0 0;font-size:.72rem}.music-section .music-layout>*{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(26px)}.music-section.is-visible .music-layout>*{opacity:1;transform:none}.music-section.is-visible .recent-plays{transition-delay:80ms}.music-section.is-visible .albums{transition-delay:.16s}@media (width<=900px){.music-section{align-items:start;padding-block:4rem}.music-layout{grid-template-columns:1fr 1fr}.recent-plays{grid-area:1/1/auto/-1}.music-ranking{margin-top:1rem}.coverflow{height:270px}.cover{width:220px;height:220px}}@media (width<=560px){.music-section{padding-inline:1rem}.music-layout{grid-template-columns:1fr}.recent-plays,.music-ranking{grid-column:1}.artists{grid-row:2}.albums{grid-row:3}.music-ranking li{grid-template-columns:18px 40px 1fr auto}.music-ranking li img{width:40px;height:40px}.coverflow{height:235px}.cover{width:190px;height:190px}}.cover{pointer-events:none}.cover.is-active{pointer-events:auto}.coverflow{cursor:ew-resize}.coverflow-nav{z-index:30;cursor:pointer;background:0 0;border:0;width:27%;position:absolute;top:0;bottom:0}.coverflow-nav.previous{left:0}.coverflow-nav.next{right:0}.track-player{z-index:40;-webkit-backdrop-filter:none;backdrop-filter:none;padding:.55rem .7rem;background:0 0;border:0;border-radius:9px;margin:-2rem auto 0;padding:0;position:relative}.about-section,.music-section{background:0 0}.info-card{background:#111118e8}.recent-plays h2{letter-spacing:.2em;margin:0 0 1.6rem;font:700 clamp(1.15rem,3vw,1.45rem) DM Mono}.home-section,.about-section,.music-section{pointer-events:none}.profile-card,.info-card,.drift-down,.coverflow,.track-player{pointer-events:auto}.projects-section{scroll-snap-align:start;scroll-snap-stop:always;pointer-events:none;background:0 0;place-items:center;min-height:100svh;padding:4rem 2rem;display:grid;position:relative}.projects-shell{width:min(1040px,94vw)}.projects-shell>h2{text-align:center;color:#eeeef2;letter-spacing:.2em;margin:0 0 2rem;font:700 clamp(1.15rem,3vw,1.45rem) DM Mono}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.project-card{color:inherit;pointer-events:auto;opacity:0;background:#111118e8;border:1px solid #ffffff12;border-radius:20px;text-decoration:none;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s;overflow:hidden;transform:translateY(30px)scale(.97);box-shadow:0 22px 55px #0004}.projects-section.is-visible .project-card{opacity:1;transform:none}.projects-section.is-visible .project-card:nth-child(2){transition-delay:.12s}.project-card:hover{border-color:#a78bfa55;transform:translateY(-6px);box-shadow:0 28px 70px #0007}.project-image{aspect-ratio:1.916;background:#0c0c11;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.16,1,.3,1),filter .4s;display:block}.project-card:hover .project-image img{filter:brightness(1.08);transform:scale(1.035)}.project-copy{padding:1.45rem 1.55rem 1.55rem}.project-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.project-heading h3{color:#fff;margin:0;font-size:1.05rem}.project-heading svg{color:#777782;font-size:.8rem;transition:color .3s,transform .3s}.project-card:hover .project-heading svg{color:#a78bfa;transform:translate(2px,-2px)}.project-copy p{color:#a7a7b0;min-height:6.8em;margin:1rem 0;font-size:.78rem;line-height:1.7}.project-copy>span{color:#666672;letter-spacing:.08em;font:.62rem DM Mono}.projects-shell>h2{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.projects-section.is-visible .projects-shell>h2{opacity:1;transform:none}@media (width<=700px){.projects-section{align-items:start;padding:4rem 1rem}.projects-grid{grid-template-columns:1fr}.project-copy p{min-height:0}.project-card:hover{transform:translateY(-3px)}}.github-projects-section{scroll-snap-align:start;scroll-snap-stop:always;pointer-events:none;background:0 0;place-items:center;min-height:100svh;padding:4rem 2rem;display:grid;position:relative}.github-projects-section .projects-shell>h2,.github-projects-section .project-card{opacity:0;transform:translateY(30px)scale(.97)}.github-projects-section .projects-shell>h2{transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.github-projects-section.is-visible .projects-shell>h2,.github-projects-section.is-visible .project-card{opacity:1;transform:none}.github-projects-section.is-visible .project-card:nth-child(2){transition-delay:.12s}.code-project-card{display:block}.code-project-card .project-heading svg{font-size:1rem}.project-footer{justify-content:space-between;align-items:center;gap:1rem;min-height:28px;display:flex}.project-footer>span{color:#666672;letter-spacing:.06em;font:.58rem DM Mono}.project-links{gap:.5rem;display:flex}.project-links a{color:#aaaab4;border:1px solid #ffffff13;border-radius:8px;align-items:center;gap:.4rem;padding:.48rem .65rem;font:.58rem DM Mono;text-decoration:none;transition:color .25s,border-color .25s,background .25s;display:flex}.project-links a svg{font-size:.55rem}.project-links a:hover{color:#fff;background:#a78bfa12;border-color:#a78bfa55}@media (width<=700px){.github-projects-section{align-items:start;padding:4rem 1rem}.project-footer{flex-direction:column;align-items:flex-start}.github-projects-section .project-copy p{min-height:0}}.guestbook-section{scroll-snap-align:start;scroll-snap-stop:always;pointer-events:none;background:0 0;place-items:center;min-height:100svh;padding:4rem 2rem;display:grid;position:relative}.guestbook-shell{width:min(920px,94vw)}.guestbook-shell>h2{text-align:center;color:#eeeef2;letter-spacing:.2em;margin:0 0 2rem;font:700 clamp(1.15rem,3vw,1.45rem) DM Mono}.guestbook-layout{grid-template-columns:230px 1fr;align-items:start;gap:1.25rem;display:grid}.like-card,.guestbook-card{pointer-events:auto}.like-card{text-align:center;padding:1.5rem}.like-card>span{color:#666672;letter-spacing:.14em;font:.58rem DM Mono}.like-card>button{color:#7b7b87;cursor:pointer;background:#ffffff05;border:1px solid #ffffff12;border-radius:14px;justify-content:center;align-items:center;gap:.75rem;width:100%;margin:1.3rem 0 .8rem;padding:1rem;transition:color .3s,border-color .3s,background .3s,transform .3s;display:flex}.like-card>button:hover{color:#c4b5fd;transform:scale(1.03)}.like-card>button.is-liked{color:#a78bfa;background:#a78bfa14;border-color:#a78bfa55}.like-card>button svg{font-size:1.25rem}.like-card>button strong{font:700 1.25rem DM Mono}.like-card>p{color:#666672;margin:0;font-size:.68rem}.guestbook-card{padding:1.5rem}.guestbook-card form{border-bottom:1px solid #ffffff0d;grid-template-columns:180px 1fr auto;align-items:end;gap:.8rem;padding-bottom:1.4rem;display:grid}.guestbook-card label{gap:.5rem;display:grid}.guestbook-card label>span{color:#777782;letter-spacing:.08em;font:.58rem DM Mono}.guestbook-card input,.guestbook-card textarea{color:#eee;width:100%;font:inherit;resize:none;background:#0c0c11aa;border:1px solid #ffffff12;border-radius:10px;outline:0;padding:.75rem;transition:border-color .25s}.guestbook-card input:focus,.guestbook-card textarea:focus{border-color:#a78bfa77}.guestbook-card form>button{color:#c4b5fd;letter-spacing:.08em;cursor:pointer;background:#a78bfa16;border:1px solid #a78bfa44;border-radius:10px;min-height:43px;padding:.7rem .9rem;font:600 .56rem DM Mono;transition:background .25s,color .25s}.guestbook-card form>button:hover{color:#fff;background:#a78bfa2b}.guestbook-messages{gap:.7rem;max-height:310px;margin-top:1rem;padding-right:.35rem;display:grid;overflow-y:auto}.guestbook-messages article{background:#ffffff03;border:1px solid #ffffff0c;border-radius:12px;padding:.85rem 1rem;animation:.55s cubic-bezier(.16,1,.3,1) guestbook-message}.guestbook-messages article>div{justify-content:space-between;align-items:center;gap:1rem;display:flex}.guestbook-messages article strong{color:#fff;font-size:.74rem}.guestbook-messages article time{color:#555560;font:.55rem DM Mono}.guestbook-messages article p,.guestbook-empty{color:#9999a3;overflow-wrap:anywhere;margin:.5rem 0 0;font-size:.72rem;line-height:1.55}.guestbook-empty{text-align:center}.guestbook-shell>h2,.guestbook-layout>*{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:translateY(26px)}.guestbook-section.is-visible .guestbook-shell>h2,.guestbook-section.is-visible .guestbook-layout>*{opacity:1;transform:none}.guestbook-section.is-visible .guestbook-layout>:first-child{transition-delay:80ms}.guestbook-section.is-visible .guestbook-layout>:nth-child(2){transition-delay:.16s}@keyframes guestbook-message{0%{opacity:0;transform:translateY(-10px)scale(.98)}}@media (width<=760px){.guestbook-section{align-items:start;padding:4rem 1rem}.guestbook-layout,.guestbook-card form{grid-template-columns:1fr}.guestbook-messages{max-height:260px}}.like-card button:disabled,.guestbook-card form>button:disabled{opacity:.55;cursor:wait}.guestbook-error{color:#c4a0d8;margin:.75rem 0 0;font:.62rem DM Mono}@media (width<=700px){.site{scroll-snap-type:y proximity;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.home-section,.about-section,.music-section,.projects-section,.github-projects-section,.guestbook-section{width:100%;max-width:100%;overflow-x:hidden}.projects-section,.github-projects-section,.guestbook-section{padding:3.5rem 1rem 5.5rem}.projects-shell,.guestbook-shell,.music-layout,.about-shell{width:100%;max-width:100%}.projects-shell>h2,.guestbook-shell>h2,.recent-plays h2,.about-shell h2{letter-spacing:.14em;overflow-wrap:anywhere;font-size:clamp(.95rem,5vw,1.15rem)}.project-card{border-radius:16px}.project-copy{padding:1.2rem}.project-copy p{font-size:.76rem;line-height:1.65}.github-projects-section .project-image{aspect-ratio:16/9}.github-projects-section .project-image img{object-fit:contain}.project-links a{min-height:42px;padding:.55rem .7rem}.drift-down{min-width:110px;min-height:44px;bottom:1rem}.guestbook-card input,.guestbook-card textarea{font-size:16px}.guestbook-card form>button{min-height:46px}.like-card>button{min-height:50px}}@media (width<=420px){.profile-stage{padding-inline:.65rem}.profile-card{border-radius:18px;width:100%;padding-inline:1.2rem}.profile-picture{left:1.2rem}.typewriter{font-size:.7rem}.logo-loop-track{gap:12px}.logo-loop-item img{width:80px;height:28px}.about-section{padding-inline:.75rem}.about-card,.weather-card,.clock-card{border-radius:16px;padding:1.1rem}.about-card p{font-size:.76rem;line-height:1.65}.weather-current{gap:.75rem}.clock-card{gap:.8rem}.analog-clock{width:68px;height:68px}.clock-copy strong{font-size:.92rem}.music-section{padding:3.5rem .75rem 5.5rem}.coverflow{height:220px}.cover{width:178px;height:178px}.track-player{width:94%;margin:-.7rem auto 0}.music-ranking{width:100%}.projects-grid{gap:1rem}.project-footer{width:100%}.project-links{flex-wrap:wrap;width:100%}.project-links a{flex:1;justify-content:center}.guestbook-card,.like-card{border-radius:16px;padding:1.15rem}}@media (width<=360px){.view-counter{right:.85rem}.profile-main h1{font-size:1.65rem}.projects-shell>h2,.guestbook-shell>h2,.recent-plays h2,.about-shell h2{letter-spacing:.1em;font-size:.9rem}.project-copy{padding:1rem}.forecast-day{grid-template-columns:38px 1fr auto}}@media (height<=700px) and (width<=700px){.profile-stage{padding-top:3.8rem}.profile-card{min-height:310px;padding-top:4.25rem}.profile-picture{width:90px;height:90px;top:-45px}.logo-loop{margin-top:1.25rem}}
