@import "https://fonts.googleapis.com/css2?family=Oswald:wght@400;600&family=Libre+Baskerville:wght@400;700&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-full{height:100%}.h-screen{height:100vh}.flex-col{flex-direction:column}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scrollbar-thin::-webkit-scrollbar{width:6px}.scrollbar-thin::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--bg:#f2f1eb;--panel:#f7f5ef;--ink:#171717;--muted:#4f4f4f;--line:#171717;--accent:#a53e2b}.site-header-actions{align-items:center;gap:14px;display:flex}.theme-toggle{border:1px solid var(--line);color:var(--ink);letter-spacing:1.3px;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:7px 10px;font-family:Oswald,sans-serif;font-size:.72rem;transition:background-color .15s,color .15s,transform .15s;display:inline-flex}.theme-toggle:hover{background:var(--ink);color:#f9f8f4;transform:translateY(-1px)}.theme-toggle-label,.theme-toggle-icon{line-height:1}.theme-toggle-icon{opacity:.76;font-size:.64rem}:root[data-theme=dark]{--bg:#121519;--panel:#171c21;--ink:#edf0e8;--muted:#abb3bf;--line:#4d5966;--accent:#de765f}:root[data-theme=dark] html,:root[data-theme=dark] body,:root[data-theme=dark] #root{background:radial-gradient(circle at 10% 0%, #20272e 0%, var(--bg) 48%, #0f1317 100%)}:root[data-theme=dark] .site-header,:root[data-theme=dark] .top-strip,:root[data-theme=dark] .ds-nav{background:linear-gradient(120deg,#1f262c 0%,#1b2228 35%,#151b21 100%)}:root[data-theme=dark] .interactive-feature,:root[data-theme=dark] .blog-card,:root[data-theme=dark] .contact-card,:root[data-theme=dark] .skills-card,:root[data-theme=dark] .project-stats,:root[data-theme=dark] .project-filters,:root[data-theme=dark] .project-cta,:root[data-theme=dark] .blog-actions,:root[data-theme=dark] .blog-tags,:root[data-theme=dark] .blog-featured,:root[data-theme=dark] .blog-cta,:root[data-theme=dark] .post-header,:root[data-theme=dark] .post-footer,:root[data-theme=dark] .editor-header,:root[data-theme=dark] .contact-info,:root[data-theme=dark] .contact-links-cell,:root[data-theme=dark] .contact-cta,:root[data-theme=dark] .not-found-links{background:linear-gradient(160deg,#1c2329 0%,#151b20 100%)}:root[data-theme=dark] .skills-card{background:radial-gradient(circle at 12% 10%,#de765f2e 0%,#de765f00 42%),linear-gradient(160deg,#1c2329 0%,#151b20 100%)}:root[data-theme=dark] .project-tile,:root[data-theme=dark] .blog-item,:root[data-theme=dark] .post-content,:root[data-theme=dark] .editor-form,:root[data-theme=dark] .contact-form-cell,:root[data-theme=dark] .ds-project-tile,:root[data-theme=dark] .ds-blog-card,:root[data-theme=dark] .modal-card,:root[data-theme=dark] .field-input,:root[data-theme=dark] .ds-input,:root[data-theme=dark] .skill-visual{background:#1b2127}:root[data-theme=dark] .project-tile.is-featured{background:linear-gradient(160deg,#20282f 0%,#171d23 100%)}:root[data-theme=dark] .project-tile:hover,:root[data-theme=dark] .blog-item:hover,:root[data-theme=dark] .blog-featured:hover,:root[data-theme=dark] .ds-project-tile:hover,:root[data-theme=dark] .ds-blog-card:hover{background:#20282f;box-shadow:0 10px 28px #0000004d}:root[data-theme=dark] .tech-chip,:root[data-theme=dark] .ds-chip{background:#191f25f0;border-color:#edf0e833}:root[data-theme=dark] .theme-button,:root[data-theme=dark] .ds-action,:root[data-theme=dark] .contact-link-card:hover,:root[data-theme=dark] .not-found-card:hover,:root[data-theme=dark] .theme-toggle:hover{color:#0f1418;background:#edf0e8}:root[data-theme=dark] .theme-button:hover,:root[data-theme=dark] .ds-action:hover{background:#fff}:root[data-theme=dark] .theme-button-outline,:root[data-theme=dark] .ds-action-secondary,:root[data-theme=dark] .modal-close,:root[data-theme=dark] .theme-toggle{color:var(--ink);background:#151b20}:root[data-theme=dark] .theme-button-outline:hover,:root[data-theme=dark] .ds-action-secondary:hover,:root[data-theme=dark] .modal-close:hover,:root[data-theme=dark] .feature-switch.is-active,:root[data-theme=dark] .theme-toggle{background:#20282f}:root[data-theme=dark] .hero-message-button{color:#11161b;background:#edf0e8eb}:root[data-theme=dark] .hero-message-button:hover{background:#fff}:root[data-theme=dark] .spotlight-screenshot,:root[data-theme=dark] .tile-screenshot{background:#ffffff0f}:root[data-theme=dark] .timeline-event,:root[data-theme=dark] .skill-ribbon{border-color:#edf0e838}:root[data-theme=dark] .timeline-event:before{background:#de765fb3}:root[data-theme=dark] .timeline-event-clickable:hover,:root[data-theme=dark] .projects-scroll .item-button:hover{background:#de765f17}:root[data-theme=dark] .timeline-dot{background:#1c2329}:root[data-theme=dark] .timeline-dot.is-education{border-color:#6892bd}:root[data-theme=dark] .timeline-dot.is-volunteering{border-color:#5faa6a}:root[data-theme=dark] .timeline-scroll::-webkit-scrollbar-thumb{background:#de765fb8}:root[data-theme=dark] .projects-scroll::-webkit-scrollbar-thumb{background:#6892bd9e}:root[data-theme=dark] .field-input,:root[data-theme=dark] .ds-input{border-color:#edf0e82e}:root[data-theme=dark] .field-input:focus,:root[data-theme=dark] .ds-input:focus{outline-color:#de765f6b}:root[data-theme=dark] .modal-title-block,:root[data-theme=dark] .ds-blog-post-header,:root[data-theme=dark] .ds-blog-post-footer{border-color:#edf0e833}:root[data-theme=dark] .modal-overlay{background:#040608b8}:root[data-theme=dark] .modal-card{box-shadow:0 18px 45px #0000007a}:root[data-theme=dark] .project-hero-text .sub,:root[data-theme=dark] .blog-hero-text .sub,:root[data-theme=dark] .contact-hero-text .sub,:root[data-theme=dark] .not-found-text .muted{color:#d0c8b9}:root[data-theme=dark] .hero-academic{color:#efe5d7}:root[data-theme=dark] .project-badge.is-open,:root[data-theme=dark] .timeline-icon,:root[data-theme=dark] .not-found-card-desc{color:#c4ccd8}:root[data-theme=dark] .project-badge.is-company,:root[data-theme=dark] .timeline-event.is-education .timeline-icon,:root[data-theme=dark] .ds-chip-project{color:#8db6de}:root[data-theme=dark] .project-badge.is-personal,:root[data-theme=dark] .timeline-event.is-volunteering .timeline-icon{color:#8bcf97}:root[data-theme=dark] .project-badge.is-nda,:root[data-theme=dark] .timeline-event.is-experience .timeline-icon,:root[data-theme=dark] .ds-chip-tag,:root[data-theme=dark] .feedback-error{color:#f09886}:root[data-theme=dark] .feedback-success{color:#8fdb9e}:root[data-theme=dark] .site-header-nav{background:#171c21}@media (width<=768px){.site-header-actions{margin-left:auto}.theme-toggle-label{display:none}}*{box-sizing:border-box}html,body,#root{background:radial-gradient(circle at 10% 0%, #fcfaf3 0%, var(--bg) 52%, #ece9de 100%);width:100%;min-height:100%;color:var(--ink);margin:0;font-family:Libre Baskerville,serif}.poster{flex-direction:column;width:100%;min-height:100vh;display:flex}.grid{border-left:2px solid var(--line);border-top:2px solid var(--line);background:var(--panel);flex:1;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(250px,auto);display:grid}.site-header{border-bottom:2px solid var(--line);background:linear-gradient(120deg,#f4f3ec 0%,#f0eee6 35%,#ebe8dc 100%)}.site-header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1280px;min-height:64px;margin:0 auto;padding:0 24px;display:flex}.site-header-brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.site-header-brand-text{display:none}@media (width>=768px){.site-header-brand-text{display:block}}.site-header-nav{align-items:center;gap:24px;display:flex}.site-header-context{flex-shrink:0;display:none}@media (width>=960px){.site-header-context{display:block}}.mobile-menu-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px;display:none}.hamburger-line{background:var(--ink);width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.hamburger-line.is-open:first-child{transform:translateY(6px)rotate(45deg)}.hamburger-line.is-open:nth-child(2){opacity:0}.hamburger-line.is-open:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (width<=768px){.mobile-menu-toggle{display:flex}.site-header{z-index:100;position:relative}.site-header-nav{background:var(--panel);z-index:99;flex-direction:column;gap:20px;padding:32px 24px;display:none;position:fixed;inset:64px 0 0;overflow-y:auto}.site-header-nav.is-open{display:flex}.site-header-nav .nav-link{padding:8px 0;font-size:1.1rem}}.top-strip{border-bottom:2px solid var(--line);background:linear-gradient(120deg,#f4f3ec 0%,#f0eee6 35%,#ebe8dc 100%);grid-template-columns:1.1fr 1fr 1.4fr;min-height:78px;display:grid}.top-strip-compact{min-height:64px}.identity-block,.page-nav-links,.signal-card{border-right:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;display:flex}.identity-mark-link{color:inherit;text-decoration:none}.page-nav-links{justify-content:center;gap:24px}.nav-link{letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);font-family:Oswald,sans-serif;font-size:.78rem;text-decoration:none;transition:color .15s;position:relative}.nav-link:hover{color:var(--accent)}.nav-link.is-active{color:var(--ink);font-weight:600}.nav-link.is-active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-4px;left:0;right:0}.signal-card{border-right:0;justify-content:flex-start;position:relative;overflow:hidden}.signal-card-compact{min-height:auto}.signal-card img{object-fit:cover;opacity:.12;filter:grayscale()contrast(.85);width:100%;height:100%;position:absolute;inset:0}.signal-copy{z-index:1;position:relative}.signal-line{letter-spacing:1.2px;text-transform:uppercase;margin:0;font-family:Oswald,sans-serif;font-size:.78rem}.identity-mark{border:2px solid var(--line);letter-spacing:1px;place-items:center;width:46px;height:46px;font-family:Oswald,sans-serif;font-size:1rem;font-weight:600;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:0;font-family:Oswald,sans-serif;font-size:.68rem}.identity-name{margin:.2rem 0 0;font-size:.95rem;font-weight:700}.pulse-dot{background:var(--accent);border-radius:50%;width:9px;height:9px;animation:2.4s infinite pulse;box-shadow:0 0 #a53e2b99}.pulse-text{text-transform:uppercase;letter-spacing:1.6px;font-family:Oswald,sans-serif;font-size:.78rem}.cell{border-right:2px solid var(--line);border-bottom:2px solid var(--line);flex-direction:column;gap:12px;padding:24px;display:flex}.hero{grid-column:span 2;justify-content:flex-end;min-height:340px;position:relative}.hero img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.overlay{background:linear-gradient(18deg,#050505b3 0%,#05050575 42%,#05050559 100%);position:absolute;inset:0}.hero-text{color:#fff;max-width:70ch;position:relative}.hero h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.sub{letter-spacing:2.2px;margin:.85rem 0 0;font-family:Oswald,sans-serif;font-size:.8rem}.hero-academic{letter-spacing:1.4px;text-transform:uppercase;color:#e6ddd0;margin-top:.55rem;font-family:Oswald,sans-serif;font-size:.74rem}.feature{grid-row:span 2}.interactive-feature{background:linear-gradient(#f8f7f1 0%,#f2efe5 100%)}.chip-wrap{flex-wrap:wrap;gap:8px;display:flex}.tech-chip{letter-spacing:1px;text-transform:uppercase;background:#ffffffc7;border:1px solid #171717b8;padding:4px 8px;font-family:Oswald,sans-serif;font-size:.72rem}.theme-button{border:1px solid var(--line);background:var(--ink);color:#f9f8f4;letter-spacing:1.3px;text-transform:uppercase;cursor:pointer;width:fit-content;padding:9px 12px;font-family:Oswald,sans-serif;font-size:.78rem}.theme-button:hover{background:#2a2a2a}.feature-switches{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:auto;display:grid}.feature-switch{border:1px dashed var(--line);text-align:left;letter-spacing:1.1px;text-transform:uppercase;cursor:pointer;background:0 0;padding:8px;font-family:Oswald,sans-serif;font-size:.74rem}.feature-switch.is-active{background:#ece9de;border-style:solid}.feature h2{margin:0;font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.2}.spotlight-screenshot{border:1px solid var(--line);background:#0000000a;border-radius:4px;width:100%;max-height:280px;overflow:hidden}.spotlight-screenshot img{object-fit:contain;width:100%;height:100%;display:block}h3{letter-spacing:2px;text-transform:uppercase;margin:0;font-family:Oswald,sans-serif;font-size:.82rem}p{max-width:64ch;margin:0;font-size:1rem;line-height:1.75}.muted{color:var(--muted);font-size:.9rem}.meta{color:var(--muted);font-size:.82rem}.item{border-top:1px dashed var(--line);gap:5px;padding-top:10px;display:grid}.item-button{text-align:left;cursor:pointer;background:0 0;border-bottom:0;border-left:0;border-right:0;width:100%;transition:transform .16s}.item-button:hover{transform:translate(4px)}.click-hint{letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-family:Oswald,sans-serif;font-size:.68rem}.timeline-card{gap:14px}.timeline-filters{flex-wrap:wrap;gap:8px;display:flex}.timeline-filter{border:2px solid var(--line);letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;background:0 0;padding:6px 14px;font-family:Oswald,sans-serif;font-size:.76rem;transition:background-color .17s,transform .17s}.timeline-filter:hover{transform:translateY(-1px)}.timeline-filter.is-all{border-color:#575757;box-shadow:inset 0 -3px #575757}.timeline-filter.is-experience{border-color:#a53e2bd9;box-shadow:inset 0 -3px #a53e2bd9}.timeline-filter.is-education{border-color:#2d4e75d9;box-shadow:inset 0 -3px #2d4e75d9}.timeline-filter.is-volunteering{border-color:#3d7b46d9;box-shadow:inset 0 -3px #3d7b46d9}.timeline-filter.is-active{background:var(--ink);color:#f7f5ef}.timeline-scroll{border-top:1px dashed var(--line);gap:0;max-height:485px;padding-top:12px;padding-left:0;padding-right:6px;display:grid;position:relative;overflow-y:auto}.timeline-scroll:before{content:none}.timeline-scroll::-webkit-scrollbar{width:8px}.timeline-scroll::-webkit-scrollbar-thumb{background:#a53e2ba6;border-radius:999px}.timeline-event{border-bottom:1px dashed #171717a6;grid-template-columns:24px 1fr;gap:16px;padding:0 0 14px;display:grid;position:relative}.timeline-event:before{content:"";background:#a53e2bad;width:3px;position:absolute;top:0;bottom:0;left:6px}.timeline-event+.timeline-event{padding-top:14px}.timeline-event:last-child{border-bottom:0;padding-bottom:6px}.timeline-event:last-child:before{bottom:6px}.timeline-event-clickable{cursor:pointer;transition:transform .15s,background-color .15s}.timeline-event-clickable:hover{background:#a53e2b0b;transform:translate(3px)}.timeline-dot{z-index:1;border:2px solid var(--accent);background:#f8f6f0;border-radius:50%;width:14px;height:14px;margin-top:.38rem;position:relative}.timeline-dot.is-education{border-color:#2d4e75}.timeline-dot.is-volunteering{border-color:#3d7b46}.timeline-content{gap:6px;display:grid}.timeline-headline{justify-content:space-between;align-items:center;gap:10px;display:flex}.timeline-head{flex-shrink:0;align-items:center;gap:6px;display:flex}.timeline-thumb{object-fit:cover;opacity:.95;border:1px solid #1717178c;border-radius:4px;width:24px;height:24px}.timeline-icon{color:#5b5b5b;font-family:Oswald,sans-serif;font-size:.7rem;line-height:1}.timeline-event.is-experience .timeline-icon{color:#8e3222}.timeline-event.is-education .timeline-icon{color:#1f3d5d}.timeline-event.is-volunteering .timeline-icon{color:#245a2d}.timeline-event.is-experience .timeline-thumb{border-color:#a53e2bb3}.timeline-event.is-education .timeline-thumb{border-color:#2d4e75b3}.timeline-event.is-volunteering .timeline-thumb{border-color:#3d7b46b3}.timeline-content h4{margin:0;font-size:1.05rem;line-height:1.25}.timeline-period{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0;font-family:Oswald,sans-serif;font-size:.74rem}.projects-card{gap:10px}.projects-card-header{justify-content:space-between;align-items:center;display:flex}.view-all-link{letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);font-family:Oswald,sans-serif;font-size:.72rem;text-decoration:none;transition:opacity .15s}.view-all-link:hover{opacity:.75}.blog-card{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.blog-card-header{justify-content:space-between;align-items:center;display:flex}.projects-scroll{max-height:485px;padding-top:8px;overflow:hidden auto}.projects-scroll .item{gap:8px;padding-top:14px;padding-bottom:10px}.projects-scroll .item:first-child{border-top:0;padding-top:2px}.projects-scroll .item-button{transform:none}.projects-scroll .item-button:hover{background:#a53e2b0a;transform:none}.projects-scroll::-webkit-scrollbar{width:8px}.projects-scroll::-webkit-scrollbar-thumb{background:#2d4e7599;border-radius:999px}.project-badges{flex-wrap:wrap;gap:6px;display:flex}.project-badge{border:1px solid var(--line);letter-spacing:1.1px;text-transform:uppercase;padding:1px 5px;font-family:Oswald,sans-serif;font-size:.56rem}.project-badge.is-company{color:#1f3d5d;border-color:#2d4e75d9}.project-badge.is-personal{color:#245a2d;border-color:#3d7b46e6}.project-badge.is-nda{color:#8e3222;border-color:#a53e2be6}.project-badge.is-open{color:#444;border-color:#535353cc}.timeline-open,.timeline-tag{letter-spacing:1.3px;text-transform:uppercase;width:fit-content;font-family:Oswald,sans-serif;font-size:.7rem}.timeline-open{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.timeline-open:hover{text-underline-offset:2px;text-decoration:underline}.timeline-tag{color:var(--muted)}.modal-overlay{z-index:20;background:#08080885;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{border:2px solid var(--line);background:#f7f5ef;width:min(760px,100%);max-height:min(86vh,900px);overflow:auto;box-shadow:0 18px 45px #00000038}.contact-modal{width:min(640px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.modal-close{border:1px solid var(--line);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:0 0;padding:6px 10px;font-family:Oswald,sans-serif;font-size:.72rem}.modal-content{gap:16px;padding:24px;display:grid}.modal-content h2{letter-spacing:-.02em;margin:0;font-size:clamp(2.15rem,4vw,3.2rem);line-height:1.08}.modal-title-block{border-bottom:1px solid #17171759;gap:8px;padding-bottom:12px;display:grid}.modal-copy{gap:12px;display:grid}.modal-section{gap:4px;display:grid}.modal-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin:0;font-family:Oswald,sans-serif;font-size:.72rem}.modal-value{margin:0;font-size:1.18rem}.modal-bullet{padding-left:16px;position:relative}.modal-bullet:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.8em;left:0}.modal-list{gap:8px;display:grid}.modal-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.theme-link{border-bottom:1px solid var(--line);width:fit-content;color:var(--ink);letter-spacing:1px;text-transform:uppercase;font-family:Oswald,sans-serif;font-size:.76rem;text-decoration:none}.contact-card{background:linear-gradient(160deg,#f6f4ec 0%,#efece2 100%)}.contact-primary{color:var(--ink);word-break:break-word;font-size:clamp(1rem,1.4vw,1.35rem);line-height:1.2;text-decoration:none}.hero-message-button{color:var(--ink);background:#f7f5eff0;margin-top:1rem}.hero-message-button:hover{background:#fff}.contact-primary:hover{text-decoration:underline;text-decoration-thickness:1px}.contact-links{flex-wrap:wrap;gap:10px;display:flex}.contact-form{gap:14px}.field-wrap{gap:6px;display:grid}.field-input{color:var(--ink);background:#fbfaf4;border:1px solid #171717b3;padding:10px 12px;font-family:Libre Baskerville,serif;font-size:.95rem}.field-textarea{resize:vertical;min-height:140px}.field-input:focus{outline-offset:1px;outline:2px solid #a53e2b61}.feedback-error{color:#8c1f1f}.feedback-success{color:#205f35}.skills{line-height:1.8}.skills-card{background:radial-gradient(circle at 12% 10%,#a53e2b1a 0%,#a53e2b00 38%),linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.skill-ribbon{border-top:1px dashed #171717a6;border-bottom:1px dashed #171717a6;flex-wrap:wrap;gap:7px;padding:8px 0;display:flex}.skill-visual{object-fit:cover;background:#fff;border:1px solid #1717178c;border-radius:4px;width:30px;height:30px}.skill-columns{gap:10px;display:grid}.skill-group{gap:8px;display:grid}.footer{border-top:2px solid var(--line);letter-spacing:1px;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 18px;font-family:Oswald,sans-serif;font-size:.78rem;display:flex}@keyframes pulse{0%{box-shadow:0 0 #a53e2b9e}70%{box-shadow:0 0 0 10px #a53e2b00}to{box-shadow:0 0 #a53e2b00}}@media (width<=1100px){.top-strip{grid-template-columns:1fr}.identity-block,.page-nav-links,.signal-card{border-right:0;border-bottom:1px solid var(--line)}.signal-card{border-bottom:0}}@media (width<=960px){.grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(220px,auto)}.hero,.feature{grid-column:span 2}.feature{grid-row:auto}.feature-switches{grid-template-columns:1fr}}@media (width<=640px){.grid{grid-template-columns:1fr}.hero,.feature{grid-column:auto}.cell{padding:18px}p{font-size:.97rem;line-height:1.7}.pulse-text{letter-spacing:1.2px;font-size:.72rem}.modal-overlay{padding:10px}.modal-content{padding:18px}.modal-content h2{font-size:clamp(1.55rem,9vw,2.1rem)}.timeline-scroll{max-height:420px}.timeline-headline{flex-direction:column;align-items:flex-start}}.ds-shell{flex-direction:column;width:100%;min-height:100vh;display:flex}.ds-nav{border-bottom:2px solid var(--line);background:linear-gradient(120deg,#f4f3ec 0%,#f0eee6 35%,#ebe8dc 100%);min-height:64px}.ds-nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:100%;margin:0 auto;padding:0 24px;display:flex}.ds-nav-brand{color:var(--ink);letter-spacing:1px;align-items:center;gap:12px;font-family:Oswald,sans-serif;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.ds-nav-links{gap:24px;display:flex}.ds-nav-links a{letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);font-family:Oswald,sans-serif;font-size:.78rem;text-decoration:none;transition:color .15s}.ds-nav-links a:hover{color:var(--accent)}.ds-grid{flex-direction:column;flex:1;gap:24px;width:100%;max-width:1200px;margin:0 auto;padding:32px 24px;display:flex}.ds-card{background:var(--panel);border:2px solid var(--line);border-radius:4px;flex-direction:column;gap:12px;padding:28px;display:flex}.ds-w-12{width:100%}.ds-eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:0;font-family:Oswald,sans-serif;font-size:.68rem}.ds-muted{color:var(--muted);max-width:64ch;font-size:.9rem;line-height:1.75}.ds-muted-small{color:var(--muted);font-size:.82rem}.ds-link-row{flex-wrap:wrap;gap:12px;display:flex}.ds-action{border:1px solid var(--line);background:var(--ink);color:#f9f8f4;letter-spacing:1.3px;text-transform:uppercase;cursor:pointer;padding:9px 16px;font-family:Oswald,sans-serif;font-size:.78rem;text-decoration:none;transition:background-color .15s;display:inline-block}.ds-action:hover{background:#2a2a2a}.ds-action-secondary{color:var(--ink);background:0 0}.ds-action-secondary:hover{background:#17171714}.ds-filter-bar{flex-wrap:wrap;gap:8px;display:flex}.ds-filter-btn{border:2px solid var(--line);letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;background:0 0;padding:6px 14px;font-family:Oswald,sans-serif;font-size:.76rem;transition:background-color .17s,transform .17s}.ds-filter-btn:hover{transform:translateY(-1px)}.ds-filter-btn.is-active{background:var(--ink);color:#f7f5ef}.ds-project-gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.ds-project-tile{border:1px solid var(--line);background:#faf9f4;border-radius:4px;flex-direction:column;gap:10px;padding:20px;transition:transform .15s,box-shadow .15s;display:flex}.ds-project-tile:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.ds-project-thumb{border:1px solid var(--line);border-radius:4px;width:100%;max-height:180px;overflow:hidden}.ds-project-thumb img{object-fit:cover;width:100%;height:100%;display:block}.ds-project-description{color:var(--muted);max-width:60ch;font-size:.9rem;line-height:1.65}.ds-chip-row{flex-wrap:wrap;gap:6px;display:flex}.ds-chip{letter-spacing:.8px;text-transform:uppercase;background:#ffffffc7;border:1px solid #171717b8;padding:3px 7px;font-family:Oswald,sans-serif;font-size:.68rem}.ds-chip-project{color:#1f3d5d;border-color:#2d4e7599}.ds-chip-tag{color:#8e3222;border-color:#a53e2b80}.ds-project-actions{align-items:center;gap:10px;margin-top:auto;padding-top:8px;display:flex}.ds-blog-list{flex-direction:column;gap:16px;display:flex}.ds-blog-card{border:1px solid var(--line);background:#faf9f4;border-radius:4px;transition:transform .15s,box-shadow .15s;overflow:hidden}.ds-blog-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.ds-blog-link{color:inherit;text-decoration:none;display:block}.ds-blog-cover{width:100%;max-height:240px;overflow:hidden}.ds-blog-cover img{object-fit:cover;width:100%;height:100%;display:block}.ds-blog-content{flex-direction:column;gap:10px;padding:20px;display:flex}.ds-blog-content h2{margin:0;font-size:1.35rem;line-height:1.3}.ds-blog-post{gap:24px}.ds-blog-post-cover{border:1px solid var(--line);border-radius:4px;width:100%;max-height:400px;overflow:hidden}.ds-blog-post-cover img{object-fit:cover;width:100%;height:100%;display:block}.ds-blog-post-header{border-bottom:1px solid #17171759;flex-direction:column;gap:12px;padding-bottom:16px;display:flex}.ds-blog-post-header h1{margin:0;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.15}.ds-blog-post-content{flex-direction:column;gap:16px;display:flex}.ds-blog-post-content p{max-width:72ch;font-size:1.05rem;line-height:1.85}.ds-blog-post-footer{border-top:1px solid #17171759;gap:12px;padding-top:20px;display:flex}.ds-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.ds-form{flex-direction:column;gap:18px;display:flex}.ds-field{flex-direction:column;gap:6px;display:flex}.ds-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);font-family:Oswald,sans-serif;font-size:.72rem}.ds-input{color:var(--ink);background:#fbfaf4;border:1px solid #171717b3;padding:10px 12px;font-family:Libre Baskerville,serif;font-size:.95rem}.ds-input:focus{outline-offset:1px;outline:2px solid #a53e2b61}.ds-textarea{resize:vertical;min-height:200px}.muted-small{color:var(--muted);font-size:.82rem}.filter-scroll{flex-wrap:wrap;gap:8px;display:flex}.filter-pill{border:2px solid var(--line);letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;background:0 0;padding:6px 14px;font-family:Oswald,sans-serif;font-size:.76rem;transition:background-color .17s,transform .17s}.filter-pill:hover{transform:translateY(-1px)}.filter-pill.is-active{background:var(--ink);color:#f7f5ef}.stat-block{flex-direction:column;align-items:center;gap:4px;display:flex}.stat-number{color:var(--accent);font-family:Oswald,sans-serif;font-size:2rem;font-weight:600;line-height:1}.stat-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-family:Oswald,sans-serif;font-size:.68rem}.theme-button-outline{color:var(--ink);border:1px solid var(--line);background:0 0}.theme-button-outline:hover{background:#17171714}.project-hero{background:linear-gradient(135deg,#2d4e75 0%,#1a3a5c 50%,#0f2744 100%);grid-column:span 2;justify-content:flex-end;min-height:280px;position:relative}.project-hero-overlay{background:linear-gradient(18deg,#05050599 0%,#0505054d 100%);position:absolute;inset:0}.project-hero-text{color:#fff;max-width:70ch;position:relative}.project-hero-text h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.project-hero-text .sub{letter-spacing:2.2px;color:#c8c0b4;margin:.85rem 0 0;font-family:Oswald,sans-serif;font-size:.8rem}.project-stats{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%);grid-template-columns:repeat(4,1fr);align-items:center;gap:16px;display:grid}.project-filters{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.project-tile{cursor:pointer;text-align:left;border:2px solid var(--line);z-index:0;transform-origin:50%;background:#faf9f4;gap:10px;transition:background-color .15s,transform .18s,box-shadow .18s;position:relative;transform:scale(1)}.project-tile:hover{z-index:1;background:#f5f3eb;transform:scale(1.015);box-shadow:0 14px 28px #11111114}.project-tile.is-featured{background:linear-gradient(160deg,#f8f7f1 0%,#f2efe5 100%);grid-row:span 2}.tile-screenshot{border:1px solid var(--line);background:#0000000a;border-radius:4px;width:100%;overflow:hidden}.tile-screenshot img{width:100%;height:auto;display:block}.project-tile h3{letter-spacing:0;text-transform:none;font-family:Libre Baskerville,serif;font-size:1.05rem}.tile-description{color:var(--muted);max-width:60ch;font-size:.9rem;line-height:1.65}.tile-badges{gap:6px;margin-top:auto;display:flex}.project-cta{text-align:center;background:linear-gradient(160deg,#f6f4ec 0%,#efece2 100%);align-items:center}.blog-hero{background:linear-gradient(135deg,#3d7b46 0%,#2a5c34 50%,#1a3d22 100%);grid-column:span 2;justify-content:flex-end;min-height:280px;position:relative}.blog-hero-overlay{background:linear-gradient(18deg,#05050599 0%,#0505054d 100%);position:absolute;inset:0}.blog-hero-text{color:#fff;max-width:70ch;position:relative}.blog-hero-text h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.blog-hero-text .sub{letter-spacing:2.2px;color:#c8c0b4;margin:.85rem 0 0;font-family:Oswald,sans-serif;font-size:.8rem}.blog-actions{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%);grid-template-columns:1fr 1fr auto;align-items:center;gap:16px;display:grid}.blog-tags{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.blog-loading,.blog-empty{text-align:center;justify-content:center;align-items:center;min-height:200px}.blog-featured{color:inherit;background:linear-gradient(160deg,#f8f7f1 0%,#f2efe5 100%);flex-direction:row;grid-column:span 2;gap:0;padding:0;text-decoration:none;transition:background-color .15s;display:flex}.blog-featured:hover{background:#f0ede2}.featured-cover{border-right:1px solid var(--line);width:45%;min-height:280px;overflow:hidden}.featured-cover img{object-fit:cover;width:100%;height:100%;display:block}.featured-content{flex-direction:column;flex:1;gap:12px;padding:28px;display:flex}.featured-content h2{margin:0;font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.2}.blog-item{color:inherit;background:#faf9f4;text-decoration:none;transition:background-color .15s,transform .15s}.blog-item:hover{background:#f5f3eb;transform:translateY(-2px)}.blog-item h3{letter-spacing:0;text-transform:none;font-family:Libre Baskerville,serif;font-size:1.05rem}.blog-cta{text-align:center;background:linear-gradient(160deg,#f6f4ec 0%,#efece2 100%);align-items:center}.post-header{background:linear-gradient(160deg,#f8f7f1 0%,#f2efe5 100%);grid-column:span 2;gap:16px}.post-header h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.post-cover{max-height:400px;padding:0;overflow:hidden}.post-cover img{object-fit:cover;width:100%;height:100%;display:block}.post-content{background:#faf9f4;grid-column:span 2}.post-content p{max-width:72ch;font-size:1.05rem;line-height:1.85}.post-footer{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%);align-items:center;gap:12px;display:flex}.editor-header{background:linear-gradient(160deg,#f8f7f1 0%,#f2efe5 100%);grid-column:span 2}.editor-header h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.editor-form{background:#faf9f4;flex-direction:column;grid-column:span 2;gap:18px;display:flex}.editor-actions{justify-content:flex-end;gap:12px;display:flex}.contact-hero{background:linear-gradient(135deg,#8e3222 0%,#6b2518 50%,#4a1a10 100%);grid-column:span 2;justify-content:flex-end;min-height:280px;position:relative}.contact-hero-overlay{background:linear-gradient(18deg,#05050599 0%,#0505054d 100%);position:absolute;inset:0}.contact-hero-text{color:#fff;max-width:70ch;position:relative}.contact-hero-text h1{margin:0;font-size:clamp(1.8rem,4.2vw,3rem);line-height:1.15}.contact-hero-text .sub{letter-spacing:2.2px;color:#c8c0b4;margin:.85rem 0 0;font-family:Oswald,sans-serif;font-size:.8rem}.contact-info{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.contact-links-cell{background:linear-gradient(160deg,#f8f7f1 0%,#f2efe5 100%)}.contact-links-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.contact-link-card{border:1px solid var(--line);color:var(--ink);letter-spacing:1.2px;text-transform:uppercase;justify-content:space-between;align-items:center;padding:12px 16px;font-family:Oswald,sans-serif;font-size:.78rem;text-decoration:none;transition:background-color .15s,transform .15s;display:flex}.contact-link-card:hover{background:var(--ink);color:#f9f8f4;transform:translate(3px)}.link-arrow{transition:transform .15s}.contact-link-card:hover .link-arrow{transform:translate(4px)}.contact-form-cell{background:#faf9f4;grid-column:span 2}.contact-form{flex-direction:column;gap:16px;max-width:600px;display:flex}.contact-cta{text-align:center;background:linear-gradient(160deg,#f6f4ec 0%,#efece2 100%);align-items:center}.not-found-hero{background:linear-gradient(135deg,#575757 0%,#3a3a3a 50%,#2a2a2a 100%);grid-column:span 2;justify-content:center;align-items:center;min-height:340px;position:relative}.not-found-overlay{background:linear-gradient(18deg,#05050580 0%,#05050533 100%);position:absolute;inset:0}.not-found-text{color:#fff;text-align:center;max-width:70ch;position:relative}.not-found-code{color:var(--accent);opacity:.6;margin:0;font-family:Oswald,sans-serif;font-size:6rem;font-weight:600;line-height:1}.not-found-text h1{margin:.5rem 0;font-size:clamp(1.6rem,3.5vw,2.5rem);line-height:1.2}.not-found-text .muted{color:#c8c0b4}.not-found-links{background:linear-gradient(160deg,#f7f5ef 0%,#f0ede2 100%)}.not-found-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.not-found-card{border:2px solid var(--line);color:var(--ink);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;text-decoration:none;transition:background-color .15s,transform .15s;display:flex}.not-found-card:hover{background:var(--ink);color:#f9f8f4;transform:translateY(-3px)}.not-found-card-title{letter-spacing:1.5px;text-transform:uppercase;font-family:Oswald,sans-serif;font-size:.85rem;font-weight:600}.not-found-card-desc{color:var(--muted);font-size:.78rem}.not-found-card:hover .not-found-card-desc{color:#b0a898}@media (width<=1100px){.project-hero,.blog-hero,.contact-hero,.not-found-hero{grid-column:span 3}.blog-featured{flex-direction:column;grid-column:span 3}.featured-cover{border-right:none;border-bottom:1px solid var(--line);width:100%;min-height:200px}.post-header,.post-content,.editor-header,.editor-form,.contact-form-cell{grid-column:span 3}.project-stats,.not-found-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=960px){.grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(220px,auto)}.hero,.feature{grid-column:span 2}.feature{grid-row:auto}.feature-switches{grid-template-columns:1fr}.project-hero,.blog-hero,.contact-hero,.not-found-hero,.blog-featured,.post-header,.post-content,.editor-header,.editor-form,.contact-form-cell{grid-column:span 2}.not-found-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid{grid-template-columns:1fr}.hero,.feature{grid-column:auto}.cell{padding:18px}p{font-size:.97rem;line-height:1.7}.pulse-text{letter-spacing:1.2px;font-size:.72rem}.modal-overlay{padding:10px}.modal-content{padding:18px}.modal-content h2{font-size:clamp(1.55rem,9vw,2.1rem)}.timeline-scroll{max-height:420px}.timeline-headline{flex-direction:column;align-items:flex-start}.project-hero,.blog-hero,.contact-hero,.not-found-hero{grid-column:auto;min-height:240px}.blog-featured{flex-direction:column;grid-column:auto}.featured-cover{border-right:none;border-bottom:1px solid var(--line);width:100%;min-height:180px}.post-header,.post-content,.editor-header,.editor-form,.contact-form-cell{grid-column:auto}.project-stats{grid-template-columns:repeat(2,1fr)}.not-found-grid,.blog-actions,.contact-links-grid{grid-template-columns:1fr 1fr}}
