@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--pink: #f3a9dc;--hot-pink: #e96dc0;--pale-pink: #ffe2f5;--lavender: #c7b5ff;--blue: #a9d9ff;--mint: #c9f4e4;--yellow: #fff1a8;--ink: #262137;--paper: #fffdfd;--line: #39334a;--shadow: 3px 4px 0 rgba(38,33,55,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Space Grotesk,Arial,sans-serif;background-color:#f9eaf7;background-image:radial-gradient(#d99ccc .75px,transparent .75px);background-size:13px 13px}a{color:inherit}button,input{font:inherit}button,.button{border:1.5px solid var(--line);background:var(--pink);color:var(--ink);padding:9px 13px;box-shadow:2px 3px 0 var(--line);cursor:pointer;text-decoration:none;font-size:.78rem;font-weight:700;display:inline-block;transition:transform .15s,box-shadow .15s}button:hover,.button:hover{transform:translate(2px,2px);box-shadow:0 1px 0 var(--line)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #6c48c5;outline-offset:3px}.ticker{background:linear-gradient(90deg,#f7b6e7,#e4c5ff,#f7b6e7);border-bottom:1.5px solid var(--line);overflow:hidden;white-space:nowrap;font:10px DM Mono,monospace;padding:7px 0}.ticker-track{display:inline-block;min-width:100%;animation:marquee 28s linear infinite}@keyframes marquee{to{transform:translate(-50%)}}.site-shell{max-width:1320px;margin:0 auto;background:#fffdfdf2;border-inline:1.5px solid var(--line);min-height:100vh}header{padding:22px clamp(20px,4vw,56px);border-bottom:1.5px solid var(--line);background:snow}.topline{display:flex;justify-content:space-between;gap:15px;align-items:center;font:10px DM Mono,monospace;margin-bottom:15px}.topline a{text-decoration:none}.topline a:hover{text-decoration:underline}.nav-row{display:flex;align-items:center;gap:28px}.wordmark{flex:0 0 205px;text-decoration:none;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:700;letter-spacing:-2px;line-height:.86;text-shadow:2px 2px 0 var(--pink),4px 4px 0 #c7b5ff;transform:rotate(-3deg)}.wordmark small{display:block;margin-top:8px;font:9px DM Mono,monospace;letter-spacing:1px;text-shadow:none}nav{display:flex;flex:1;justify-content:center;gap:4px}nav a{display:flex;align-items:center;gap:5px;text-decoration:none;font-size:.75rem;font-weight:700;padding:10px 7px}nav a span{display:block;font-size:1.1rem;filter:drop-shadow(1px 2px 0 #f5b5e4)}nav a:hover{background:var(--pale-pink);outline:1px dashed var(--line)}.search{display:flex;width:160px;flex-shrink:0}.search input{min-width:0;width:100%;border:1.5px solid var(--line);padding:9px;background:#fff;font:10px DM Mono,monospace}.search button{padding:6px 10px;box-shadow:none}main{padding:32px clamp(20px,4vw,56px) 40px}.window{border:1.5px solid var(--line);background:#fff;box-shadow:var(--shadow);min-width:0}.window-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-bottom:1.5px solid var(--line);background:linear-gradient(90deg,#f4b4e2,#d7c5ff);font:10px DM Mono,monospace}.window-controls{display:flex;gap:3px}.window-controls i{width:12px;height:12px;display:block;background:#fff;border:1px solid var(--line);box-shadow:inset 1px 1px #ddd}.window-controls i:last-child{background:#ff9eaf}.window-body{padding:22px}.hero{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(0,1fr);gap:24px;align-items:stretch}.quicklinks .window-bar{background:linear-gradient(90deg,#c5e9ff,#e9dcff)}.quicklinks .window-body{padding:6px 10px}.quicklinks a{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #c9bfd0;text-decoration:none;font-size:.76rem}.quicklinks a:last-child{border-bottom:0}.quicklinks a:hover{color:#a02e84}.mini-note{margin-top:0;background:#fffce5;transform:rotate(-1deg)}.mini-note .window-bar{background:#fff1a8}.mini-note p{font-size:.73rem;line-height:1.55;margin:4px 0 8px}.sticker{font-size:2rem;display:inline-block;filter:drop-shadow(2px 2px 0 #f6c3e9)}.hero-main{border:1.5px solid var(--line);background:linear-gradient(135deg,#fff,#ffe5f7 55%,#e4ddff);box-shadow:var(--shadow);padding:clamp(28px,4vw,54px);position:relative;overflow:hidden;min-height:540px}.hero-main:after{content:"✦  ·  ✧  ·  ✦";position:absolute;right:13px;top:14px;color:#a97dcb;letter-spacing:8px;font-size:1.15rem}.eyebrow{font:10px DM Mono,monospace;letter-spacing:1px;text-transform:uppercase}h1{font-size:clamp(3rem,6.2vw,5.3rem);line-height:.98;letter-spacing:-3px;margin:30px 0 24px;max-width:600px}h1 .pink-text{color:#db55ad;text-shadow:2px 2px 0 white,4px 4px 0 #c8a8ff}.hero-main p{font-size:1rem;line-height:1.75;max-width:440px;position:relative;z-index:1}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;position:relative;z-index:1}.button.secondary{background:var(--blue)}.hero-art{position:absolute;right:16px;top:170px;font-size:clamp(3rem,6vw,5rem);opacity:.65;transform:rotate(9deg);filter:drop-shadow(3px 4px 0 #d8b4ef);pointer-events:none}.hero-side{display:flex;flex-direction:column;gap:20px}.status-card .window-bar{background:linear-gradient(90deg,#c7f2e2,#d6edff)}.status-card p{font-size:.85rem;line-height:1.65;margin:0 0 12px}.status-light{display:inline-block;width:8px;height:8px;background:#44cb82;border-radius:50%;box-shadow:0 0 0 3px #d7f7e7;margin-right:6px}.now-playing{background:#ffe8f6}.now-playing .window-bar{background:#f5b2e1}.song{font-size:.8rem;font-weight:700}.song small{display:block;font:10px DM Mono,monospace;margin-top:4px}.equalizer{letter-spacing:2px;color:#b4459c;margin-top:10px;animation:pulse 1.1s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.4}}.features{margin:24px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(90deg,#ffd5ee,#e6d9ff,#d2f0ff)}.feature{padding:20px 16px;display:flex;align-items:center;gap:10px;border-right:1px dashed #887a9a}.feature:last-child{border:0}.feature .emoji{font-size:1.65rem}.feature strong{display:block;font-size:.73rem}.feature small{display:block;font:9px DM Mono,monospace;margin-top:3px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:60px 0 22px;scroll-margin-top:24px}.section-head h2{margin:0;font-size:clamp(1.4rem,2.5vw,1.9rem);letter-spacing:-1px}.section-head p{margin:0;font:10px DM Mono,monospace}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:stretch}.projects .window-bar{background:linear-gradient(90deg,#bde9ff,#d6c8ff)}.project-list{display:grid;gap:10px}.project{display:grid;grid-template-columns:64px 1fr;gap:11px;padding-bottom:10px;border-bottom:1px dashed #cfc4d3}.project:last-child{padding-bottom:0;border-bottom:0}.project-icon{min-height:64px;display:grid;place-items:center;font-size:2rem;border:1px solid var(--line);background:var(--pale-pink)}.project-preview{width:100%;height:64px;display:block;object-fit:cover;border:1px solid var(--line);background:#f6f1f5}.project-list .project{grid-template-columns:92px 1fr}.project-list .project:last-of-type{padding-bottom:10px;border-bottom:1px dashed #cfc4d3}.project:nth-child(2) .project-icon{background:var(--blue)}.project:nth-child(3) .project-icon{background:var(--mint)}.project h3{font-size:.86rem;margin:1px 0 5px}.project p{font-size:.72rem;line-height:1.45;margin:0 0 6px;color:#554d63}.tag{display:inline-block;font:9px DM Mono,monospace;background:#f0e7ff;border:1px solid #c7b6e2;padding:3px 5px;margin:2px 2px 0 0}.community .window-bar{background:linear-gradient(90deg,#efb8e2,#ffc9cc)}.community-art{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:8px 8px 26px}.polaroid{background:#fff;border:1px solid #a99db1;padding:5px 5px 15px;transform:rotate(-3deg);box-shadow:2px 3px #e3c7e6;text-align:center}.polaroid:nth-child(2){transform:rotate(4deg);background:#f9f3ff}.polaroid .big{display:grid;place-items:center;height:75px;font-size:2.5rem;background:linear-gradient(135deg,#ffd8ef,#cde8ff)}.polaroid small{font:9px DM Mono,monospace}.community p{font-size:.9rem;line-height:1.75}.blog .window-bar{background:linear-gradient(90deg,#c7f1de,#fff0a9)}.blog-link{display:block;padding:9px 0;border-bottom:1px dashed #cfc4d3;text-decoration:none;font-size:.75rem;line-height:1.4}.blog-link:before{content:"↳ ";color:#c04d9e;font-weight:700}.blog-link:hover{color:#b33a94}.lower-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-top:48px}.about-card .window-bar{background:linear-gradient(90deg,#fff0a8,#ffcde8)}.about-card p{font-size:.9rem;line-height:1.7}.about-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.about-stats span{background:#e5f6ff;border:1px solid var(--line);padding:6px 8px;font:10px DM Mono,monospace}.contact-card .window-bar{background:linear-gradient(90deg,#d8c8ff,#bfe8ff)}.contact-card p{font-size:.9rem;line-height:1.6}.contact-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.contact-row .button{background:var(--mint)}.contact-row .button.pink{background:var(--pink)}.guestbook{margin-top:40px;background:#fff6fc;border:1.5px dashed var(--line);padding:24px;display:flex;justify-content:space-between;align-items:center;gap:15px}.guestbook strong{font-size:.8rem}.guestbook p{margin:4px 0 0;font-size:.7rem}footer{border-top:1.5px solid var(--line);padding:18px clamp(15px,3vw,34px);background:linear-gradient(90deg,#f6b9e5,#e1d2ff,#cceaff)}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.footer-logo{font-size:1.25rem;font-weight:700;letter-spacing:-1px}footer p,footer small{font:10px DM Mono,monospace;line-height:1.7}.footer-links{display:flex;flex-wrap:wrap;gap:13px;font-size:.72rem}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.page-intro{padding:30px clamp(3px,1vw,12px) 22px}.page-intro h1{margin:12px 0;font-size:clamp(2.7rem,7vw,5rem)}.page-intro p{max-width:590px;line-height:1.7}.project-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}.project-card .window-body{min-height:265px;display:flex;align-items:flex-start;flex-direction:column}.project-card-icon{display:grid;place-items:center;width:64px;height:64px;font-size:2.2rem;border:1.5px solid var(--line);background:var(--pale-pink);box-shadow:2px 3px #e3c7e6;margin-bottom:16px}.project-image-link{display:block;overflow:hidden;border-bottom:1px solid var(--line)}.project-image{width:100%;aspect-ratio:2.1 / 1;display:block;object-fit:cover;transition:transform .25s}.project-image-link:hover .project-image{transform:scale(1.025)}.accent-blue .project-card-icon{background:var(--blue)}.accent-mint .project-card-icon{background:var(--mint)}.project-card h2{margin:8px 0;font-size:1.2rem}.project-card h2 a,.project h3 a,.post-card h2 a{text-decoration:none}.project-card h2 a:hover,.project h3 a:hover,.post-card h2 a:hover{color:#b33a94}.project-card p{line-height:1.6;font-size:.84rem}.project-card .button{margin-top:auto}.tags{margin:5px 0 14px}.text-link,.back-link{display:inline-block;margin-top:10px;font-weight:700;font-size:.78rem;text-decoration:none}.text-link:hover,.back-link:hover{color:#b33a94}.post-list{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:25px}.post-card time,.post-detail time{font:10px DM Mono,monospace;margin-right:7px}.post-card h2{margin:12px 0 7px;font-size:1.15rem;line-height:1.3}.post-card p{font-size:.82rem;line-height:1.6}.detail-page{max-width:780px;margin:28px auto}.detail-page .window-body{padding:clamp(18px,5vw,42px)}.detail-page .back-link{display:block;margin:0 0 28px}.detail-page h1{font-size:clamp(2.3rem,6vw,4rem);line-height:1;margin:15px 0}.detail-page p{font-size:.95rem;line-height:1.85;max-width:660px}.detail-page .detail-lead{font-size:1.1rem;line-height:1.65}.post-detail .tag{margin-left:4px}.search-results{max-width:780px;margin:0 auto 30px}.search-result{display:grid;gap:7px}.search-result .tag{width:max-content}.search-result span:last-child{color:#554d63;font-size:.75rem}.certificates-panel{margin-bottom:24px}.certificate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:30px 24px}.certificate-item{margin:0;text-align:center}.certificate-item img{display:block;width:100%;height:160px;margin:0 auto 10px;object-fit:contain;background:#fff;border:1px solid #ded6df;box-shadow:2px 3px #e3c7e6}.certificate-item figcaption{max-width:190px;margin:0 auto}.certificate-item h3{margin:0 0 5px;font-size:.8rem;line-height:1.35}.certificate-item p{margin:0;font:9px DM Mono,monospace;line-height:1.5}.detail-image{width:100%;aspect-ratio:2.1 / 1;display:block;object-fit:cover;border-bottom:1.5px solid var(--line)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;border:2px solid var(--pink);padding:10px 15px;font:11px DM Mono,monospace;opacity:0;pointer-events:none;transition:.25s;z-index:5}.toast.show{opacity:1;transform:translate(-50%)}.pixel-heart{color:#e85eb5}.skip-link{position:absolute;top:8px;left:16px;z-index:10;transform:translateY(-180%);background:var(--paper);border:1px solid var(--line);padding:10px 16px}.skip-link:focus{transform:translateY(0)}nav a[aria-current=page]{background:var(--pale-pink);outline:1px solid #dfb7d5}.quicklinks{margin-top:24px}.quicklinks>.window-body{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0}.quicklinks a{gap:8px;align-items:center;padding:16px;border-bottom:0;border-right:1px dashed #c9bfd0}.quicklinks a:last-child{border-right:0}.hero-side .mini-note{flex:1}.mini-note p{font-size:.85rem}.home-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.home-project{display:flex;flex-direction:column}.home-project .window-body{flex:1;padding:24px}.home-project:nth-child(2n) .window-bar{background:linear-gradient(90deg,#bde9ff,#d6c8ff)}.home-project .project-image{aspect-ratio:1.9 / 1}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.project-heading h3{font-size:1.3rem;margin:0;letter-spacing:-.5px}.project-heading a{text-decoration:none}.project-heading a:hover{color:#b33a94;text-decoration:underline}.project-arrow{font-size:1.5rem;color:#a02e84}.home-project p{font-size:.9rem;line-height:1.7;color:#554d63;margin:12px 0;max-width:440px}.home-project .tags{margin-bottom:0}.tag{font-size:10px;padding:4px 7px}.blog .blog-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:16px;padding:18px 0;font-size:.9rem;line-height:1.5}.blog .blog-link:first-child{padding-top:0}.blog .blog-link:before{content:none}.note-category{grid-column:1;display:block;margin-bottom:5px;font:10px DM Mono,monospace;color:#8a4178}.note-category+span{grid-column:1}.note-arrow{grid-column:2;grid-row:1 / 3}.button,button{padding:11px 16px}.section-head .text-link{margin:0 0 3px;flex-shrink:0}#about,#now,#contact{scroll-margin-top:24px}@media(max-width:1100px){.nav-row{flex-wrap:wrap;gap:22px}.wordmark{flex-basis:205px}nav{order:3;flex-basis:100%;justify-content:space-between}.search{margin-left:auto;width:220px}.hero-main:after{letter-spacing:3px}.hero-art{font-size:3.3rem;right:12px;top:190px}.hero-main{padding:32px}.eyebrow{line-height:1.6}.quicklinks a{padding:14px 10px;font-size:.7rem}.feature{gap:8px;padding:18px 10px}.feature strong{font-size:.65rem}}@media(max-width:800px){.hero{grid-template-columns:minmax(0,1fr)}.hero-main{min-height:0;padding:40px}h1{font-size:clamp(3.5rem,9vw,5rem)}.hero-art{top:140px;right:24px;font-size:4rem}.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hero-side .mini-note{grid-column:1 / -1;transform:none}.mini-note .window-body{display:flex;align-items:center;gap:16px}.mini-note p{flex:1;margin:0}.quicklinks>.window-body{grid-template-columns:repeat(3,minmax(0,1fr))}.quicklinks a{border-bottom:1px dashed #c9bfd0}.quicklinks a:nth-child(3){border-right:0}.quicklinks a:nth-child(n+4){border-bottom:0}.features{grid-template-columns:1fr 1fr}.feature{padding:18px}.feature:nth-child(2){border-right:0}.feature:nth-child(-n+2){border-bottom:1px dashed #887a9a}.content-grid,.lower-grid{grid-template-columns:1fr}.certificate-grid{grid-template-columns:1fr 1fr}.home-project .window-body{padding:20px}}@media(max-width:600px){header{padding:20px}main{padding:24px 16px 32px}.topline{font-size:9px;line-height:1.6;align-items:start}.topline>span:last-child{text-align:right}.nav-row{gap:20px}.wordmark{flex:1 1 100%;font-size:2rem}.search{width:100%;order:4}nav{gap:4px;flex-wrap:wrap;justify-content:flex-start}nav a{font-size:.72rem;padding:9px 7px}nav a span{font-size:1rem}.hero{gap:20px}.hero-main{padding:28px 22px}.hero-main:after{display:none}h1{font-size:clamp(2.7rem,11.5vw,4rem);letter-spacing:-2px;margin:24px 0}.hero-main p{font-size:.9rem}.hero-art{display:none}.hero-actions{gap:12px}.hero-side{gap:16px}.hero-side .window-body{padding:16px 12px}.hero-side .window-bar{font-size:9px;padding:6px}.hero-side .window-controls{display:none}.hero-side button{padding:9px;font-size:.7rem}.equalizer{letter-spacing:0}.quicklinks>.window-body{grid-template-columns:1fr 1fr}.quicklinks a{padding:14px 10px;border-bottom:1px dashed #c9bfd0}.quicklinks a:nth-child(3){border-right:1px dashed #c9bfd0}.quicklinks a:nth-child(2n){border-right:0}.quicklinks a:nth-child(4){border-bottom:1px dashed #c9bfd0}.quicklinks a:last-child{grid-column:1 / -1;border-bottom:0}.feature{gap:10px;padding:16px 10px}.feature .emoji{font-size:1.4rem}.feature small{font-size:8px}.section-head{margin-top:40px;align-items:start;flex-direction:column;gap:10px}.home-project-grid,.project-cards,.post-list{grid-template-columns:1fr;gap:24px}.window-body{padding:20px}.lower-grid{margin-top:32px}.certificate-grid{padding:20px 14px;gap:24px 14px}.certificate-item img{height:110px}.detail-page{margin-top:10px}.guestbook{align-items:start;flex-direction:column;padding:20px}.guestbook strong{line-height:1.6}.guestbook p{line-height:1.7}}@media(max-width:360px){.hero-side{grid-template-columns:1fr}.hero-side .mini-note{grid-column:auto}.feature{gap:6px;padding-inline:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.project-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:18px}.project-card .project-actions{margin-top:auto;padding-top:10px}.project-actions .text-link{margin-top:0}.project-qa{margin-top:40px;padding-top:28px;border-top:1px dashed #cfc4d3}.project-qa h2{font-size:clamp(1.4rem,4vw,1.9rem);letter-spacing:-1px;margin:12px 0}.project-questions{margin:24px 0 0}.project-question{padding:22px 0;border-top:1px dashed #cfc4d3}.project-question dt{display:flex;gap:12px;align-items:baseline;font-size:1rem;line-height:1.6;font-weight:700}.question-number{flex-shrink:0;color:#a02e84;font:11px DM Mono,monospace}.project-question dd{margin:10px 0 0;font-size:.95rem;line-height:1.85;color:#554d63;overflow-wrap:anywhere}
