@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/kanit-latin-300-normal-Dvhd4GiE.woff2)format("woff2"),url(/assets/kanit-latin-300-normal-BWYbi1UB.woff)format("woff")}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kanit-latin-400-normal-BUlsQXH3.woff2)format("woff2"),url(/assets/kanit-latin-400-normal-HVZWrfev.woff)format("woff")}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/kanit-latin-500-normal-CX_4XcKi.woff2)format("woff2"),url(/assets/kanit-latin-500-normal-qBha86O4.woff)format("woff")}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/kanit-latin-900-normal-dN0P3GyR.woff2)format("woff2"),url(/assets/kanit-latin-900-normal-DeJbwkCX.woff)format("woff")}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Kanit,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--type-scale:.9;color:#d7e2ea;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#0c0c0c;--silver:#d7e2ea;background:#0c0c0c;font-family:Kanit,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:28px}html,body,#root,main{background:#0c0c0c}body{min-width:320px}main{overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{color:#fff;background:#9625ab}:focus-visible{outline-offset:6px;outline:3px solid #d79bf2}.skip-link{z-index:100;color:#0c0c0c;background:#fff;border-radius:50px;padding:12px 24px;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:none}.hero-heading{background:linear-gradient(#646973 0%,#bbccd7 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero{flex-direction:column;height:100svh;min-height:680px;max-height:1200px;display:flex;position:relative;overflow-x:clip}.nav-wrap{z-index:20;padding:30px 40px 0;position:relative}nav a{text-transform:uppercase;font-size:max(10px, calc(clamp(14px, 1.65vw, 22.4px) * var(--type-scale)));letter-spacing:.08em;padding:6px 0;font-weight:500;transition:opacity .2s}nav a:hover{opacity:.7}.hero-title-wrap{width:100%;margin-top:6px;padding-inline:2.4vw;overflow:hidden}.hero-title{width:100%;font-size:max(10px, calc(14.8vw * var(--type-scale)));text-transform:uppercase;letter-spacing:-.055em;white-space:nowrap;text-align:center;font-weight:900;line-height:1}.portrait-position{z-index:10;width:min(68vw,84svh,860px);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero-portrait{width:100%;height:auto}.magnet{will-change:transform}.hero-bottom{z-index:15;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:auto;padding:0 40px 40px;display:flex;position:relative}.hero-description{max-width:300px;font-size:max(10px, calc(clamp(16px, 1.45vw, 24px) * var(--type-scale)));text-transform:uppercase;letter-spacing:.025em;color:#aab2c4;text-shadow:0 2px 16px #000;font-weight:500;line-height:1.4}.hero-description strong{color:#eee4fa;font-weight:500;display:block}.contact-button,.github-button{text-transform:uppercase;letter-spacing:.14em;min-height:52px;font-weight:500;font-size:max(10px, calc(14px * var(--type-scale)));white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:14px;transition:transform .25s,background-color .25s,box-shadow .25s;display:inline-flex}.contact-button{color:#fff;-webkit-backdrop-filter:blur(12px)saturate(140%);background:linear-gradient(145deg,#f5c6ff24,#0000 48%),linear-gradient(120deg,#65276dc9,#851d8bc9 45%,#513278cc);padding:17px 42px;box-shadow:0 8px 28px #350c4855,inset 0 1px #f0bbff33,inset 0 -1px #200d3444}.contact-button:hover{transform:translateY(-3px);box-shadow:0 6px 30px #9c1bae55,inset 4px 4px 12px #7721b1}.github-button{background:linear-gradient(140deg,#eedaff12,#c1a6e605);border:1px solid #d7c7ee38;padding:13px 26px;box-shadow:inset 0 1px #ffffff0b}.github-button:hover{background:#d7e2ea1a;transform:translateY(-2px)}.scroll-cue{font-size:max(10px, calc(11px * var(--type-scale)));text-transform:uppercase;letter-spacing:.16em;opacity:.55;align-items:center;gap:9px;display:flex;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.section-heading{text-align:center;text-transform:uppercase;font-size:max(10px, calc(clamp(64px, 12vw, 160px) * var(--type-scale)));letter-spacing:-.045em;font-weight:900;line-height:.95}.section-eyebrow{font-size:max(10px, calc(12px * var(--type-scale)));letter-spacing:.13em;text-transform:uppercase;color:#8c9399;justify-content:space-between;gap:24px;padding:0 40px 24px;font-weight:300;display:flex}.certificates{padding:150px 0 40px}.certificate-row{margin-bottom:12px;position:relative}.certificate-viewport{overscroll-behavior-x:contain;scrollbar-width:none;scroll-padding-inline:40px;overflow-x:auto}.certificate-viewport::-webkit-scrollbar{display:none}.certificate-track{gap:12px;width:max-content;padding:8px 40px;display:flex}.certificate-tile{border:2px solid var(--certificate-accent,#be79e8);background:color-mix(in srgb, var(--certificate-accent) 16%, #121018);width:420px;height:270px;box-shadow:inset 0 0 14px color-mix(in srgb, var(--certificate-accent) 20%, transparent);border-radius:19px;flex:0 0 420px;padding:4px;transition:filter .3s;overflow:hidden}.certificate-tile img{background:#f7f7f7;border-radius:12px}.certificate-tile:hover{filter:brightness(.9)}.certificate-tile img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.certificate-tile{cursor:zoom-in}.certificate-arrow,.viewer-control{cursor:pointer;border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;transition:background-color .2s,opacity .2s,color .2s;display:inline-flex}.certificate-row-controls{justify-content:space-between;align-items:center;padding-inline:40px;display:flex}.certificate-arrow{color:#a5a4ad;opacity:.48;box-shadow:none;background:0 0;border:0}.certificate-arrow:disabled{opacity:.16;cursor:default}.certificate-arrow:hover:not(:disabled),.certificate-arrow:focus-visible{color:#e4e5ea;opacity:1}.viewer-control{color:#d3d3db;background:#ffffff06;border:1px solid #d9dce426;box-shadow:inset 0 1px #ffffff08}.viewer-control:hover{background:#ffffff12}.certificate-dialog{color:#e7e1ed;overscroll-behavior:contain;background:0 0;border:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px;position:fixed;inset:0;overflow-y:auto}.certificate-dialog[open]{place-items:center;display:grid}.certificate-dialog::backdrop{-webkit-backdrop-filter:blur(14px);background:#090711bd}.certificate-lightbox{border:1px solid color-mix(in srgb, var(--certificate-accent) 45%, transparent);background:radial-gradient(ellipse at 0 0, color-mix(in srgb, var(--certificate-accent) 17%, transparent), transparent 65%), linear-gradient(130deg, #292530f3, #131219fa 60%);-webkit-backdrop-filter:blur(24px);border-radius:30px;grid-template-rows:44px minmax(0,1fr) 64px;gap:16px;width:min(1100px,100%);height:min(820px,100dvh - 48px);padding:20px;display:grid;overflow:hidden;box-shadow:0 30px 100px #0009,inset 0 1px #ffffff20}.certificate-dialog[open] .certificate-lightbox{animation:.25s ease-out both certificate-pop}@keyframes certificate-pop{0%{opacity:0;transform:translateY(12px)scale(.965)}to{opacity:1;transform:none}}.certificate-viewer-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;display:flex}.certificate-viewer-header>span{font-size:max(10px, calc(12px * var(--type-scale)));text-transform:uppercase;letter-spacing:.13em;color:#ccbddd}.certificate-viewer-image{background:#09090f33;border-radius:12px;place-items:center;min-width:0;min-height:0;padding:8px;display:grid;overflow:hidden}.certificate-viewer-image img{-o-object-fit:contain;object-fit:contain;width:100%;min-width:0;height:100%;min-height:0}.certificate-viewer-footer{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:16px;min-height:0;display:grid}.certificate-viewer-footer h2{scrollbar-width:none;text-align:center;min-width:0;max-height:100%;font-size:max(10px, calc(17px * var(--type-scale)));margin:0;font-weight:400;line-height:1.35;overflow-y:auto}.about-section{min-height:900px;place-items:center;min-height:max(900px,100svh);padding:160px 40px;display:grid;position:relative}.about-content{z-index:2;flex-direction:column;align-items:center;gap:64px;display:flex;position:relative}.about-content>:last-child{margin-top:20px}.about-paragraph{text-align:center;max-width:560px;font-weight:500;line-height:1.7;font-size:max(10px, calc(clamp(16px, 2vw, 21.6px) * var(--type-scale)))}.animated-word{white-space:nowrap;display:inline-block}.character{display:inline-block;position:relative}.character-placeholder{opacity:0}.character-ink{position:absolute;inset:0}.about-decoration{pointer-events:none;position:absolute}.about-decoration.gear{width:210px;top:4%;left:4%;transform:rotate(-14deg)}.about-decoration.pcb{width:210px;top:4%;right:4%;transform:rotate(12deg)}.about-decoration.arm{width:180px;bottom:8%;left:10%;transform:rotate(-12deg)}.about-decoration.chip{width:220px;bottom:8%;right:10%;transform:rotate(10deg)}.skills-section{isolation:isolate;color:#20202c;background:radial-gradient(at 10% 24%,#cbd1e22e,#0000 46%),radial-gradient(at 95% 60%,#ddd1df22,#0000 45%),radial-gradient(at 5% 95%,#c9dce52e,#0000 40%),#f8f8fb;border-radius:60px 60px 0 0;padding:120px 40px 180px;position:relative}.skills-section:before{content:"";z-index:-1;pointer-events:none;border-radius:inherit;background:linear-gradient(118deg,#0000 15%,#fff5 15.1%,#ffffff0a 40%,#0000 40.1%),linear-gradient(118deg,#0000 63%,#ffffff38 63.1%,#0000 85%);position:absolute;inset:0}.skills-list{background:linear-gradient(135deg,#fff6,#ffffff24);border:1px solid #ffffffa8;border-radius:32px;max-width:1084px;margin:108px auto 0;padding:0 30px;position:relative;box-shadow:0 24px 80px #51436509,inset 0 1px #ffffffb3}.skills-list>.skill-row:first-child{border-top-color:#0000}.skill-row{border-top:1px solid #3730471a;grid-template-columns:210px 1fr;align-items:center;gap:65px;padding:45px 0;display:grid;position:relative}.skill-number{font-size:max(10px, calc(clamp(80px,10vw,140px) * var(--type-scale)));letter-spacing:-.065em;font-weight:900;line-height:1}.skill-row h3{font-size:max(10px, calc(clamp(20px,2.2vw,33.6px) * var(--type-scale)));text-transform:uppercase;color:var(--skill-accent);margin-bottom:14px;font-weight:500;line-height:1.2}.skill-row p{max-width:672px;font-size:max(10px, calc(clamp(16px,1.6vw,20px) * var(--type-scale)));color:#626262;font-weight:300;line-height:1.65}.projects-section{z-index:10;background:#0c0c0c;border-radius:60px 60px 0 0;margin-top:-56px;padding:120px 40px 50px;position:relative}.projects-intro{max-width:1500px;font-size:max(10px, calc(12px * var(--type-scale)));text-transform:uppercase;letter-spacing:.13em;color:#939ba2;justify-content:space-between;margin:65px auto 26px;display:flex}.projects-stack{max-width:1500px;margin:auto;padding-bottom:8vh;position:relative}.project-slot{top:var(--pin-top,calc(24px + var(--index) * 16px));min-height:95svh;z-index:var(--index);padding-bottom:8vh;position:sticky}.project-slot:has(:focus-visible){z-index:20}.project-card{background:radial-gradient(ellipse at 0% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%), radial-gradient(ellipse at 100% 100%, #79559b18, transparent 65%), linear-gradient(130deg, #292530f3, #131219fa 60%);-webkit-backdrop-filter:blur(24px)saturate(125%);transform-origin:top;border:1px solid #d9cbe32d;border-radius:54px;flex-direction:column;height:clamp(470px,100svh - 140px,780px);padding:25px;display:flex;box-shadow:0 -10px 40px #00000030,inset 0 1px #ffffff12,inset 0 -1px #ffffff04}.project-top{flex-shrink:0;align-items:center;gap:28px;margin-bottom:22px;display:flex}.project-number{font-size:max(10px, calc(clamp(64px,7vw,112px) * var(--type-scale)));letter-spacing:-.065em;font-weight:900;line-height:.95}.project-title-block{flex:1}.project-category{font-size:max(10px, calc(12px * var(--type-scale)));text-transform:uppercase;letter-spacing:.09em;color:#a3aab1;margin-bottom:5px}.project-title-block h3{font-size:max(10px, calc(clamp(27px,3.3vw,52px) * var(--type-scale)));text-transform:uppercase;letter-spacing:-.025em;font-weight:500;line-height:1.1}.project-body{flex:1;grid-template-columns:40fr 60fr;gap:15px;min-height:0;display:grid}.project-copy{grid-template-rows:.85fr 1.15fr;gap:12px;min-height:0;display:grid}.project-note{background:radial-gradient(ellipse at 0% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 95%), #ffffff03;border-radius:32px;flex-direction:column;justify-content:center;padding:19px 23px;display:flex;box-shadow:inset 0 1px #ffffff0a}.project-note.technology{background:radial-gradient(ellipse at 100% 100%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 100%), #0c0b1226}.note-label{font-size:max(10px, calc(10px * var(--type-scale)));letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:9px}.project-note p{font-size:max(10px, calc(clamp(14px,1.16vw,17px) * var(--type-scale)));font-weight:500;line-height:1.5}.project-note.technology p{color:#c1cbd2;font-weight:300}.project-tags{flex-wrap:wrap;gap:6px;margin-top:13px;display:flex}.project-tags span{font-size:max(10px, calc(10px * var(--type-scale)));color:#aab4bc;border:1px solid #ffffff18;border-radius:100px;padding:4px 10px;font-weight:300}.project-image{background:#17191b;border-radius:34px;min-height:0;overflow:hidden}.project-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.project-image.contain img{-o-object-fit:contain;object-fit:contain}.featured-section{background:#0c0c0c;height:420svh;position:relative}.film-stage{height:100svh;position:sticky;top:0;overflow:hidden}.film-header{z-index:4;justify-content:space-between;align-items:center;gap:20px;display:flex;position:absolute;top:34px;left:40px;right:40px}.film-header h2,.film-header>span{font-size:max(10px, calc(12px * var(--type-scale)));letter-spacing:.14em;text-transform:uppercase;font-weight:400}.film-header>span{color:#a5a6a7}.film-media{--film-max-width:177.778svh;width:100%;height:100%;position:relative}.film-frame{width:min(100%, var(--film-max-width));aspect-ratio:16/9;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.film-poster,.film-canvas{-o-object-fit:contain;object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.film-canvas{opacity:0}.film-canvas[data-ready=true]{opacity:1}.film-grade{pointer-events:none;background:linear-gradient(#0c0c0c,#0000 13% 88%,#0c0c0c);position:absolute;inset:0}.film-grain{opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.story-beat{z-index:3;color:#efebe6;-webkit-backdrop-filter:blur(12px);background:linear-gradient(135deg,#4b3a30e6,#202021f0 48%,#111213f5);border:1px solid #cb91604f;border-radius:20px;width:clamp(270px,25vw,370px);padding:24px;position:absolute;box-shadow:0 16px 45px #0003,inset 0 1px #e3ba951c}.beat-first{top:16%;left:3%}.beat-second{top:21%;right:3%}.beat-third{bottom:13%;left:4%}.beat-final{bottom:15%;right:3%}.film-label{text-transform:uppercase;font-size:max(10px, calc(10px * var(--type-scale)));letter-spacing:.13em;color:#d4a37b;margin-bottom:16px;display:block}.story-beat h3{font-weight:500;font-size:max(10px, calc(clamp(26px,2.65vw,40px) * var(--type-scale)));letter-spacing:-.02em;margin-bottom:18px;line-height:1.12}.story-beat p{font-size:max(10px, calc(clamp(15px,1.25vw,18px) * var(--type-scale)));color:#d2ceca;font-weight:400;line-height:1.6}.story-beat .github-button{font-size:max(10px, calc(12px * var(--type-scale)));background:linear-gradient(135deg,#d2936222,#aaaaaa08);border-color:#cb916050;margin-top:24px;padding:12px 20px}.film-bottom{z-index:4;font-size:max(10px, calc(11px * var(--type-scale)));text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:30px;display:flex;position:absolute;bottom:30px;left:40px;right:40px}.film-bottom>span:first-child{align-items:center;gap:10px;display:flex}.film-progress{background:#d7e2ea33;flex:1;height:1px}.film-progress>div{transform-origin:0;background:#d7e2ea;width:100%;height:100%}.film-fallback{height:auto}.film-fallback .film-stage{height:auto;min-height:0;position:relative;overflow:visible}.film-fallback .film-header{padding:40px;position:static}.film-fallback .film-media{aspect-ratio:16/9;height:auto}.film-fallback .film-frame{width:100%}.film-fallback .story-beats{grid-template-columns:1fr 1fr;gap:35px;max-width:1100px;margin:30px auto 0;padding:30px;display:grid}.film-fallback .story-beat{width:auto;padding:24px;position:static}.footer{text-align:center;border-top:1px solid #ffffff14;padding:120px 40px 25px}.footer-kicker{font-size:max(10px, calc(14px * var(--type-scale)));text-transform:uppercase;letter-spacing:.13em;margin-bottom:25px;font-weight:300}.footer h2{font-size:max(10px, calc(clamp(60px,13vw,190px) * var(--type-scale)));text-transform:uppercase;letter-spacing:-.05em;font-weight:900;line-height:1}.email-link{font-size:max(10px, calc(clamp(16px,2vw,26px) * var(--type-scale)));border-bottom:1px solid #fff6;align-items:center;gap:18px;margin-top:38px;padding-bottom:7px;font-weight:300;transition:color .2s;display:inline-flex}.email-link:hover{color:#d79bf2}.footer-bottom{font-size:max(10px, calc(12px * var(--type-scale)));color:#899096;border-top:1px solid #ffffff20;justify-content:space-between;align-items:center;gap:20px;margin-top:120px;padding-top:24px;display:flex}.footer-bottom a{align-items:center;gap:8px;display:flex}.footer-socials{gap:30px;display:flex}.hero,.certificates,.about-section,.footer{isolation:isolate;position:relative}.projects-section{isolation:isolate}.projects-section>.circuit-backdrop{height:110svh;bottom:auto}.circuit-backdrop{pointer-events:none;z-index:-1;background:radial-gradient(at 0 45%,#3c699a0b,#0000 45%),radial-gradient(at 100% 65%,#7654960a,#0000 45%);position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 16% 85%,#0000);mask-image:linear-gradient(#0000,#000 16% 85%,#0000)}.circuit-backdrop svg{filter:blur(.25px);width:100%;height:100%}.circuit-backdrop:after{content:"";pointer-events:none;-webkit-backdrop-filter:blur(1.4px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(#0000 22%,#0005 58%,#000 100%);mask-image:radial-gradient(#0000 22%,#0005 58%,#000 100%)}.circuit-track{stroke:#6b92c1;stroke-opacity:.17;stroke-width:1.2px;vector-effect:non-scaling-stroke}.circuit-pulse{stroke:#92c6ed;stroke-opacity:.52;stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 94;vector-effect:non-scaling-stroke;animation:circuit-flow var(--trace-duration) linear infinite;animation-delay:var(--trace-delay);animation-play-state:paused}.circuit-glow{stroke-width:6px;stroke-opacity:.11}.circuit-energized{stroke:#a1d5fa;stroke-opacity:.46;stroke-width:1.8px;vector-effect:non-scaling-stroke}.circuit-node{stroke:#90b2d3;stroke-opacity:.32;stroke-width:1.2px;vector-effect:non-scaling-stroke}.circuit-backdrop[data-active=true] .circuit-pulse{animation-play-state:running}@keyframes circuit-flow{to{stroke-dashoffset:-100px}}.about-idle{transform-origin:50% 65%;animation:7s ease-in-out infinite paused object-float}.gear .about-idle{animation-name:gear-idle;animation-duration:18s}.pcb .about-idle{animation-duration:8s;animation-delay:-2s}.arm .about-idle{animation-duration:6s;animation-delay:-1s}.chip .about-idle{animation-duration:9s;animation-delay:-3s}.about-decoration[data-active=true] .about-idle{animation-play-state:running}@keyframes object-float{0%,to{transform:translateY(4px)rotate(-2deg)}50%{transform:translateY(-9px)rotate(2deg)}}@keyframes gear-idle{0%,to{transform:translateY(3px)rotate(-8deg)}50%{transform:translateY(-7px)rotate(8deg)}}.skill-rule{background:linear-gradient(90deg, var(--skill-accent), transparent);transform-origin:0;height:2px;position:absolute;top:-1px;left:0;right:0}.skill-number{color:#ddd9e4;position:relative}.skill-number>span{color:var(--skill-accent);position:absolute;inset:0}.skill-row p{color:#5f5a6c}.skill-row:before{content:"";background:linear-gradient(100deg, color-mix(in srgb, var(--skill-accent) 10%, transparent), transparent 85%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--skill-accent) 10%, transparent);opacity:0;pointer-events:none;border-radius:24px;transition:opacity .4s;position:absolute;inset:0 -24px}@media (hover:hover){.skill-row:hover:before{opacity:1}}@media (min-width:1800px){.about-paragraph{max-width:650px}.hero{max-height:1200px}}@media (max-width:1100px){.project-category span{display:none}.project-card{border-radius:44px;padding:20px}.project-note{border-radius:28px;padding:16px 19px}.project-note p{font-size:max(10px, calc(14px * var(--type-scale)))}.project-tags{display:none}.about-decoration.gear,.about-decoration.pcb{width:165px}.about-decoration.arm{width:145px;left:5%}.about-decoration.chip{width:170px;right:5%}}@media (min-width:1600px){.hero-title{font-size:max(10px, calc(min(14.8vw, 330px) * var(--type-scale)))}}@media (max-width:767px){.hero{min-height:650px;max-height:950px}.nav-wrap{padding:22px 24px 0}.hero-title-wrap{margin-top:24px}.hero-title{font-size:max(10px, calc(14.8vw * var(--type-scale)))}.portrait-position{width:min(116vw,78svh);top:96px;bottom:auto;transform:translate(-50%)}.hero-bottom{gap:14px;padding:0 24px 32px}.hero-description{max-width:190px;font-size:max(10px, calc(14px * var(--type-scale)))}.contact-button{font-size:max(10px, calc(12px * var(--type-scale)));gap:8px;padding:15px 23px}.scroll-cue{display:none}.section-heading{font-size:max(10px, calc(clamp(58px,14vw,105px) * var(--type-scale)))}.certificates{padding-top:90px}.section-eyebrow{font-size:max(10px, calc(10px * var(--type-scale)));padding-inline:24px}.section-eyebrow>:last-child{display:none}.certificate-tile{flex-basis:300px;width:300px;height:193px}.certificate-track{padding-inline:24px}.certificate-viewport{scroll-padding-inline:24px}.certificate-row-controls{padding-inline:24px}.certificate-dialog{padding:12px}.certificate-lightbox{border-radius:22px;grid-template-rows:44px minmax(0,1fr) 96px;gap:12px;height:min(820px,100dvh - 24px);padding:14px}.certificate-viewer-footer{gap:10px}.certificate-viewer-footer h2{font-size:max(10px, calc(14px * var(--type-scale)))}.about-section{min-height:900px;padding:185px 24px 200px}.about-content{gap:40px}.about-content>:last-child{margin-top:16px}.about-paragraph{max-width:460px;font-size:max(10px, calc(17px * var(--type-scale)));line-height:1.7}.about-decoration.gear{width:120px;top:4%;left:1%}.about-decoration.pcb{width:120px;top:4%;right:1%}.about-decoration.arm{width:105px;bottom:5%;left:4%}.about-decoration.chip{width:130px;bottom:5%;right:4%}.skills-section{border-radius:40px 40px 0 0;padding:80px 24px 110px}.skills-list{border-radius:26px;margin-top:55px;padding-inline:18px}.skill-row:before{inset-inline:-12px}.skill-row{grid-template-columns:64px 1fr;align-items:start;gap:26px;padding:30px 0}.skill-number{font-size:max(10px, calc(58px * var(--type-scale)))}.skill-row h3{font-size:max(10px, calc(20px * var(--type-scale)));margin-bottom:12px}.skill-row p{font-size:max(10px, calc(16px * var(--type-scale)))}.projects-section{border-radius:40px 40px 0 0;margin-top:-40px;padding:80px 16px 45px}.projects-intro{margin-top:45px;padding-inline:8px}.projects-stack{padding-bottom:0}.project-slot{min-height:95svh;padding-bottom:12vh}.project-card{-webkit-backdrop-filter:blur(16px);border-radius:36px;height:auto;padding:18px}.circuit-backdrop{opacity:.8}.project-top{flex-wrap:wrap;gap:13px;margin-bottom:20px}.project-number{font-size:max(10px, calc(56px * var(--type-scale)))}.project-title-block{min-width:160px}.project-title-block h3{font-size:max(10px, calc(28px * var(--type-scale)))}.project-category{font-size:max(10px, calc(10px * var(--type-scale)))}.project-top .github-button{min-height:42px;font-size:max(10px, calc(11px * var(--type-scale)));gap:9px;margin-left:auto;padding:9px 19px}.project-body{flex-direction:column;gap:12px;display:flex}.project-image{border-radius:25px;flex-shrink:0;order:-1;height:260px}.project-copy{flex-direction:column;gap:12px;display:flex}.project-note{border-radius:25px;padding:23px}.project-note p{font-size:max(10px, calc(16px * var(--type-scale)))}.project-tags{display:flex}.project-tags span,.note-label{font-size:max(10px, calc(11px * var(--type-scale)))}.film-fallback .film-header{padding:32px 24px;display:block}.film-header{display:block;top:24px;left:24px;right:24px}.film-media{--film-max-width:92.4444svh;height:52svh;position:absolute;top:10svh}.story-beat{width:auto;padding:20px;inset:auto 20px 82px}.film-bottom{font-size:max(10px, calc(10px * var(--type-scale)));gap:18px;bottom:26px;left:24px;right:24px}.film-bottom>span:first-child{max-width:170px}.film-fallback .film-media{position:relative;top:auto}.film-header h2{font-size:max(10px, calc(14px * var(--type-scale)));margin-bottom:8px}.film-header>span{font-size:max(10px, calc(11px * var(--type-scale)))}.film-fallback .story-beats{grid-template-columns:1fr;gap:16px;margin-top:15px;padding:24px}.film-fallback .story-beat{padding:24px}.film-label{font-size:max(10px, calc(11px * var(--type-scale)))}.story-beat h3{font-size:max(10px, calc(28px * var(--type-scale)))}.story-beat p{font-size:max(10px, calc(16px * var(--type-scale)))}.footer{padding:85px 24px 24px}.footer-bottom{flex-wrap:wrap;gap:22px;margin-top:80px}.footer-bottom>span{text-align:left;flex-basis:100%}}@media (max-width:390px){.hero-bottom{padding-inline:20px}.hero-description{max-width:160px;font-size:max(10px, calc(13px * var(--type-scale)))}.contact-button{padding-inline:19px}.skill-row{grid-template-columns:54px 1fr;gap:20px}.skill-row h3{font-size:max(10px, calc(19px * var(--type-scale)))}}@media (max-width:767px) and (max-height:740px){.story-beat{padding:14px 16px;bottom:72px}.story-beat h3{font-size:max(10px, calc(25px * var(--type-scale)));margin-bottom:12px}.story-beat p{font-size:max(10px, calc(15px * var(--type-scale)));line-height:1.5}.story-beat .film-label{margin-bottom:10px}.story-beat .github-button{margin-top:18px}.film-media{--film-max-width:74.6667svh;height:42svh}.film-fallback .film-media{height:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}.magnet{transform:none!important}.project-slot{height:auto;margin-bottom:35px;position:relative;top:auto}.project-card{height:auto;min-height:520px;transform:none!important}}.circuit-backdrop{contain:paint}.circuit-backdrop:after{-webkit-backdrop-filter:none;background:radial-gradient(#0000 35%,#0c0c0c30 100%)}.character-ink[data-letter]{visibility:hidden}.about-text-block{gap:1.5em;display:grid}.about-section .about-content{align-items:stretch;gap:32px;width:min(100%,760px)}.about-content .section-heading{text-align:left}.about-content>.about-panel{margin-top:0}.about-panel{-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#342c3be8,#17151df5 65%);border:1px solid #d9cbe326;border-radius:28px;padding:clamp(22px,3.5vw,44px);box-shadow:inset 0 1px #ffffff0d,0 18px 50px #0002}.about-panel .about-text-block{gap:1em}.about-panel .about-paragraph{text-align:left;max-width:none;font-weight:400;line-height:1.6}.about-panel .contact-button{margin-top:26px}.about-section>.circuit-backdrop{opacity:.3}@media (max-width:767px){.about-section .about-content{gap:24px}.about-panel{border-radius:22px;padding:22px}}.certificate-track{will-change:transform}.certificate-viewport{overflow-anchor:none}.film-surface{contain:layout paint;position:absolute;inset:0}.circuit-backdrop svg{filter:none}.project-note p{font-size:clamp(15px,1.28vw,18px);line-height:1.5}.project-category,.project-tags span{font-size:11px}@media (max-width:767px){.mobile-project-summary,.mobile-project-details>p{font-size:15px}.mobile-project-content h3{font-size:28px}.circuit-glow{display:none}.circuit-pulse{stroke-opacity:.42}}.certificates>.circuit-backdrop{opacity:.35}html[data-scrolling=true] .circuit-pulse{animation-play-state:paused!important}.circuit-backdrop{will-change:transform}@supports (animation-timeline:view()){.certificate-row{view-timeline:--certificate-row block}.certificate-track[data-native-scroll=true]{animation:1s linear both certificate-travel;animation-timeline:--certificate-row}@keyframes certificate-travel{0%{transform:translate3d(var(--certificate-from), 0, 0)}to{transform:translate3d(var(--certificate-to), 0, 0)}}}.certificate-viewer-footer h2::-webkit-scrollbar{display:none}.project-image.contain img[src*=project-06-uas-dtu],.mobile-project-image.contain img[src*=project-06-uas-dtu]{-o-object-fit:fill;object-fit:fill}html[data-returning-top=true] .about-idle{animation-play-state:paused!important}#project-1-title,#mobile-project-1{text-transform:none}@media (max-width:767px){:root{--mobile-nav-height:calc(64px + env(safe-area-inset-top,0px))}body{min-width:0}html{scroll-padding-top:calc(var(--mobile-nav-height) + 16px)}.mobile-nav{z-index:80;top:calc(env(safe-area-inset-top,0px) + 8px);left:max(12px, env(safe-area-inset-left,0px));right:max(12px, env(safe-area-inset-right,0px));-webkit-backdrop-filter:blur(14px)saturate(115%);background:linear-gradient(120deg,#302739eb,#16151cf0);border:1px solid #d7c8e51c;border-radius:20px;justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 10px 0 16px;display:flex;position:fixed;box-shadow:0 5px 18px #00000024,inset 0 1px #ffffff09}.mobile-brand{min-height:44px;font-weight:500;font-size:max(10px, calc(21px * var(--type-scale)));letter-spacing:-.035em;color:#e2dfeb;align-items:center;gap:10px;display:inline-flex}.mobile-brand>svg{color:#bd98db}.mobile-brand-label{font-size:max(10px, calc(14px * var(--type-scale)));letter-spacing:.015em;color:#ccc6d5;flex-direction:column;gap:2px;font-weight:400;line-height:1.1;display:flex}.mobile-brand-label>:last-child{color:#8e849e;font-size:max(10px, calc(10px * var(--type-scale)));letter-spacing:.13em}.mobile-icon-button{color:#d2ccd9;cursor:pointer;background:#ffffff05;border:1px solid #ffffff12;border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.mobile-icon-button:disabled{opacity:.25;cursor:default}.mobile-icon-button:active{background:#ffffff15}.mobile-menu{width:100%;max-width:none;height:100dvh;max-height:none;padding:calc(env(safe-area-inset-top,0px) + 12px) max(12px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px));color:#ded8e8;overscroll-behavior:contain;background:0 0;border:0;margin:0;position:fixed;inset:0}.mobile-menu::backdrop{-webkit-backdrop-filter:blur(18px);background:#08080ed9}.mobile-menu-panel{transform-origin:calc(100% - 28px) 28px;background:radial-gradient(at 0 0,#8852b823,#0000 70%),#18151cf5;border:1px solid #c5a3de26;border-radius:24px;padding:12px 20px 24px;box-shadow:inset 0 1px #ffffff10}.mobile-menu[open] .mobile-menu-panel{animation:.46s cubic-bezier(.18,.85,.26,1) both mobile-menu-in}.mobile-menu[open]::backdrop{animation:.3s ease-out both mobile-menu-backdrop-in}.mobile-menu[open] nav a{animation:.34s cubic-bezier(.2,.75,.2,1) both mobile-menu-link-in;animation-delay:calc(80ms + var(--menu-index) * 38ms)}.mobile-menu[open] .mobile-menu-panel>p{animation:.36s ease-out .22s both mobile-menu-link-in}.mobile-menu[open][data-state=closing] .mobile-menu-panel{animation:.22s ease-in both mobile-menu-out}.mobile-menu[open][data-state=closing]::backdrop{animation:.22s ease-in both mobile-menu-backdrop-out}.mobile-menu[open][data-state=closing] nav a,.mobile-menu[open][data-state=closing] .mobile-menu-panel>p{animation:none}@keyframes mobile-menu-in{0%{opacity:0;transform:translate(10px,-18px)scale(.91)}72%{opacity:1;transform:translateY(2px)scale(1.006)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes mobile-menu-out{to{opacity:0;transform:translate(8px,-12px)scale(.96)}}@keyframes mobile-menu-link-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translate(0,0)}}@keyframes mobile-menu-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes mobile-menu-backdrop-out{0%{opacity:1}to{opacity:0}}.mobile-menu-top{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.mobile-menu-top>span{font-size:max(10px, calc(12px * var(--type-scale)));letter-spacing:.16em;text-transform:uppercase;color:#aaa0b5}.mobile-menu nav a{min-height:68px;font-size:max(10px, calc(26px * var(--type-scale)));text-transform:none;letter-spacing:-.025em;border-top:1px solid #ffffff0c;grid-template-columns:24px 1fr 20px;align-items:center;gap:16px;font-weight:400;display:grid}.mobile-menu-number{font-size:max(10px, calc(10px * var(--type-scale)));color:#aa8cbc;letter-spacing:.05em}.mobile-menu nav svg{color:#9b88aa}.mobile-menu-panel>p{font-size:max(10px, calc(12px * var(--type-scale)));color:#978d9f;margin-top:28px}.hero{height:100svh;min-height:600px;max-height:1000px}.hero .nav-wrap{display:none}.hero-title-wrap{margin-top:calc(var(--mobile-nav-height) + 34px);padding-inline:24px;overflow:visible}.hero-title{font-size:max(10px, calc(clamp(64px, 20.5vw, 124px) * var(--type-scale)));letter-spacing:-.055em;white-space:normal;line-height:.88}.portrait-position{width:min(124vw,60svh,650px);top:clamp(196px,26svh,290px);bottom:auto}.hero-bottom{text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;gap:16px;padding:0 24px 52px}.hero-description{max-width:100%;font-size:max(10px, calc(12px * var(--type-scale)));color:#a8a1b8;letter-spacing:.12em;font-weight:400;line-height:1.45}.hero-bottom .contact-button{min-height:48px;padding:14px 32px}.scroll-cue{font-size:max(10px, calc(8px * var(--type-scale)));opacity:.55;white-space:nowrap;gap:6px;display:flex;bottom:15px}.scroll-cue svg{width:12px}.certificates{padding-top:48px;padding-bottom:12px}.certificate-tile{border-width:1px;border-radius:16px;flex-basis:268px;width:268px;height:173px}.certificate-track{gap:10px}.certificate-row{margin-bottom:6px}.certificate-dialog{padding-top:max(12px, env(safe-area-inset-top,0px));padding-bottom:max(12px, env(safe-area-inset-bottom,0px))}.certificate-lightbox{height:min(820px, calc(100dvh - max(12px, env(safe-area-inset-top,0px)) - max(12px, env(safe-area-inset-bottom,0px))))}.about-section{min-height:0;padding:126px 24px 144px}.about-content{gap:28px}.about-content .section-heading,.about-panel .about-paragraph,.about-panel{text-align:center}.about-paragraph{font-size:max(10px, calc(16px * var(--type-scale)));line-height:1.65}.about-content>:last-child{margin-top:0}.about-decoration.gear,.about-decoration.pcb{width:98px;top:2%}.about-decoration.arm{width:86px;bottom:3%}.about-decoration.chip{width:105px;bottom:3%}.mobile-skills{border-radius:32px 32px 0 0;padding:58px 20px 92px}.mobile-section-hint{text-align:center;font-size:max(10px, calc(13px * var(--type-scale)));letter-spacing:.025em;color:#7b7489;margin-top:15px;font-weight:300}.mobile-skills-list{background:#ffffff70;border:1px solid #fff;border-radius:22px;margin-top:30px;overflow:hidden;box-shadow:0 16px 50px #58496308}.mobile-skill{border-top:1px solid #73648114}.mobile-skill:first-child{border:0}.mobile-skill h3{font-weight:500}.mobile-skill button{text-align:left;width:100%;min-height:76px;font-size:max(10px, calc(18px * var(--type-scale)));color:var(--skill-accent);cursor:pointer;background:0 0;grid-template-columns:25px 1fr 18px;align-items:center;gap:12px;padding:17px 16px;line-height:1.18;display:grid}.mobile-skill button[aria-expanded=true]{background:linear-gradient(100deg, color-mix(in srgb, var(--skill-accent) 9%, transparent), transparent)}.mobile-skill-number{font-size:max(10px, calc(11px * var(--type-scale)));opacity:.65;font-weight:400}.mobile-skill p{font-size:max(10px, calc(15px * var(--type-scale)));color:#675f71;padding:0 21px 22px 53px;font-weight:300;line-height:1.6}.mobile-skill-detail{opacity:0;height:0;transition:height .22s cubic-bezier(.2,.7,.3,1),opacity .18s;overflow:hidden}.mobile-skill-detail[data-open=true]{height:var(--detail-height,auto);opacity:1}.mobile-skill-detail>div{display:flow-root}.mobile-skills-list{contain:layout style;overflow-anchor:none}.mobile-skills{overflow-anchor:none}.mobile-tap-hint{text-align:center;font-size:max(10px, calc(11px * var(--type-scale)));color:#8a8295;margin-top:17px;display:block}.mobile-projects{border-radius:32px 32px 0 0;padding:58px 16px 42px}.mobile-projects-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:24px 4px 14px;display:flex}.mobile-projects-toolbar>span{font-size:max(10px, calc(10px * var(--type-scale)));letter-spacing:.1em;text-transform:uppercase;color:#9f95ab}.mobile-projects-toolbar>div{gap:7px;display:flex}.mobile-project-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;isolation:isolate;border-radius:26px;align-items:flex-start;gap:12px;display:flex;position:relative;overflow-x:auto}.mobile-project-track::-webkit-scrollbar{display:none}.mobile-project-snap{pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always;width:100%;height:1px;position:absolute;top:0}.mobile-project-slot{perspective:1400px;flex:0 0 100%;min-width:0;position:sticky;left:0}.mobile-project-card{transform-origin:0;background:radial-gradient(ellipse at 0 0, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%), linear-gradient(130deg, #292530f3, #131219fa 60%);border:1px solid #d9cbe326;border-radius:26px;min-width:0;overflow:hidden;box-shadow:-12px 0 28px #0005,inset 0 1px #ffffff12}.mobile-project-image{aspect-ratio:1.65;background:#191a1e;border-radius:19px;margin:9px 9px 0;overflow:hidden}.mobile-project-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.mobile-project-image.contain img{-o-object-fit:contain;object-fit:contain}.mobile-project-content{padding:20px}.mobile-project-category{font-size:max(10px, calc(9px * var(--type-scale)));color:var(--accent);text-transform:uppercase;letter-spacing:.12em;justify-content:space-between;display:flex}.mobile-project-content h3{font-size:max(10px, calc(29px * var(--type-scale)));text-transform:uppercase;letter-spacing:-.025em;margin-top:8px;font-weight:500;line-height:1.08}.mobile-project-summary{font-size:max(10px, calc(14px * var(--type-scale)));color:#cbc4d2;margin-top:13px;font-weight:300;line-height:1.55}.mobile-project-details{border-block:1px solid #ffffff10;margin-top:16px}.mobile-project-details summary{cursor:pointer;min-height:44px;font-size:max(10px, calc(11px * var(--type-scale)));color:var(--accent);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;list-style:none;display:flex}.mobile-project-details summary::-webkit-details-marker{display:none}.mobile-project-details[open] summary svg{transform:rotate(45deg)}.mobile-project-details>p{font-size:max(10px, calc(14px * var(--type-scale)));color:#b3abba;font-weight:300;line-height:1.6}.mobile-project-details .project-tags{margin:12px 0 16px}.mobile-project-content .github-button{min-height:44px;font-size:max(10px, calc(10px * var(--type-scale)));gap:10px;margin-top:16px;padding:10px 19px}.mobile-project-pagination{justify-content:center;margin-top:9px;display:flex}.mobile-project-pagination button{cursor:pointer;place-items:center;width:44px;height:44px;display:grid}.mobile-project-pagination span{opacity:.5;background:#7e738e;border-radius:10px;width:4px;height:4px;transition:width .2s,opacity .2s}.mobile-project-pagination [aria-current=true] span{opacity:1;background:#c6a8df;width:20px}.mobile-swipe-hint{font-size:max(10px, calc(10px * var(--type-scale)));letter-spacing:.05em;text-align:center;color:#81768e;margin-top:-2px}.mobile-build{background:#0c0c0c}#featured.mobile-build{scroll-margin-top:calc(-1 * (var(--mobile-nav-height) + 16px))}.mobile-story{height:230svh;position:relative}.mobile-film-stage{height:100svh;position:sticky;top:0;overflow:hidden}.mobile-film-header{z-index:4;top:calc(var(--mobile-nav-height) + 20px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;left:22px;right:22px}.mobile-film-header>div>span{color:#c29370;font-size:max(10px, calc(9px * var(--type-scale)));text-transform:uppercase;letter-spacing:.14em}.mobile-film-header h2{font-size:max(10px, calc(15px * var(--type-scale)));color:#d9d0c7;margin-top:4px;font-weight:400;line-height:1.3}.mobile-film-skip{min-height:44px;font-size:max(10px, calc(10px * var(--type-scale)));white-space:nowrap;color:#b3a497;align-items:center;gap:5px;display:inline-flex}.mobile-film-media{aspect-ratio:480/854;width:min(100%,56.25svh - 33.75px);left:50%;top:calc(var(--mobile-nav-height) + 30px);position:absolute;transform:translate(-50%)}.mobile-film-grade{pointer-events:none;background:linear-gradient(#0c0c0c,#0000 15% 78%,#0c0c0c 97%);position:absolute;inset:-1px}.mobile-film-caption{left:24px;right:24px;bottom:max(28px, env(safe-area-inset-bottom,0px));z-index:3;position:absolute}.mobile-film-chapter{font-size:max(10px, calc(10px * var(--type-scale)));color:#c48f66;letter-spacing:.14em}.mobile-film-caption>p{font-size:max(10px, calc(23px * var(--type-scale)));color:#e1d9d2;max-width:270px;margin:8px 0 17px;font-weight:500;line-height:1.15}.mobile-film-caption .film-progress{background:#d8a77e28}.mobile-film-caption .film-progress>div{background:#c08d67}.mobile-film-cue{font-size:max(10px, calc(9px * var(--type-scale)));color:#a1978e;letter-spacing:.04em;margin-top:12px;display:block}.mobile-build-reveal{background:radial-gradient(at 100% 0,#b26c3820,#0000 70%);border-top:1px solid #c08d671c;padding:40px 26px 60px}.mobile-build-reveal h3{max-width:430px;font-size:max(10px, calc(32px * var(--type-scale)));letter-spacing:-.03em;color:#e3d9d1;font-weight:500;line-height:1.1}.mobile-build-reveal p{max-width:430px;font-size:max(10px, calc(15px * var(--type-scale)));color:#afa79f;margin-top:17px;font-weight:300;line-height:1.6}.mobile-build-reveal .github-button{min-height:46px;font-size:max(10px, calc(11px * var(--type-scale)));background:linear-gradient(135deg,#d2936215,#aaaaaa08);border-color:#cb916044;margin-top:24px}.mobile-build-fallback .mobile-story{height:auto}#featured.mobile-build-fallback{scroll-margin-top:0}.mobile-build-fallback .mobile-film-stage{height:min(760px,95svh);min-height:540px;position:relative}.mobile-build-fallback .mobile-film-media{top:80px}.mobile-build-fallback .mobile-film-header{top:30px}.footer{padding-top:60px;padding-bottom:max(24px, env(safe-area-inset-bottom,0px))}.footer-bottom{margin-top:50px}.footer-bottom a{min-height:44px}.footer-socials{gap:24px}}@media (max-width:767px) and (max-height:720px){.hero-title-wrap{margin-top:calc(var(--mobile-nav-height) + 23px)}.hero-title{font-size:max(10px, calc(min(20.5vw, 100px) * var(--type-scale)))}.portrait-position{width:min(115vw,59svh);top:176px}.hero-bottom{gap:10px;padding-bottom:43px}.hero-description{font-size:max(10px, calc(10px * var(--type-scale)))}.mobile-film-media{top:calc(var(--mobile-nav-height) + 18px)}.mobile-film-caption>p{font-size:max(10px, calc(20px * var(--type-scale)));max-width:270px;margin-bottom:12px}.mobile-film-caption{bottom:max(18px, env(safe-area-inset-bottom,0px))}}@media (max-width:360px){.mobile-skill button{font-size:max(10px, calc(16px * var(--type-scale)));gap:10px;padding-inline:13px}.mobile-project-content{padding:17px}.mobile-film-header{left:18px;right:18px}.mobile-film-header h2{font-size:max(10px, calc(13px * var(--type-scale)))}.mobile-brand{font-size:max(10px, calc(20px * var(--type-scale)))}.email-link{font-size:max(10px, calc(15px * var(--type-scale)));gap:10px}.email-link svg{width:18px}}@media (max-width:767px){.mobile-project-summary,.mobile-project-details>p{font-size:15px}.mobile-project-content h3{font-size:28px}.mobile-nav{transition:transform .24s,opacity .2s,visibility .24s}.mobile-nav[data-hidden=true]:not(:has(:focus-visible)){transform:translateY(calc(-100% - env(safe-area-inset-top,0px) - 12px));opacity:0;visibility:hidden;pointer-events:none}}
