/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);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}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.lowercase{text-transform:lowercase}.italic{font-style:italic}.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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{color-scheme:dark;--paper:#111210;--ink:#eeece4;--muted:#a4a69b;--dim:#898d80;--line:#2a2d25;--surface:#191b17;--hover:#21241e;--accent:#b7c5f4;--green:#a2c59a;--amber:#d6b578;--red:#d58c8e;--radius:12px}:root[data-theme=light]{color-scheme:light;--paper:#f8f8f3;--ink:#24291f;--muted:#60685a;--dim:#68705f;--line:#dcded3;--surface:#efefe7;--hover:#e7e9df;--accent:#435b99;--green:#4c7542;--amber:#946c24;--red:#a14b4e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{background:var(--paper);color:var(--ink);font:14px/1.75 var(--font-body),Arial,sans-serif;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a,button,input,textarea{-webkit-tap-highlight-color:transparent}button{background:0 0;border:0}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--paper)}h1,h2,h3,p{margin:0}a svg,button svg{flex-shrink:0}svg{vertical-align:middle;display:inline-block}dialog{color:var(--ink)}.muted{color:var(--muted)}.text-xs{font-size:12px}.skip-link{z-index:100;background:var(--ink);color:var(--paper);border-radius:6px;padding:8px 16px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:15px}.page,.site-header{width:min(680px,100% - 40px);margin-inline:auto}.page{padding-bottom:120px}.site-header{justify-content:space-between;align-items:center;height:82px;display:flex}.brand{letter-spacing:-.2px;font-size:12px;font-weight:600}.brand-period{color:var(--accent)}.header-actions{color:var(--muted);gap:22px;font-size:12px}.icon-button{border-radius:50%;justify-content:center;align-items:center;min-width:32px;min-height:32px;transition:background .2s,transform .2s;display:inline-flex}.icon-button:hover{background:var(--hover);color:var(--ink);transform:rotate(-8deg)}.reading-progress{transform-origin:0;z-index:80;background:var(--accent);pointer-events:none;height:2px;position:fixed;inset:0 0 auto}.hero{padding:52px 0 28px}.identity{align-items:center;gap:20px;display:flex}.avatar{object-fit:cover;width:66px;height:66px;box-shadow:0 0 0 1px var(--line);border-radius:50%;transition:transform .3s}.identity:hover .avatar{transform:rotate(-5deg)}.identity h1{font:400 49px/1.1 var(--font-display),Georgia,serif;letter-spacing:-.8px}.name-period{color:var(--accent)}.role{margin-top:7px}.local-time,.role{color:var(--muted);font-size:12px}.local-time{background:var(--surface);border-radius:20px;align-items:center;gap:8px;margin-top:23px;padding:3px 11px;display:inline-flex}.time-dot{background:var(--green);border-radius:50%;width:5px;height:5px}.time-divider{opacity:.5}.intro{font:400 19px/1.65 var(--font-reading),Georgia,serif;color:var(--muted);margin-top:29px}.intro a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color .2s}.intro a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);color:var(--accent)}.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:29px;display:grid}.hero-stats>a{background:var(--surface);border-radius:var(--radius);border:1px solid #0000;flex-direction:column;align-items:flex-start;padding:12px;transition:transform .22s,border-color .22s;display:flex}.hero-stats>a:hover{border-color:var(--line);color:var(--ink);transform:translateY(-4px)}.stat-icon{border-radius:6px;margin-bottom:11px;padding:5px;display:inline-flex}.stat-icon.green{color:var(--green);background:#89ae7f14}.stat-icon.violet{color:var(--accent);background:#a6a0dc16}.stat-icon.amber{color:var(--amber);background:#d6b57814}.stat-icon.blue{color:var(--accent);background:#88b0d416}.hero-stats strong{font:400 27px/1.1 var(--font-display),Georgia,serif}.hero-stats>a>span:last-child{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.4}.hero-actions{align-items:center;gap:8px;margin-top:25px;display:flex}.button{background:var(--surface);white-space:nowrap;border-radius:22px;justify-content:center;align-items:center;gap:7px;padding:7px 13px;font-size:12px;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:var(--hover);transform:translateY(-1px)}.button.primary{background:var(--ink);color:var(--paper)}.button.primary:hover{opacity:.9}.social-link{color:var(--muted);margin-left:3px}.text-link{color:var(--accent);align-items:center;gap:6px;font-size:12px;display:inline-flex}.section{padding-top:48px;scroll-margin-top:32px}.section-heading{gap:12px;display:flex}.section-heading h2{font:400 31px/1.3 var(--font-display),Georgia,serif;letter-spacing:-.35px}.section-count{color:var(--dim);font-size:12px}.section-link{color:var(--muted);margin-left:auto;font-size:12px}.section-link span{margin-left:4px;transition:transform .2s;display:inline-block}.section-link:hover span{transform:translate(2px,-2px)}.section-intro{color:var(--muted);font:20px/1.5 var(--font-reading),Georgia,serif;margin-bottom:20px}.projects-list{gap:9px}.project-card{border:1px solid var(--line);border-radius:var(--radius);padding:15px;transition:border-color .2s,background .2s;overflow:hidden}.project-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.project-card:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}}.project-main,.project-summary{align-items:flex-start;gap:12px;display:flex}.project-main{text-align:left;flex:1;padding:0}.project-logo{border:1px solid var(--line);width:38px;height:38px;font:26px/1 var(--font-display),Georgia,serif;background:var(--surface);border-radius:9px;flex-shrink:0;place-items:center;transition:transform .25s;display:grid}.project-card:hover .project-logo{transform:rotate(-5deg)}.project-logo.violet,.violet .project-logo{color:#bdb0e9;background:#ae91dc10}.orange .project-logo,.project-logo.orange{color:#d2ab82;background:#dd9f6b10}.blue .project-logo,.project-logo.blue{color:#9eb8db;background:#7fa5d110}.green .project-logo,.project-logo.green{color:#a9c59f;background:#90b88010}:root[data-theme=light] .project-logo{color:var(--accent)}.project-name{font:400 24px/1.2 var(--font-display),Georgia,serif;align-items:center;gap:8px;display:flex}.project-name svg{opacity:0;color:var(--accent);transition:opacity .2s,transform .2s;transform:translate(-4px,3px)}.project-main:focus-visible .project-name svg,.project-main:hover .project-name svg{opacity:1;transform:translate(0)}.project-description{color:var(--muted);margin-top:7px;display:block}.project-status{color:var(--dim);background:var(--surface);white-space:nowrap;border-radius:10px;margin-top:4px;padding:1px 7px}.project-bottom{justify-content:space-between;align-items:center;margin:13px 0 0 50px;display:flex}.project-tags{color:var(--dim);flex-wrap:wrap;gap:5px 10px;display:flex}.media-toggle{white-space:nowrap;color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.media-toggle:hover{color:var(--accent)}.project-media{border:1px solid var(--line);text-align:left;border-radius:8px;width:100%;margin-top:16px;padding:0;display:block;position:relative;overflow:hidden}.project-media img{aspect-ratio:1.65;object-position:top;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.media-caption{color:#eeece4;bottom:0;background:#101210e8;justify-content:space-between;align-items:center;padding:10px 13px;font-size:12px;transition:transform .25s;display:flex;position:absolute;inset-inline:0;transform:translateY(100%)}.project-media:focus-visible .media-caption,.project-media:hover .media-caption{transform:translateY(0)}.cp-panel{border-top:1px solid var(--line);padding-top:20px}.cp-stats{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.cp-stats>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr auto;align-items:center;padding:13px;display:grid}.cp-stats svg{color:var(--accent);opacity:.65;grid-area:1/2}.cp-stats strong{font:400 31px/1.3 var(--font-display),Georgia,serif;grid-area:1/1}.cp-stats span{color:var(--muted);grid-column:1/3;margin-top:3px;font-size:12px}.chart-title{justify-content:space-between;align-items:center;gap:15px;margin-top:27px;display:flex}.text-tabs{gap:19px;font-size:12px;display:flex}.text-tabs button{color:var(--dim);border-bottom:1px solid #0000;padding:0 0 4px}.text-tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--accent)}.source-tag{color:var(--dim);font-size:12px}.submission-chart{height:192px;margin-top:16px;padding:9px 8px 25px;position:relative}.chart-gridlines{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:10px 0 37px}.chart-gridlines i{border-top:1px dashed var(--line);width:100%}.submission-bars{justify-content:space-around;align-items:flex-end;gap:16px;height:100%;display:flex;position:relative}.submission-column{max-width:60px;height:100%;color:var(--dim);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;font-size:12px;display:flex}.submission-column>span{color:var(--accent);margin-bottom:5px}.submission-column>div{background:var(--accent);opacity:.6;transform-origin:bottom;border-radius:4px 4px 0 0;width:100%;max-width:34px;transition:opacity .2s,transform .2s;animation:bar-grow .7s cubic-bezier(.2,.7,.2,1)}.submission-column:hover>div{opacity:1;transform:scaleX(1.06)}.submission-column small{margin-top:7px;font-size:12px}.chart-unit{color:var(--dim);font-size:12px;position:absolute;bottom:0}.rating-chart{color:var(--accent);margin-top:15px}.rating-chart svg{width:100%;height:auto}.rating-chart circle{fill:var(--paper);stroke:var(--accent);stroke-width:2px}.chart-empty{height:190px;color:var(--dim);border-bottom:1px dashed var(--line);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.chart-empty p{color:var(--muted);font-size:12px}.chart-empty span{font-size:12px}.solved-breakdown{grid-template-columns:110px 1fr;align-items:center;gap:35px;padding:22px 0 17px;display:grid}.solved-ring{background:conic-gradient(var(--green) 0 var(--easy-end),var(--amber) var(--easy-end) var(--medium-end),var(--red) var(--medium-end) 100%);border-radius:50%;width:100px;height:100px;padding:7px;transform:rotate(-20deg)}.solved-ring>span{background:var(--paper);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;transform:rotate(20deg)}.solved-ring strong{font:400 28px/1.1 var(--font-display),Georgia,serif}.solved-ring small{color:var(--dim);margin-top:4px;font-size:12px}.difficulty-list{gap:12px;display:grid}.difficulty-list>div{justify-content:space-between;font-size:12px;display:flex}.difficulty-list span{color:var(--muted);align-items:center;gap:8px;display:flex}.difficulty-list strong{font-weight:400}.difficulty-dot{border-radius:2px;width:6px;height:6px}.easy{background:var(--green)}.medium{background:var(--amber)}.hard{background:var(--red)}.cp-footer{gap:20px;margin:12px 0;display:flex}.data-date{color:var(--dim);margin-top:10px;font-size:12px}.contest-list{margin:15px 0}.contest-list h3{color:var(--muted);margin-bottom:9px;font-size:12px}.contest-list>div{border-top:1px solid var(--line);gap:14px;padding:8px 0;font-size:12px;display:flex}.contest-list strong{color:var(--accent)}.contest-list small{color:var(--dim);margin-left:auto}.pr-list{gap:0;display:grid}.pr-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:13px 0;display:flex}.pr-row>svg:first-child{color:var(--accent);margin-top:3px}.pr-row>.pr-copy{flex:1}.pr-row strong{font-size:12px;font-weight:400;line-height:1.55;display:block}.pr-row small{color:var(--dim);margin-top:3px;font-size:12px;display:block}.pr-date{white-space:nowrap;margin-top:2px;font-size:12px}.pr-row>svg:last-child{color:var(--dim);margin-top:4px}.all-contributions{border:1px solid var(--line);color:var(--muted);border-radius:7px;justify-content:center;align-items:center;gap:8px;margin-top:7px;padding:10px;font-size:12px;transition:background .2s;display:flex}.all-contributions:hover{background:var(--surface)}.writing-empty{border-left:2px solid var(--line);padding:2px 0 2px 20px}.writing-empty p{font:24px/1.4 var(--font-reading),Georgia,serif}.writing-empty>span{color:var(--muted);margin:8px 0 12px;font-size:12px;display:block}.writing-empty a{color:var(--accent)}.collection-links{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.collection-links>a{border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:14px;transition:background .2s,transform .2s;display:flex}.collection-links>a:hover{background:var(--surface);transform:translateY(-2px)}.collection-links strong{font-size:12px;font-weight:400}.collection-links small{color:var(--dim);margin-top:3px;font-size:12px;display:block}.collection-links svg{color:var(--dim)}.activity-panel{padding-top:3px}.activity-top{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:17px;font-size:12px;display:flex}.activity-top strong{color:var(--ink);font-weight:600}.chart-switch{border:1px solid var(--line);border-radius:6px;gap:2px;padding:3px;display:flex}.chart-switch button{border-radius:3px;padding:4px 6px;line-height:1}.chart-switch button[aria-pressed=true]{background:var(--hover);color:var(--accent)}.calendar-scroll{scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-bottom:4px;overflow-x:auto}.calendar-inner{min-width:635px}.calendar-months{color:var(--dim);grid-template-columns:repeat(53,1fr);height:23px;font-size:12px;display:grid}.calendar-months span{white-space:nowrap}.contribution-grid{grid-template-rows:repeat(7,9px);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;min-width:635px;display:grid}.contribution-cell{border:1px solid #ffffff04;border-radius:2px;min-width:0;padding:0;transition:transform .15s,filter .15s}.contribution-cell:hover{filter:brightness(1.4);z-index:1;transform:scale(1.5)}.contribution-cell.selected{outline:1px solid var(--ink);outline-offset:1px}.level-0{background:var(--surface)}.level-1{background:#0e4429}.level-2{background:#006d32}.level-3{background:#26a641}.level-4{background:#39d353}:root[data-theme=light] .level-0{background:#e6e8df}:root[data-theme=light] .level-1{background:#9be9a8}:root[data-theme=light] .level-2{background:#40c463}:root[data-theme=light] .level-3{background:#30a14e}:root[data-theme=light] .level-4{background:#216e39}.calendar-caption{color:var(--dim);justify-content:space-between;gap:10px;margin-top:12px;font-size:12px;display:flex}.calendar-legend{white-space:nowrap;align-items:center;gap:3px;display:flex}.calendar-legend i{border-radius:1px;width:8px;height:8px}.calendar-legend>span{margin:0 4px}.skyline{align-items:flex-end;gap:10px;height:165px;padding:3px 3px 0;display:flex}.skyline-column{color:var(--dim);flex-direction:column;flex:1;align-items:center;gap:5px;min-width:0;font-size:12px;display:flex}.skyline-bar{width:100%;height:var(--bar-height);background:var(--green);opacity:.7;box-shadow:4px -3px 0 var(--green);border-radius:3px 3px 0 0;position:relative}@supports (color:color-mix(in lab,red,red)){.skyline-bar{box-shadow:4px -3px 0 color-mix(in srgb,var(--green) 25%,var(--paper))}}.skyline-bar{transform-origin:bottom;animation:bar-grow .6s ease-out}.skyline-column:hover .skyline-bar{opacity:1}.bar-count{font-size:12px}.site-footer{margin-top:65px;padding-top:12px}.footer-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:15px;font-size:12px;display:flex}.footer-row.secondary{color:var(--dim);border:0;padding-top:12px;font-size:12px}kbd{font:12px var(--font-body),Arial,sans-serif;background:var(--surface);color:var(--muted);border-radius:3px;padding:1px 4px}.floating-dock{z-index:30;background:var(--paper);align-items:center;gap:10px;padding:11px 13px;display:flex;position:fixed;bottom:23px;left:50%;translate:-50%}@supports (color:color-mix(in lab,red,red)){.floating-dock{background:color-mix(in srgb,var(--paper) 94%,transparent)}}.floating-dock{border:1px solid var(--line);box-shadow:0 4px 24px #0003,0 0 0 4px var(--paper);border-radius:26px}@supports (color:color-mix(in lab,red,red)){.floating-dock{box-shadow:0 4px 24px #0003,0 0 0 4px color-mix(in srgb,var(--paper) 60%,transparent)}}.floating-dock{color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:12px}.floating-dock>span{text-align:left;min-width:150px}.floating-dock kbd{padding:0 7px;font-size:12px}.floating-dock:hover{border-color:var(--dim)}dialog{border:1px solid var(--line);background:var(--paper);border-radius:17px;max-height:85dvh;padding:25px;overflow-y:auto;box-shadow:0 30px 120px #0006}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0008}.detail-media{border:1px solid var(--line);border-radius:9px;width:100%;height:auto;display:block}.project-detail-links{flex-wrap:wrap;align-items:center;gap:10px;margin-top:24px;display:flex}.dialog-links>.text-link{margin-left:auto}.dock-dialog{width:min(540px,100% - 28px);margin:auto auto 82px;padding:0;overflow:hidden}.dock-heading{align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.dock-heading h2{color:var(--muted);flex:1;font-size:12px;font-weight:400}.search-field{border-bottom:1px solid var(--line);color:var(--dim);align-items:center;gap:10px;margin:0 16px;padding:11px 0;display:flex}.search-field input{width:100%;color:var(--ink);outline-offset:2px;background:0 0;border:0;font-size:14px}.search-field input:focus-visible{outline:0}.dock-results{max-height:340px;padding:9px;overflow-y:auto}.dock-results button{text-align:left;border-radius:7px;justify-content:space-between;align-items:center;gap:15px;width:100%;padding:11px 12px;display:flex}.dock-results button.active{background:var(--surface)}.dock-results strong{font-size:12px;font-weight:400;display:block}.dock-results small{color:var(--dim);margin-top:2px;font-size:12px;display:block}.dock-results button>svg{color:var(--dim)}.dock-shortcuts{border-top:1px solid var(--line);color:var(--dim);align-items:center;gap:16px;padding:11px 18px;font-size:12px;display:flex}.dock-shortcuts button{align-items:center;gap:5px;padding:0;display:flex}.dock-shortcuts>span{margin-left:auto}.search-empty{color:var(--muted);padding:30px 16px;font-size:12px}.contact-form{max-height:65dvh;padding:0 22px 22px;overflow:auto}.contact-form>p{margin:3px 0 17px}.contact-form>p,.contact-notice{color:var(--muted);font-size:12px}.contact-notice{border:1px solid var(--line);background:var(--surface);border-radius:6px;margin-bottom:15px;padding:10px 12px}.contact-notice a{color:var(--accent);text-decoration:underline}.contact-form label{color:var(--muted);margin-top:12px;font-size:12px;display:block}.contact-form input,.contact-form textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);resize:vertical;border-radius:6px;margin-top:4px;padding:9px 11px;font-size:13px;display:block}.contact-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:20px;display:flex}.contact-actions .text-link{font-size:12px}.time-card{text-align:center;color:var(--accent);padding:25px 20px 40px}.time-card>svg{margin:0 auto 15px;display:block}.time-card strong{font:48px/1.3 var(--font-display),Georgia,serif}.time-card p{color:var(--muted);margin-top:10px;font-size:12px}.inner-page{min-height:65dvh;padding-top:45px}.back-link{color:var(--dim);margin-bottom:28px;font-size:12px;display:inline-block}.inner-page>h1{font:60px/1.1 var(--font-display),Georgia,serif;letter-spacing:-1px}.inner-page>h1 span{color:var(--accent)}.page-intro{font:23px/1.5 var(--font-reading),Georgia,serif;color:var(--muted);max-width:550px;margin:22px 0 34px}.detail-tags{margin:-13px 0 25px;font-size:12px}.article-prose{font:21px/1.7 var(--font-reading),Georgia,serif;color:var(--muted);margin:35px 0}.article-prose h2{font:32px var(--font-display),Georgia,serif;color:var(--ink);margin-bottom:15px}.collection-empty{border-top:1px solid var(--line);color:var(--dim);padding:35px 0}.collection-empty>p{margin:18px 0;font-size:13px}.collection-empty .text-link{margin-top:10px}@keyframes bar-grow{0%{opacity:.2;transform:scaleY(.15)}to{opacity:.7;transform:scaleY(1)}}@media (max-width:600px){.site-header{height:67px}.header-actions{gap:14px}.hero{padding:34px 0 22px}.identity{gap:15px}.avatar{width:54px;height:54px}.identity h1{letter-spacing:-.5px;font-size:38px}.role{margin-top:6px;font-size:12px}.local-time{margin-top:19px}.intro{margin-top:24px;font-size:18px}.hero-stats{gap:6px;margin-top:25px}.hero-stats>a{border-radius:9px;padding:10px 8px}.hero-stats strong{font-size:25px}.hero-stats>a>span:last-child{font-size:12px}.stat-icon{margin-bottom:8px;padding:4px}.hero-actions{flex-wrap:wrap;gap:6px}.button{padding:7px 11px;font-size:12px}.section{padding-top:39px}.section-heading h2{font-size:28px}.section-count,.section-link{font-size:12px}.project-card{padding:12px}.project-main{gap:10px}.project-status{padding:1px 5px;font-size:12px}.project-logo{width:33px;height:33px;font-size:24px}.project-name{font-size:23px}.project-description{font-size:12px}.project-bottom{gap:5px;margin-left:43px}.project-tags{gap:5px 8px}.media-toggle,.project-tags{font-size:12px}.project-media img{aspect-ratio:1.5}.cp-stats{gap:6px}.cp-stats>div{padding:10px}.cp-stats strong{font-size:28px}.cp-stats svg{width:14px}.cp-stats span,.text-tabs{font-size:12px}.text-tabs{gap:13px}.solved-breakdown{gap:22px}.source-tag{font-size:12px}.pr-row{gap:8px}.pr-date,.pr-row strong{font-size:12px}.pr-row>svg:last-child{display:none}.activity-top{font-size:12px}.calendar-caption{flex-wrap:wrap;gap:7px;font-size:12px}.calendar-legend{margin-left:auto}.skyline{gap:6px}.skyline-column>span{font-size:12px}.collection-links>a{padding:12px}.collection-links small,.collection-links strong{font-size:12px}.floating-dock{max-width:calc(100% - 32px);padding:10px 12px;font-size:12px;bottom:19px}.floating-dock>span{min-width:140px}.dock-dialog{margin-bottom:76px}.dock-shortcuts{gap:12px;padding-inline:14px;font-size:12px}.inner-page{padding-top:30px}.inner-page>h1{font-size:50px}.page-intro{font-size:22px}.site-footer{margin-top:48px}.footer-row,.footer-row.secondary{font-size:12px}.dialog-links>.text-link{margin-left:0}}@media (max-width:360px){.identity h1{font-size:33px}.avatar{width:46px;height:46px}.project-status{display:none}.hero-stats>a>span:last-child{font-size:12px}.hero-actions .social-link{display:none}.contact-actions{flex-wrap:wrap}.header-actions{gap:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}.section-reveal{opacity:1;translate:none}.reading-progress{display:none}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){z-index:2}::view-transition-old(root){z-index:1}.skyline-bar{background:#26a641}:root[data-theme=light] .skyline-bar{background:#30a14e}.codeforces-panel{border-top:1px solid var(--line);margin-top:30px;padding-top:6px}.codeforces-panel .chart-title{margin:14px 0}.codeforces-panel h3{font:24px var(--font-display),Georgia,serif}.platform-unavailable{color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:15px;font-size:12px;line-height:1.8}.friends-section{border-bottom:1px solid var(--line);margin-bottom:27px;padding:0 0 28px}.friends-heading{justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:16px;display:flex}.friends-heading>span{color:var(--dim);font-size:12px}.friends-empty{color:var(--muted);font-size:12px}.friend-links{flex-wrap:wrap;gap:9px;display:flex}.friend-link{border:1px solid var(--line);border-radius:24px;align-items:center;gap:9px;padding:6px 9px 6px 6px;font-size:12px;transition:background .2s,border-color .2s;display:flex}.friend-avatar{background:var(--surface);width:34px;height:34px;color:var(--accent);font:20px var(--font-display),Georgia,serif;border-radius:50%;place-items:center;transition:transform .25s;display:grid}.friend-avatar img{object-fit:cover;border-radius:50%}.friend-link:focus-visible,.friend-link:hover{background:var(--surface);border-color:var(--accent)}.friend-link:hover .friend-avatar{transform:translateY(-3px)rotate(-6deg)}.friend-arrow{color:var(--dim);font-size:12px}.footer-contact{margin:0 0 30px}.footer-eyebrow{color:var(--dim);font-size:12px}.footer-email-row{margin-top:8px}.footer-email-row,.footer-email-row>a{align-items:center;gap:12px;display:flex}.footer-email-row>a{font:28px var(--font-display),Georgia,serif}.footer-email-row>a:hover{color:var(--accent)}.copy-status{min-height:17px;color:var(--muted);margin-top:4px;font-size:12px;display:block}@media (max-width:600px){.friends-heading{flex-direction:column;align-items:flex-start;gap:5px}.footer-email-row>a{font-size:25px}}@media (prefers-reduced-motion:reduce){::view-transition-group(root){animation:none}.friend-avatar{transition:none}}:root{--paper:#0d100e;--panel:#181d19;--surface:#222922;--line:#303b31;--hover:#2c352d;--muted:#b3bcaf;--dim:#95a18f}:root[data-theme=light]{--paper:#e9eee7;--panel:#fbfcf9;--surface:#eef3eb;--line:#d1dccd;--hover:#e3ecdf;--muted:#53634d;--dim:#66785f}.section>div>.section-reveal{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px}.project-card{background:var(--paper)}.hero{padding-bottom:12px}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--dim);font-size:12px;display:block}.coding-overview{justify-content:space-between;align-items:center;gap:20px;padding:0 0 23px;display:flex}.coding-overview>div>strong{font:44px/1.3 var(--font-display),Georgia,serif;margin-top:6px;display:block}.coding-overview>div>strong>span{font:12px var(--font-body),Arial,sans-serif;color:var(--muted);margin-left:7px}.coding-overview p{color:var(--dim);max-width:350px;margin-top:6px;font-size:12px}.overview-contests{color:var(--amber);flex-direction:column;align-items:center;min-width:75px;display:flex}.coding-overview .overview-contests strong{margin-top:3px;font-size:29px}.overview-contests>span{color:var(--muted);font-size:12px}.coding-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.coding-profile{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:12px;min-width:0;padding:14px 12px;transition:background .2s,border-color .2s,transform .2s;position:relative}.coding-profile[aria-pressed=true]{background:var(--surface);border-color:var(--platform)}.coding-profile:hover{border-color:var(--platform);transform:translateY(-3px)}.lc{--platform:#dcb167}.cc{--platform:#c6a48d}.cf{--platform:#90b6dc}.platform-heading{align-items:center;gap:7px;display:flex}.platform-heading h3{font-size:12px;font-weight:600}.platform-symbol{color:var(--platform);display:inline-flex}.platform-handle{color:var(--dim);margin:5px 0 12px;font-size:12px;display:block}.platform-solved{align-items:baseline;gap:7px;display:flex}.platform-solved strong{font:34px/1.2 var(--font-display),Georgia,serif}.platform-solved>span{color:var(--dim);font-size:12px}.platform-facts{color:var(--muted);flex-wrap:wrap;gap:8px;margin:10px 0 13px}.platform-detail-link,.platform-facts{justify-content:space-between;font-size:12px;display:flex}.platform-detail-link{color:var(--platform);border-top:1px solid var(--line);align-items:center;padding-top:9px}.coding-detail{margin-top:24px}.coding-detail .codeforces-panel{margin:0}.coding-detail .cp-panel{padding-top:19px}.coding-detail .cp-stats>div{background:var(--paper)}.codechef-detail .chart-title h3{font:26px var(--font-display),Georgia,serif}.codechef-history>div{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;font-size:12px;display:flex}.oss-description{color:var(--muted);margin-bottom:17px;font-size:12px}.oss-description strong{color:var(--ink);font-weight:400}.oss-calendar{border-top:1px solid var(--line);padding:17px 0 22px}.oss-subheading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.oss-subheading h3{font-size:12px;font-weight:400}.oss-subheading>span{color:var(--dim);font-size:12px}.pr-tabs{border:1px solid var(--line);background:var(--paper);border-radius:10px;gap:5px;padding:5px;display:flex}.pr-tab{white-space:nowrap;color:var(--muted);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 9px;font-size:12px;display:flex}.pr-tab strong{background:var(--surface);border-radius:4px;padding:0 5px;font-weight:400}.pr-tab[aria-pressed=true]{background:var(--surface);color:var(--ink)}.pr-tab.merged svg,.state-merged>svg:first-child{color:#bc9df3}.pr-tab.open svg,.state-open>svg:first-child{color:#39d353}.pr-tab.closed svg,.state-closed>svg:first-child{color:#ee8d93}.pr-tab.reviewed svg,.state-reviewed>svg:first-child{color:#90b6dc}.pr-explainer{color:var(--dim);margin:13px 0}.pr-explainer,.pr-row small,.pr-row strong{font-size:12px}.pr-number{color:var(--accent);margin-left:4px}.pr-list-actions{justify-content:space-between;gap:12px;margin-top:15px;display:flex}.pr-list-actions>a{margin-left:auto}.leave-message{align-items:flex-start;gap:20px;padding:5px 0;display:flex}.message-symbol{width:48px;height:48px;color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.leave-message h3{font:25px/1.3 var(--font-reading),Georgia,serif}.leave-message p{color:var(--muted);margin:8px 0 17px;font-size:12px}.message-note{color:var(--dim);margin-top:11px;font-size:12px;display:block}.copy-email-button{color:var(--muted);border:1px solid var(--line);border-radius:20px;align-items:center;gap:7px;padding:7px 12px;font-size:12px;display:inline-flex}.copy-email-button:hover{background:var(--surface)}@media (max-width:600px){.section>div>.section-reveal{border-radius:14px;padding:18px 15px}.coding-overview{gap:10px}.coding-overview>div>strong{font-size:37px}.coding-overview>div>strong>span{margin-left:2px;font-size:12px}.coding-overview p{font-size:12px}.overview-contests{min-width:54px}.overview-contests>span{font-size:12px}.coding-profile-grid{gap:6px}.coding-profile{padding:11px 8px}.platform-heading{flex-direction:column;align-items:flex-start;gap:6px}.platform-heading h3{font-size:12px}.platform-handle{margin:5px 0 10px;font-size:12px}.platform-solved{flex-wrap:wrap;gap:3px}.platform-solved strong{font-size:30px}.platform-solved>span{font-size:12px}.platform-facts{flex-direction:column;gap:3px;font-size:12px}.platform-detail-link{gap:2px;font-size:12px}.platform-detail-link svg{display:none}.pr-tabs{grid-template-columns:1fr 1fr;display:grid}.pr-tab{justify-content:flex-start;font-size:12px}.oss-subheading{flex-direction:column;align-items:flex-start;gap:4px}.leave-message{gap:12px}.message-symbol{border-radius:10px;width:36px;height:36px}.message-symbol svg{width:23px}.leave-message h3{font-size:21px}.cp-stats{gap:5px}.cp-stats>div{padding:10px 7px}.cp-stats strong{font-size:27px}.cp-stats span{font-size:12px}.chart-title{gap:5px}.text-tabs{gap:13px}.text-tabs button{font-size:12px}.solved-breakdown{grid-template-columns:90px 1fr;gap:18px}.solved-ring{width:85px;height:85px}.submission-bars{gap:10px}.pr-row{gap:7px}.pr-date,.pr-row strong{font-size:12px}.pr-row>svg:last-child{display:none}}:root{--paper:#0a0a0a;--ink:#ededed;--panel:#141414;--surface:#1c1c1c;--line:#2b2b2b;--hover:#252525;--muted:#a0a0a0;--dim:#8b8b8b;--accent:#ededed;--font-display:var(--font-body);--font-reading:var(--font-body)}:root[data-theme=light]{--paper:#fff;--ink:#171717;--panel:#f5f5f5;--surface:#fff;--line:#dedede;--hover:#ebebeb;--muted:#5c5c5c;--dim:#737373;--accent:#171717}.identity h1{letter-spacing:-.6px;font-size:26px;font-weight:500;line-height:1.6}.intro p+p{margin-top:16px}.hero{padding-top:28px}.section-heading h2{font:400 12px/1.6 var(--font-mono),monospace;text-transform:uppercase;letter-spacing:.03em}.section-heading{margin-bottom:21px}.coding-overview>div>strong,.cp-stats strong,.hero-stats strong,.platform-solved strong,.solved-ring strong{font-family:var(--font-body);font-style:normal;font-weight:500}.hero-stats strong{font-size:24px}.project-name{font-family:var(--font-body);font-size:15px;font-weight:500}.project-description{font-size:12px;line-height:1.6}.project-logo{font-size:21px}.leave-message h3,.section-intro,.writing-empty p{font-family:var(--font-body);font-size:15px;line-height:1.6}.friends-heading h2{font:12px var(--font-mono),monospace}.inner-page h1{font-size:28px}.inner-page h1,.page-intro{font-family:var(--font-body)}.page-intro{font-size:15px}.calendar-months span{grid-row:1}.calendar-months{overflow:hidden}.codechef-detail .chart-title h3,.codeforces-panel h3{font:500 15px var(--font-body)}:root[data-theme=light] .monochrome-brand img{filter:invert()}.highlights-list{gap:0;display:grid}.highlights-list>a{border-top:1px solid var(--line);align-items:center;transition:padding-left .2s,color .2s;display:flex}.highlights-list>a:first-child{border-top:0;padding-top:0}.highlights-list strong{flex:1;font-weight:400}.highlight-context{white-space:nowrap}.highlights-list svg{color:var(--muted)}.experience-list{gap:10px;display:grid}.experience-item{background:var(--paper);border:1px solid var(--line);border-radius:11px;transition:border-color .2s,background .2s;overflow:hidden}.experience-item:hover{border-color:var(--muted)}.experience-item summary{cursor:pointer;align-items:center;gap:13px;padding:15px;list-style:none;display:flex}.experience-item summary::-webkit-details-marker{display:none}.experience-item summary:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}.experience-icon{border:1px solid var(--line);border-radius:9px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.experience-summary{flex-direction:column;flex:1;min-width:0;display:flex}.experience-summary strong{font-size:13px;font-weight:500}.experience-summary>span{color:var(--muted);margin-top:3px}.experience-summary small{color:var(--dim);margin-top:5px}.experience-caret{color:var(--dim);transition:transform .22s}.experience-item[open] .experience-caret{transform:rotate(180deg)}.experience-details{padding:0 17px 18px 66px;animation:detail-reveal .24s}.experience-kind{font:12px var(--font-mono),monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:3px 6px;display:inline-block}.experience-details ul{color:var(--muted);margin:12px 0;padding-left:16px;font-size:12px}@keyframes detail-reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.coding-view-tabs{background:var(--paper);border:1px solid var(--line);border-radius:9px;gap:5px;margin-bottom:15px;padding:4px;display:flex}.coding-view-tabs button{color:var(--muted);border-radius:5px;flex:1;padding:7px 6px;font-size:12px}.coding-view-tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.combined-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.combined-heading h3{font-size:13px;font-weight:500}.combined-activity .cp-stats{margin-bottom:20px}.streak-calendar{background:var(--paper);border:1px solid var(--line);border-radius:9px;grid-template-rows:repeat(7,12px);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:13px;display:grid}.solve-day{background:var(--surface);border:1px solid var(--line);border-radius:2px}.solve-day.active{background:#26a641;border-color:#39d353}.streak-legend{color:var(--dim);justify-content:space-between;gap:12px;margin:8px 0 15px;font-size:12px;display:flex}.streak-legend i{background:#26a641;border-radius:1px;width:7px;height:7px;margin-right:4px;display:inline-block}.streak-rule{color:var(--muted);font-size:12px;line-height:1.7}.platform-comparison{margin-top:19px}.platform-comparison>div{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1.3fr .7fr .8fr .7fr;gap:8px;padding:11px 0;font-size:12px;display:grid}.platform-comparison strong{color:var(--ink);font-weight:400}.platform-comparison .comparison-header{font:12px var(--font-mono),monospace;color:var(--dim);text-transform:uppercase}.section>div>.section-reveal{transition:border-color .22s,box-shadow .22s}@supports (color:color-mix(in lab,red,red)){.section:focus-within>div>.section-reveal,.section:hover>div>.section-reveal{border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}}.pr-row{transition:background .18s,padding-left .18s}.coding-view-tabs button:hover,.pr-tab:hover{background:var(--surface)}.compact-footer{border-top:1px solid var(--line);margin-top:40px;padding-top:20px}.compact-footer .footer-row{flex-wrap:wrap;gap:10px 20px;font-size:12px}.compact-footer .footer-hint,.compact-footer .visitor-count{white-space:nowrap}.preview-profile-facts{font-variant-numeric:tabular-nums;color:var(--muted)}.history-source-list{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.7}.footer-hint{color:var(--dim);font-size:12px}.compact-footer .friends-section{border:0;margin:25px 0 18px;padding:0}.compact-footer .friends-heading{margin-bottom:12px}.compact-footer .friend-link{border:0;gap:7px;padding:0}.compact-footer .friend-links{gap:12px}.compact-footer .friend-avatar,.compact-footer .friend-avatar img{width:27px;height:27px}.compact-footer .friends-empty{color:var(--dim);font-size:12px}.friend-navigation{font:12px var(--font-mono),monospace;color:var(--muted);align-items:center;gap:15px;margin:22px 0;display:flex}.friend-navigation button{font:inherit;padding:0}.friend-navigation button:disabled{opacity:.35}.footer-bottom-links{color:var(--muted);align-items:flex-start;gap:19px;font-size:12px;display:flex}.footer-bottom-links .footer-contact{margin:0}.footer-bottom-links .footer-email-row{gap:11px;margin:0}.footer-bottom-links .footer-email-row>a{font:12px var(--font-body);gap:5px}.footer-bottom-links .footer-email-row>a>svg{width:12px}.footer-bottom-links .copy-email-button{border:0;border-radius:0;gap:5px;padding:0;font-size:12px}.footer-bottom-links .copy-email-button>svg{width:12px}.footer-bottom-links .copy-status{max-width:140px;font-size:12px}.dock-animated-prompt{text-align:left;white-space:nowrap;align-items:center;min-width:172px;min-height:20px;display:inline-flex}.dock-animated-prompt i{background:var(--muted);width:1px;height:12px;margin-left:2px;animation:dock-caret 1.05s step-end infinite;display:inline-block}@keyframes dock-caret{0%,55%{opacity:1}56%,to{opacity:0}}@media (max-width:600px){.identity h1{font-size:24px}.intro{font-size:14px}.highlights-list>a{flex-wrap:wrap;align-items:flex-start;gap:8px}.highlights-list strong{min-width:65%;font-size:12px}.highlight-context{margin-left:25px;font-size:12px}.highlights-list>a>svg{margin-left:auto}.experience-item summary{gap:9px;padding:12px}.experience-summary strong,.experience-summary>span{font-size:12px}.experience-details{padding-left:17px}.combined-heading{flex-wrap:wrap}.combined-heading h3{font-size:12px}.coding-view-tabs button{padding:7px 3px;font-size:12px}.streak-calendar{grid-template-rows:repeat(7,10px);gap:3px;padding:10px}.platform-comparison .comparison-header,.platform-comparison>div,.streak-legend{font-size:12px}.footer-hint{text-align:right;max-width:125px}.footer-bottom-links{flex-wrap:wrap;gap:13px;font-size:12px}.footer-bottom-links .footer-email-row>a{font-size:12px}.dock-animated-prompt{min-width:160px}.section-count,.section-heading h2{font-size:12px}}@media (prefers-reduced-motion:reduce){.experience-caret,.experience-item,.highlights-list>a,.pr-row,.section>div>.section-reveal,.tech-icon,.tech-icon img,.tech-tooltip{transition:none}.dock-animated-prompt i,.experience-details{animation:none}}.streak-calendar{grid-template-rows:repeat(3,auto);grid-template-columns:repeat(28,minmax(0,1fr));grid-auto-flow:row}.solve-day{aspect-ratio:1}@media (max-width:600px){.streak-calendar{grid-template-rows:repeat(3,auto)}}:root{--panel:#0f0f0f;--surface:#181818;--line:#242424}:root[data-theme=light]{--panel:#fafafa;--surface:#f1f1f1;--line:#e8e8e8}.section>div>.section-reveal{box-shadow:none;border-radius:14px;padding:22px;transition:border-color .22s,background-color .22s}.section:focus-within>div>.section-reveal,.section:hover>div>.section-reveal{box-shadow:none;border-color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.section:focus-within>div>.section-reveal,.section:hover>div>.section-reveal{border-color:color-mix(in srgb,var(--ink) 17%,var(--line))}}.section-reveal{animation:none;translate:none}.hero-stats>a:hover{transform:translateY(-2px)}.identity:hover .avatar,.project-card:hover .project-logo,.tech-icon:hover img{transform:none}.highlights-list>a:hover{padding-left:0}.highlights-list>a{gap:12px;padding:13px 0}.highlights-list strong{font-size:12px}.highlight-context{color:var(--dim);margin-left:auto;font-size:12px}.project-media img{transition:transform .6s cubic-bezier(.22,1,.36,1)}.pr-row:hover{background:var(--surface);padding-left:0}.section-navigation{z-index:70;border-bottom:1px solid var(--line);background:var(--paper);align-items:center;gap:21px;width:min(680px,100% - 40px);margin:0 auto;padding:11px 0;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.section-navigation{background:color-mix(in srgb,var(--paper) 95%,transparent)}}.section-navigation{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none;font:12px/1.6 var(--font-mono),monospace;white-space:nowrap;overflow-x:auto}.section-navigation::-webkit-scrollbar{display:none}.section-navigation a{color:var(--dim);border-bottom:1px solid #0000;padding:3px 0;transition:color .18s,border-color .18s}.section-navigation a:hover,.section-navigation a[aria-current=location]{color:var(--ink);border-bottom-color:var(--muted)}.contributor-groups{flex-wrap:wrap;gap:32px;margin:20px 0 15px;display:flex}.contributor-group h3{font:12px var(--font-mono),monospace;color:var(--dim);margin-bottom:11px;font-weight:400}.contributor-icons{flex-wrap:wrap;gap:9px;display:flex}.contributor-icon{border:1px solid var(--line);background:var(--paper);border-radius:11px;place-items:center;width:43px;height:43px;transition:border-color .2s,background-color .2s;display:grid;position:relative}.contributor-icon img{object-fit:cover;border-radius:7px;width:29px;height:29px}.contributor-icon:focus-visible,.contributor-icon:hover{border-color:var(--muted);background:var(--surface)}.contributor-tooltip{background:var(--ink);color:var(--paper);white-space:nowrap;pointer-events:none;opacity:0;z-index:5;border-radius:4px;padding:4px 7px;font-size:12px;transition:opacity .16s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.contributor-icon:focus-visible .contributor-tooltip,.contributor-icon:hover .contributor-tooltip{opacity:1}.contributors-toggle{color:var(--muted);margin:0 0 17px;padding:3px 0;font-size:12px;display:block}.contributors-toggle:hover{color:var(--ink)}.oss-description{line-height:1.8}.oss-calendar{margin-top:19px}.hero-actions{flex-wrap:wrap}@supports (interpolate-size:allow-keywords){.experience-item{interpolate-size:allow-keywords}.experience-item::details-content{transition-behavior:allow-discrete;block-size:0;transition:block-size .3s cubic-bezier(.22,1,.36,1),content-visibility .3s;overflow:hidden}.experience-item[open]::details-content{block-size:auto}.experience-details{animation:none}}@media (max-width:600px){.section>div>.section-reveal{border-radius:12px;padding:18px 15px}.section-navigation{gap:20px;padding:9px 0;font-size:12px}.contributor-groups{gap:23px}.contributor-icon{width:40px;height:40px}.contributor-icon img{width:28px;height:28px}.highlights-list>a{flex-wrap:nowrap;align-items:center;gap:8px}.highlights-list strong{min-width:0;font-size:12px;line-height:1.7}.highlight-context{margin-left:auto;font-size:12px}.highlights-list>a>svg{margin-left:0}.hero-actions{gap:7px}.hero-actions .social-link{min-width:27px;min-height:29px;margin-left:0}}@media (prefers-reduced-motion:reduce){.contributor-icon,.contributor-tooltip,.section>div>.section-reveal{transition:none}.experience-item::details-content{transition:none}}.section:focus-within>div>.section-reveal,.section:hover>div>.section-reveal,.section>div>.section-reveal{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;transition:none}.section-heading h2{text-transform:lowercase;color:var(--muted)}.section-heading{gap:9px;margin-bottom:18px}.section-count:before{content:"/";opacity:.65;margin-right:9px}.section-count{font-family:var(--font-mono),monospace}.section{scroll-margin-top:76px}#leave-message>div>.section-reveal,#problem-solving>div>.section-reveal{background:var(--panel);border:1px solid var(--line);box-shadow:none;border-radius:16px;padding:22px}.experience-list{gap:5px}.experience-item,.experience-item:hover{background:0 0;border:0;border-radius:0;overflow:visible}.experience-item summary{gap:12px;padding:12px 0}.experience-icon{background:var(--panel);border-radius:8px;width:32px;height:32px}.experience-summary strong{font-size:14px}.experience-summary>span{font-size:12px}.experience-summary small{font-family:var(--font-mono),monospace;font-size:12px}.experience-details{padding:0 0 18px 44px}.experience-kind{background:0 0;border:0;padding:0}.experience-details ul{font-size:13px;line-height:1.8}.experience-details .text-link{font-size:12px}.projects-list{gap:10px}.project-card,.project-card:hover{background:0 0;border:0;border-radius:0;padding:12px 0}.project-logo{background:var(--panel);border-radius:8px;width:32px;height:32px}.project-name:hover{text-underline-offset:4px;text-decoration:underline}.project-description{font-size:13px}.project-bottom{padding-left:44px}.project-media-wrap{margin-left:44px}.project-media{border-radius:11px;margin-top:13px}.project-media:hover img{transform:scale(1.012)}.writing-empty{background:0 0;border:0;padding:0}.writing-empty p{font-size:15px}.writing-empty>span{font-size:13px;line-height:1.7}.writing-empty a{font-size:12px}.editorial-highlights{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.editorial-highlights>li{justify-content:space-between;align-items:baseline;gap:24px;padding:10px 0;transition:opacity .2s cubic-bezier(.23,1,.32,1);display:flex}.editorial-highlights .highlight-link{min-width:0;text-decoration:underline;-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink);font-size:15px;font-weight:400;line-height:1.6}@supports (color:color-mix(in lab,red,red)){.editorial-highlights .highlight-link{-webkit-text-decoration-color:color-mix(in srgb,var(--ink) 25%,var(--paper));text-decoration-color:color-mix(in srgb,var(--ink) 25%,var(--paper))}}.editorial-highlights .highlight-link{text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color .15s}.editorial-highlights .highlight-link:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.editorial-highlights .highlight-context{font:13px/1.6 var(--font-body),sans-serif;white-space:nowrap;color:var(--dim);flex-shrink:0;margin:0}@media (hover:hover) and (pointer:fine){.editorial-highlights:has(>li:hover)>li:not(:hover){opacity:.45}}:root{--pr-surface:#141414}:root[data-theme=light]{--pr-surface:#f5f5f5}.pr-list{background:var(--pr-surface);border-radius:18px;flex-direction:column;gap:4px;padding:6px;display:flex;position:relative}.pr-row,.pr-row:hover{isolation:isolate;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;min-height:61px;padding:10px;transition:none;display:flex;position:relative}.pr-hover-surface{z-index:-1;background:var(--paper);pointer-events:none;box-shadow:none;border-radius:12px;position:absolute;inset:0}.pr-owner-avatar{object-fit:cover;background:var(--surface);border-radius:8px;flex-shrink:0;width:28px;height:28px}.pr-copy{flex:1;min-width:0}.pr-copy strong{font-size:14px;font-weight:400;line-height:1.5}.pr-copy small,.pr-copy strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pr-copy small{font:12px/1.7 var(--font-mono),monospace;margin-top:3px}.pr-date{font:12px var(--font-mono),monospace;color:var(--dim)}.pr-row>svg{display:none}.contributor-icon{border-radius:9px;transition:translate .15s cubic-bezier(.23,1,.32,1)}.contributor-icon:hover{border-color:var(--line);background:var(--paper);translate:0 -2px}.link-preview{z-index:160;border:1px solid var(--line);background:var(--surface);width:296px;max-width:calc(100vw - 24px);color:var(--ink);box-shadow:none;pointer-events:auto;border-radius:12px;animation:preview-appear .12s ease-out;position:fixed;overflow:hidden}.preview-above{transform:translateY(-100%)}.link-preview-content{padding:14px}.link-preview-source{font:12px/1.5 var(--font-mono),monospace;color:var(--muted);align-items:center;gap:7px;margin-bottom:10px;display:flex}.link-preview-source>svg:last-child{margin-left:auto}.link-preview-content>strong{font-size:13px;font-weight:500;line-height:1.5;display:block}.link-preview-content>p{color:var(--muted);margin-top:7px;font-size:12px;line-height:1.65}.link-preview-content>small{font:12px var(--font-mono),monospace;color:var(--dim);margin-top:10px;display:block}.link-preview-image{object-fit:cover;object-position:top;border-bottom:1px solid var(--line);width:100%;height:157px;display:block}@keyframes preview-appear{0%{opacity:0}to{opacity:1}}@media (max-width:600px){.section{padding-top:38px}#leave-message>div>.section-reveal,#problem-solving>div>.section-reveal{border-radius:14px;padding:18px 15px}.editorial-highlights>li{gap:15px;padding:10px 0}.editorial-highlights .highlight-link{font-size:13px}.editorial-highlights .highlight-context{white-space:normal;text-align:right;max-width:78px;font-size:12px}.experience-summary strong{font-size:13px}.experience-details ul,.experience-summary>span,.project-description{font-size:12px}.project-media-wrap{margin-left:0}.pr-row,.pr-row:hover{gap:9px;padding:9px 7px}.pr-copy small,.pr-copy strong,.pr-date{font-size:12px}}@media (prefers-reduced-motion:reduce){.link-preview{animation:none}.contributor-icon,.editorial-highlights .highlight-link,.editorial-highlights>li,.tech-tool{transition:none}.contributor-icon:hover{translate:none}}body{font-size:16px;line-height:1.7}.section-heading h2{letter-spacing:-.02em;font-size:20px;font-weight:500;line-height:1.4}.section-heading{align-items:baseline;margin-bottom:23px}.section-count,.section-link{font-size:12px}.identity h1{font-size:32px;line-height:1.35}.intro{font-size:16px;line-height:1.75}.experience-details ul,.experience-summary>span,.project-description,.role{font-size:14px}.editorial-highlights .highlight-link,.experience-summary strong,.project-name{font-size:16px}.editorial-highlights .highlight-context{font-size:13px}.leave-message h3,.section-intro,.writing-empty p{font-size:17px}.leave-message p,.pr-copy strong,.writing-empty>span{font-size:14px}.pr-copy small,.pr-date{font-size:12px}.brand,.button,.header-actions{font-size:13px}.section-navigation{gap:18px;font-size:12px}.platform-heading h3{font-size:13px}.platform-comparison .comparison-header,.platform-comparison>div,.platform-detail-link,.platform-facts,.platform-handle{font-size:12px}.platform-comparison .comparison-header{font-family:var(--font-body),sans-serif}.pr-tab{white-space:normal;text-align:left;gap:5px}.icon-credit,.pr-tab strong{font-size:12px}.icon-credit{color:var(--dim);margin-top:12px}.project-page-heading{align-items:center;gap:13px;display:flex}.stack-symbols{flex-wrap:wrap;align-items:center;gap:15px;padding:7px 0;display:flex}.stack-symbol{width:32px;height:34px;box-shadow:none;background:0 0;border:0;border-radius:3px;place-items:center;display:grid;position:relative}.stack-symbol img{width:24px;height:24px;display:block}.stack-symbol:focus-visible,.stack-symbol:hover{background:0 0}.stack-name{border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;z-index:4;border-radius:5px;padding:4px 8px;font-size:12px;line-height:1.5;transition:opacity .12s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)}.stack-symbol:focus-visible .stack-name,.stack-symbol:hover .stack-name{opacity:1}@media (max-width:600px){.identity h1{font-size:28px}.intro{font-size:15px;line-height:1.75}.section-heading h2{font-size:18px}.section-navigation{gap:17px;font-size:12px}.experience-summary strong,.project-name{font-size:15px}.experience-details ul,.experience-summary>span,.project-description{font-size:14px}.editorial-highlights .highlight-link{font-size:15px}.editorial-highlights .highlight-context{font-size:12px}.pr-copy strong{font-size:13px}.pr-copy small,.pr-date{font-size:12px}.coding-profile{padding:11px 6px}.platform-detail-link,.platform-facts,.platform-handle,.platform-heading h3{font-size:12px}.platform-detail-link{line-height:1.5}.stack-symbols{gap:13px}.friends-heading h2{font-size:16px}.hero-actions{gap:8px}.pr-tab{padding:8px 6px}.chart-title{flex-wrap:wrap}.copy-email-button,.footer-bottom-links,.footer-bottom-links .footer-email-row>a,.text-tabs button{font-size:12px}}@media (max-width:400px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-comparison>div{grid-template-columns:1.2fr .65fr .85fr .8fr;gap:5px}.platform-comparison .comparison-header{font-size:12px}.hero-actions .button{padding:7px 11px}}@media (prefers-reduced-motion:reduce){.stack-name{transition:none}}.stack-name{visibility:hidden}.stack-symbol:focus-visible .stack-name,.stack-symbol:hover .stack-name{visibility:visible}.stack-symbol:first-child .stack-name{left:0;transform:none}@media (max-width:600px){.stack-symbols{grid-template-columns:repeat(6,32px);gap:13px;display:grid}.stack-symbol:nth-child(6n) .stack-name{left:auto;right:0;transform:none}.stack-symbol:nth-child(6n+1) .stack-name{left:0;transform:none}}.contact-form input,.contact-form textarea,.search-field input{font-size:16px}.contact-actions{flex-wrap:wrap}main{position:relative}main:before{content:"";border-inline:1px dashed var(--line);pointer-events:none;z-index:-1;position:absolute;inset:0 -24px}.section{position:relative}.section:before{content:"";pointer-events:none;width:calc(100vw - 32px);position:absolute;top:24px;left:50%;transform:translate(-50%)}.site-footer{border-top-style:dashed}.stack-symbol{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:48px;height:48px}.stack-symbol:focus-visible,.stack-symbol:hover{background:var(--surface);box-shadow:none}.stack-name{text-align:center;border-radius:8px;padding:7px 10px}.stack-name small,.stack-name strong{display:block}.stack-name strong{font-size:12px;font-weight:600}.stack-name small{color:var(--dim);font-size:12px}.stack-symbol:first-child .stack-name,.stack-symbol:nth-child(6n+1) .stack-name{left:0;right:auto;transform:none}.stack-symbol:last-child .stack-name{left:auto;right:0;transform:none}.highlights-more{flex-direction:column;display:flex}.highlights-more>summary{cursor:pointer;color:var(--muted);align-items:center;gap:7px;padding:14px 0 0;font-size:13px;list-style:none;display:flex}.highlights-more>summary::-webkit-details-marker{display:none}.highlights-more .when-expanded,.highlights-more[open] .when-collapsed{display:none}.highlights-more[open] .when-expanded{display:inline}.highlights-more[open]>summary svg{transform:rotate(180deg)}.extra-highlights{padding-top:8px}#leave-message>div>.section-reveal{background:0 0;border:0;border-radius:0;padding:0}.message-book-empty p{color:var(--ink);font-size:15px}.message-book-empty>span{color:var(--muted);font-size:14px}.message-book-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:20px;scroll-margin-top:90px;display:flex}.message-book .message-note{max-width:52ch;line-height:1.65}.public-messages{margin:0;padding:0;list-style:none}.public-messages>li{border-bottom:1px dashed var(--line);padding:20px 0}.public-messages blockquote{margin:0 0 12px;font-size:15px;line-height:1.75}.message-byline{align-items:center;gap:9px;font-size:12px;display:flex}.message-byline strong{font-weight:500}.message-byline time{color:var(--dim);margin-left:auto}.message-initial{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);border-radius:50%;place-items:center;display:grid}@media (max-width:600px){main:before{inset-inline:-10px}.stack-symbols{grid-template-columns:repeat(6,38px);gap:14px 6px}.stack-symbol{border-radius:9px;width:38px;height:38px}.stack-symbol:nth-child(6n) .stack-name{left:auto;right:0;transform:none}}@media (prefers-reduced-motion:reduce){.highlights-more>summary svg{transition:none}}@media (min-width:601px) and (max-width:800px){.stack-symbols{grid-template-columns:repeat(6,48px);justify-content:start;gap:14px 12px}}.projects-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.project-card,.project-card:hover{border:1px solid var(--line);background:var(--panel);border-radius:18px;flex-direction:column;min-width:0;padding:10px;display:flex}.project-media-wrap{border-radius:10px;margin:0 0 16px;overflow:hidden}.project-media{border:0;border-radius:10px;margin:0}.project-media img{aspect-ratio:1.6;object-fit:cover;width:100%}.project-summary{align-items:center;gap:7px}.project-main{align-items:center;gap:9px;min-width:0}.project-card:hover .project-logo,.project-logo{background:0 0;border:0;flex-shrink:0;width:36px;height:36px;padding:0;transform:none}.project-logo img{border-radius:9px;width:100%;height:100%;display:block}.project-name{font-size:16px}.project-description{margin:12px 2px 16px;font-size:14px;line-height:1.65}.project-status{background:0 0;margin:0;padding:0;font-size:12px}.project-bottom{align-items:flex-end;gap:10px;margin:auto 2px 2px;padding:0}.project-tags{gap:4px 8px;font-size:12px}.project-quick-links{color:var(--muted);flex-shrink:0;gap:10px;display:flex}.project-quick-links a{place-items:center;min-height:28px;display:grid}.project-quick-links a:hover{color:var(--ink)}.stat-platform-marks{align-items:center;gap:7px;display:flex}.stat-github-mark{filter:none}:root[data-theme=light] .stat-github-mark{filter:invert()}.nav-site-mark{border:0;flex-shrink:0;padding:0;display:flex}.nav-site-mark img{border-radius:6px}@media (max-width:600px){.projects-list{grid-template-columns:minmax(0,1fr);gap:20px}.project-media-wrap{margin-left:0}.project-bottom{padding-left:0}.project-logo{width:36px;height:36px}}.section-heading{flex-wrap:wrap;align-items:center;row-gap:9px}.contributors-toggle,.highlights-more>summary,.section-link,.text-link,.writing-empty>a{border:1px solid var(--line);background:var(--surface);width:fit-content;min-height:32px;color:var(--muted);font-family:var(--font-body),sans-serif;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:5px 11px;font-size:12px;line-height:1.5;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.contributors-toggle:hover,.highlights-more>summary:hover,.section-link:hover,.text-link:hover,.writing-empty>a:hover{color:var(--ink);background:var(--paper);border-color:var(--dim)}.contributors-toggle:focus-visible,.highlights-more>summary:focus-visible,.section-link:focus-visible,.text-link:focus-visible,.writing-empty>a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.highlights-more>summary{margin-top:14px}.message-compose{color:var(--ink);min-height:38px;padding:8px 15px;font-size:14px}#projects .section-link,#projects>.section-reveal .section-link{color:var(--ink)}@media (prefers-reduced-motion:reduce){.contributors-toggle,.highlights-more>summary,.section-link,.text-link,.writing-empty>a{transition:none}}:root{--avatar-accent:#b49bd6;--avatar-tint:#b49bd60e}:root[data-theme=light]{--avatar-accent:#72518f;--avatar-tint:#72518f09}.nav-site-mark img{background:var(--surface);object-fit:contain;border-radius:7px}.contributors-toggle:hover,.highlights-more>summary:hover,.icon-button:hover,.section-link:hover,.text-link:hover{color:var(--avatar-accent);border-color:var(--avatar-accent);background:var(--avatar-tint)}.stat-icon{border:1px solid var(--line)}.guestbook-compose{border-top:1px dashed var(--line);margin-top:28px;padding-top:25px;scroll-margin-top:90px}.guestbook-compose h2{margin-bottom:12px;font-size:20px}.guestbook-compose>p{color:var(--muted);font-size:14px;line-height:1.7}.google-sign-in{border-radius:999px;min-height:42px;margin-top:18px;padding:10px 17px}.google-sign-in:disabled{cursor:not-allowed;opacity:.55}.google-mark{background:#fff;border-radius:50%;flex:0 0 24px;place-items:center;width:24px;height:24px;padding:2px;display:grid}.google-mark img{width:20px;height:20px;display:block}.guestbook-private{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin-top:25px;padding-top:20px;display:flex}.guestbook-private>span{color:var(--muted);font-size:13px}.public-message-form{flex-direction:column;align-items:flex-start;gap:15px;margin:20px 0;display:flex}.public-message-form label{flex-direction:column;gap:7px;width:100%;font-size:13px;display:flex}.public-message-form input,.public-message-form textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;padding:10px 12px;font-size:16px}.public-message-form textarea{resize:vertical}.public-message-form p{color:var(--muted);font-size:13px;line-height:1.7}.section{padding-top:72px}.section:before{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);height:22px;top:20px}@media (max-width:600px){.section{padding-top:62px}.section:before{height:18px;top:18px}}.stack-symbols{grid-template-columns:repeat(auto-fit,40px);justify-content:start;gap:10px;display:grid}.stack-symbol{background:var(--panel);border-radius:10px;width:40px;height:40px}.stack-symbol img{border-radius:4px;width:20px;height:20px}.stack-symbol:focus-visible,.stack-symbol:hover{background:var(--panel)}@media (max-width:600px){.stack-symbols{grid-template-columns:repeat(6,36px);gap:10px}.stack-symbol{border-radius:9px;width:36px;height:36px}}@media (max-width:350px){.stack-symbols{grid-template-columns:repeat(6,34px);gap:8px}.stack-symbol{width:34px;height:34px}}.profile-reveal{border:1px solid var(--line);background:var(--surface);cursor:pointer;isolation:isolate;border-radius:50%;flex-shrink:0;width:76px;height:76px;position:relative}.profile-reveal img{object-fit:cover;border-radius:50%;width:100%;height:100%;transition:opacity .3s,transform .35s;position:absolute;inset:0}.profile-reveal .profile-anime{object-fit:contain;opacity:1}.profile-reveal .profile-photo{opacity:0;transform:scale(1.06)}.profile-reveal.is-revealed .profile-anime{opacity:0;transform:scale(.96)}.profile-reveal.is-revealed .profile-photo{opacity:1}.profile-reveal-hint{white-space:nowrap;opacity:0;line-height:1.3;transition:opacity .15s;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.profile-reveal:focus-visible .profile-reveal-hint,.profile-reveal:hover .profile-reveal-hint{opacity:1}.profile-reveal:focus-visible{outline:2px solid var(--avatar-accent);outline-offset:4px}.project-card{transition:border-color .18s,transform .18s,background-color .18s}@media (hover:hover) and (pointer:fine){.project-card:hover{border-color:var(--dim);transform:translateY(-2px)}.project-card:hover .project-logo{transform:rotate(-4deg)}}.project-card:focus-within{border-color:var(--dim)}@media (prefers-reduced-motion:reduce){.profile-reveal img,.profile-reveal-hint,.project-card{transition:none}.project-card:hover,.project-card:hover .project-logo{transform:none}}@media (max-width:400px){.profile-reveal{width:62px;height:62px}.identity{gap:13px}}.social-mark-image,.sound-toggle img{filter:invert()}:root[data-theme=light] .social-mark-image,:root[data-theme=light] .sound-toggle img{filter:none}.sound-toggle{width:32px;height:32px}.sound-toggle img{flex-shrink:0;width:19px;height:19px}.preview-profile-title{align-items:center;gap:10px;display:flex}.preview-profile-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:38px;height:38px}.footer-social-link{align-items:center;gap:4px;display:inline-flex}.header-actions{align-items:center;gap:7px;display:flex}.booking-link{border-radius:999px;gap:10px;padding:7px 12px}.booking-avatars{isolation:isolate;align-items:center;display:flex}.booking-avatars img{object-fit:contain;background:var(--surface);border:1px solid var(--line);border-radius:50%;width:23px;height:23px;transition:transform .2s}.booking-plus{color:var(--dim);margin:0 4px;font-size:12px;transition:margin .2s}.booking-you{border:1px solid var(--line);background:var(--surface);border-radius:999px;place-items:center;height:23px;padding:0 6px;font-size:12px;transition:transform .2s;display:grid}.booking-link:hover .booking-avatars img{transform:rotate(-9deg)translate(-1px)}.booking-link:hover .booking-you{transform:rotate(7deg)translate(1px)}.booking-link:hover .booking-plus{margin:0 6px}.booking-link>svg{transition:transform .2s}.booking-link:hover>svg{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.booking-link *{transition:none}.booking-link:hover .booking-avatars img,.booking-link:hover .booking-you,.booking-link:hover>svg{transform:none}}.visitor-count{color:var(--dim);margin-left:auto;font-size:12px}@media (max-width:600px){.footer-row{flex-wrap:wrap}.visitor-count{margin-left:0}}.booking-link{gap:0;min-height:43px;padding:8px 18px}.booking-link .booking-avatars{opacity:0;max-width:0;margin-right:0;transition:max-width .25s,opacity .2s,transform .25s,margin-right .25s;overflow:hidden;transform:translate(10px)}.booking-link:focus-visible .booking-avatars,.booking-link:hover .booking-avatars{opacity:1;max-width:100px;margin-right:10px;transform:translate(0)}.booking-link>svg{margin-left:7px}.booking-link:focus-visible{outline:2px solid var(--avatar-accent);outline-offset:4px}@media (prefers-reduced-motion:reduce){.booking-link .booking-avatars{transition:none}}:root{--shadow-float:0 8px 28px #0007,0 1px 4px #0005;--shadow-dialog:0 24px 80px #0009;--shadow-control:0 1px 2px #0004}:root[data-theme=light]{--shadow-float:0 8px 28px #00000012,0 1px 4px #0000000a;--shadow-dialog:0 24px 80px #00000024;--shadow-control:0 1px 2px #00000009}.link-preview{background:var(--panel)}.floating-dock,.link-preview{box-shadow:var(--shadow-float)}dialog{box-shadow:var(--shadow-dialog)}.booking-link{box-shadow:var(--shadow-control)}.profile-reveal{overflow:visible}.profile-reveal .profile-photo{clip-path:circle(0);transition:clip-path .48s cubic-bezier(.22,1,.36,1),opacity .3s,transform .48s cubic-bezier(.22,1,.36,1);transform:scale(.94)}.profile-reveal.is-revealed .profile-photo{clip-path:circle(72%);transform:scale(1)}.profile-reveal-hint{opacity:1;color:var(--muted);pointer-events:none;align-items:center;gap:3px;font-family:cursive;font-size:12px;font-style:italic;display:flex;bottom:-27px}.profile-reveal-hint svg{flex-shrink:0;width:30px;height:22px;transform:rotate(-35deg)}@media (max-width:400px){.profile-reveal-hint{left:0;transform:none}}.profile-status{border:3px solid var(--surface);width:11px;height:11px;box-shadow:0 0 0 1px var(--line);z-index:2;background:#ef565f;border-radius:50%;position:absolute;bottom:2px;right:0}.hero>.local-time{margin-top:35px}.profile-reveal.is-revealed .profile-photo{animation:photo-assemble .6s steps(8) both}@keyframes photo-assemble{0%{clip-path:inset(0 0 100%);filter:blur(4px)}65%{filter:blur(1px)}to{clip-path:inset(0);filter:blur()}}.theme-key{border:1px solid var(--line);background:var(--surface);width:37px;height:35px;box-shadow:0 4px 0 var(--line);border-radius:11px;transition:transform .15s,box-shadow .15s,background-color .15s;transform:translateY(-2px)}.theme-key:hover{background:var(--panel)}.theme-key:active{box-shadow:0 1px 0 var(--line);transform:translateY(1px)}.theme-key:focus-visible{outline:2px solid var(--muted);outline-offset:5px}.theme-key svg{transition:transform .25s}.theme-key:hover svg{transform:rotate(-15deg)}@media (prefers-reduced-motion:reduce){.profile-reveal .profile-photo,.theme-key,.theme-key svg{transition:none;animation:none}}.personal-shelves{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.personal-shelf{background:#141414;border-radius:20px;flex-direction:column;grid-column:span 2;min-width:0;padding:8px;transition:background-color .15s,transform .15s;display:flex;overflow:hidden}:root[data-theme=light] .personal-shelf{background:#f5f5f5}.personal-shelf:hover{background:#1c1c1c}:root[data-theme=light] .personal-shelf:hover{background:#ededed}.personal-shelf:active{transform:scale(.985)}.personal-shelf:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.shelf-books{grid-area:span 2/span 4}.shelf-articles{grid-column:span 4}.shelf-art{background:var(--paper);border-radius:12px;place-items:center;min-height:130px;display:grid;position:relative;overflow:hidden}.shelf-books .shelf-art{flex:1;min-height:280px}.shelf-caption{align-items:flex-end;gap:8px;padding:12px 8px 6px;display:flex}.shelf-caption>span{flex:1;min-width:0}.shelf-caption strong{font-size:14px;font-weight:500;line-height:1.4;display:block}.shelf-caption small{color:var(--muted);margin-top:3px;font-size:13px;line-height:1.45;display:block}.shelf-caption>svg{color:var(--dim);flex-shrink:0;margin-bottom:4px}.watch-art{background:0 0;gap:8px;min-height:140px;padding:0;display:flex}.watch-art>span{color:#a598b8;background:#25212e;border:1px solid #ffffff0d;border-radius:12px;flex:1;place-items:center;min-height:140px;display:grid}.watch-art>span+span{color:#97ada4;background:#23302d}.shelf-places .shelf-art{background:var(--paper)}.map-lines{width:100%;height:112px;color:var(--dim)}.paper-preview{text-align:left;background:var(--paper);align-items:center;gap:20px;min-height:132px;padding:20px 24px;display:flex}.paper-preview>span{flex-direction:column;flex:1;gap:7px;display:flex}.paper-preview i{background:var(--line);border-radius:3px;height:3px;display:block}.paper-preview i:nth-child(2){width:80%}.paper-preview i:nth-child(3){width:65%}.channel-art{background:var(--paper);justify-content:center;gap:8px;display:flex}.channel-art i{background:var(--surface);width:36px;height:36px;color:var(--muted);border-radius:50%;place-items:center;font-size:16px;font-style:normal;display:grid}.library-group{margin:32px 0}.library-group>h2{margin-bottom:16px;font-size:20px}.library-item{border-bottom:1px dashed var(--line);gap:18px;padding:22px 0;display:flex}.library-item img{object-fit:cover;border-radius:6px;flex-shrink:0;align-self:flex-start;width:75px;height:auto;max-height:112px}.library-item h2{margin:0;font-size:18px}.library-item p{color:var(--muted);margin:6px 0;font-size:15px;line-height:1.7}.library-item .library-meta{color:var(--dim);font-size:12px}.shelf-empty{color:var(--muted);font-size:15px}.writing-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:19px 0;display:flex}.writing-row strong{font-size:16px;font-weight:500}.writing-row small{color:var(--muted);margin-top:5px;font-size:14px;display:block}.writing-date{color:var(--dim);flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:flex}.article-meta{color:var(--muted);font-size:13px}.article-actions,.resume-links{flex-wrap:wrap;gap:10px;margin:22px 0;display:flex}.article-toc{border-block:1px solid var(--line);margin:28px 0;padding:16px 0}.article-toc nav{color:var(--muted);flex-direction:column;gap:10px;padding:14px 0 0;font-size:14px;display:flex}.article-prose{overflow-wrap:anywhere}.article-prose pre{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:18px;font-size:13px;overflow-x:auto}.article-callout,.article-prose blockquote{border-left:2px solid var(--dim);background:var(--panel);margin:20px 0;padding:12px 18px}.article-prose h2,.article-prose h3{scroll-margin-top:110px}.article-table{overflow-x:auto}.article-table td{border:1px solid var(--line);padding:8px 12px}.article-comments{border-top:1px dashed var(--line);margin:48px 0;padding-top:28px}:root{--message-surface:#100e0e;--message-border:#262626;--message-text:#a3a3a3}:root[data-theme=light]{--message-surface:#fafafa;--message-border:#e5e5e5;--message-text:#525252}#leave-message .section-heading{margin-bottom:24px;display:block}#leave-message .section-heading:before{content:"Guestbook";color:var(--dim);margin-bottom:8px;font-size:14px;font-weight:500;display:block}#leave-message .section-heading h2{font-size:30px;font-weight:700;line-height:1.2}.message-sign-in{border:1px solid var(--message-border);background:var(--message-surface);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:16px;padding:40px 24px 36px;display:flex}.message-sign-in p{color:var(--message-text);margin:0;font-size:16px;line-height:1.5}.message-sign-in .google-sign-in{border:1px solid var(--dim);background:var(--message-surface);border-radius:8px;gap:10px;max-width:100%;min-height:44px;padding:9px 14px 9px 12px;font-size:14px;font-weight:500;line-height:20px}.message-privacy,.message-sign-in .message-note{color:var(--dim);font-size:12px}.message-privacy{text-underline-offset:3px;text-decoration:underline}.public-messages{flex-direction:column;gap:24px;margin-top:32px;display:flex}.public-messages>li{border:0;gap:16px;padding:0;display:flex}.public-messages>li>.message-initial{background:var(--surface);flex-shrink:0;width:40px;height:40px;margin-top:4px;font-size:16px}.message-content{flex:1;min-width:0}.message-byline{gap:8px;margin-bottom:4px}.message-byline strong{font-size:14px;font-weight:600}.message-byline time{margin-left:0;font-size:12px}.public-messages blockquote{border:1px solid var(--message-border);background:var(--message-surface);color:var(--message-text);border-radius:2px 16px 16px;margin:0;padding:16px;font-size:14px;transition:background-color .15s}.public-messages blockquote p{white-space:pre-wrap;margin:0}.message-view-all{justify-content:center;margin-top:32px;display:flex}.message-empty-hint{color:var(--dim);text-align:center;margin-top:24px;font-size:13px}.own-messages{margin-top:40px}.own-messages>div{border-bottom:1px solid var(--line);padding:18px 0}.own-messages small{color:var(--dim)}.own-messages form{margin-top:8px}.section-eyebrow{color:var(--dim);margin-bottom:8px;font-size:14px;display:block}@media (max-width:600px){.personal-shelves{grid-template-columns:repeat(2,minmax(0,1fr))}.personal-shelf{grid-column:span 1}.shelf-books{grid-area:auto/span 2}.shelf-books .shelf-art{min-height:260px}.shelf-articles{grid-column:span 2}.watch-art>span{min-height:128px}.writing-row{gap:10px}.writing-date{font-size:11px}.message-sign-in{padding:30px 18px}.message-sign-in p{font-size:14px}.public-messages>li{gap:10px}.public-messages>li>.message-initial{width:32px;height:32px}.message-byline{flex-wrap:wrap}.public-messages blockquote{padding:12px}}@media (prefers-reduced-motion:reduce){.personal-shelf{transition:none}.personal-shelf:active{transform:none}}#leave-message .section-heading h2{font-family:var(--font-body),sans-serif}.message-sign-in .google-sign-in{margin-top:0}#leave-message .section-heading h2{text-transform:none}.message-auth-note{color:var(--dim);text-align:center;margin:12px 0 0;font-size:12px}.watch-art>span{position:relative;overflow:hidden}.watch-art img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.channel-art i{overflow:hidden}.channel-art img,.place-cover{object-fit:cover;width:100%;height:100%}.place-cover{position:absolute;inset:0}.shelf-art:has(.place-cover) .map-lines{opacity:0}.library-item>div{overflow-wrap:anywhere;min-width:0}.message-pin{color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:2px 7px;font-size:11px}.public-message-heading{margin-top:40px}.coding-summary-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0 20px;display:grid}.coding-summary-totals>div{flex-direction:column-reverse;justify-content:flex-end;gap:6px;display:flex}.coding-summary-totals dt{color:var(--muted);font-size:14px;line-height:1.5}.coding-summary-totals dd{font-variant-numeric:tabular-nums;margin:0;font-size:32px;font-weight:600;line-height:1.25}.coding-summary-totals dd span{color:var(--muted);font-size:14px;font-weight:400}.oss-first{margin-top:0}.oss-context{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.activity-page #problem-solving{margin-top:36px}.activity-backlink{margin:38px 0}.project-section-nav{flex-wrap:wrap;gap:8px;margin:24px 0 36px;display:flex}.project-section-nav a{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:13px;transition:color .15s,background .15s}.project-section-nav a:focus-visible,.project-section-nav a:hover{color:var(--ink);background:var(--panel)}.project-detail-section{border-top:1px dashed var(--line);padding-top:28px;scroll-margin-top:110px}.project-case-study .project-detail-section h2{font-size:26px}.project-current-status{flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0;font-size:14px;display:flex}.project-current-status strong{color:var(--ink);background:var(--panel);border-radius:999px;padding:4px 10px;font-weight:500}.project-detail-section .detail-tags{margin:12px 0 22px}.project-detail-section figure{margin:20px 0}.project-detail-section .detail-media{margin-bottom:10px}.project-detail-missing,.project-detail-section figcaption{color:var(--dim);font-size:15px;line-height:1.7}@media (max-width:600px){.project-case-study .project-detail-section h2{font-size:23px}.coding-summary-totals{gap:12px}.coding-summary-totals dd{font-size:28px}.coding-summary-totals dt{font-size:13px}.oss-first{flex-wrap:wrap;align-items:flex-start;gap:8px}}.project-page-heading>.project-title-text{color:var(--ink)}.article-prose pre:focus-visible,.article-table:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.article-table th{border:1px solid var(--line);text-align:left;padding:8px 12px;font-weight:600}.article-prose a{text-underline-offset:.16em;text-decoration:underline}.github-avatar{border-radius:inherit;background:var(--surface);color:var(--muted);vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.github-avatar img{object-fit:cover;width:100%;height:100%;display:block}.github-avatar-fallback{letter-spacing:.02em;font-size:12px;font-weight:600}.contribution-date-control{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0 12px;font-size:14px;display:flex}.contribution-date-control input{border:1px solid var(--line);background:var(--panel);max-width:100%;min-height:44px;color:var(--ink);font:inherit;color-scheme:dark;border-radius:10px;padding:8px 12px}:root[data-theme=light] .contribution-date-control input{color-scheme:light}.calendar-scroll:focus-visible{outline:2px solid var(--ink);outline-offset:5px}:root[data-theme=light]{--dim:#686868}:root[data-theme=light] .coding-profile.lc{--platform:#805500}:root[data-theme=light] .coding-profile.cc{--platform:#795238}:root[data-theme=light] .coding-profile.cf{--platform:#2b5c8a}.activity-dashboard-heading{margin-bottom:24px;font-size:25px;line-height:1.3}main#main{scroll-margin-top:110px}.project-card{position:relative}.project-main:after{content:"";position:absolute;inset:0}.project-media,.project-quick-links{z-index:1;position:relative}.project-main:focus-visible:after{outline:2px solid var(--ink);outline-offset:-3px;border-radius:18px}.stack-name{pointer-events:auto}.stack-name:after{content:"";height:10px;position:absolute;top:100%;left:0;right:0}.readme-source{font:13px/1.6 var(--font-mono),monospace;color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:12px 0 28px;display:flex}.readme-source a{overflow-wrap:anywhere}.readme-toc{border-bottom:1px solid var(--line);margin:24px 0 30px;padding:0 0 16px}.readme-toc summary{min-height:44px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.readme-toc summary span{color:var(--muted);font:11px/1.5 var(--font-mono),monospace}.readme-toc nav{gap:4px;margin-top:8px;display:grid}.readme-toc nav a{min-height:36px;color:var(--muted);padding:7px 0;font-size:14px;line-height:1.5;text-decoration:none;display:block}.readme-toc nav a:focus-visible,.readme-toc nav a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.readme-toc nav a.readme-toc-nested{padding-left:16px;font-size:13px}.readme-document{overflow-wrap:anywhere}.readme-document img{vertical-align:middle;max-width:100%;height:auto}.readme-document pre{max-width:100%;overflow-x:auto}.readme-document [id]{scroll-margin-top:120px}.readme-document .article-table{max-width:100%;overflow-x:auto}.readme-document table{min-width:0}.readme-image-fallback,.readme-unavailable{color:var(--muted);font-size:14px;line-height:1.7}.readme-document a{text-underline-offset:3px;text-decoration:underline}.readme-document a:has(>img){align-items:center;min-height:28px;margin:3px 5px 3px 0;display:inline-flex}.readme-document a>img{width:auto}.readme-document .article-table:focus-visible,.readme-document pre:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.readme-document th{text-align:left;border:1px solid var(--line);padding:8px 12px}.readme-task-state{min-width:22px;color:var(--ink);display:inline-block}.project-case-study{width:min(640px,100%);margin-inline:auto}.project-case-study .project-page-heading{letter-spacing:-.025em;text-wrap:balance;align-items:center;gap:14px;margin:0;font-size:32px;line-height:1.2;display:flex}.project-case-study .project-page-heading img,.project-case-study .project-page-heading svg{flex:none}.project-overview-label{color:var(--muted);font:11px/1.6 var(--font-mono),monospace;letter-spacing:.04em;text-transform:uppercase;margin:20px 0 -10px}.project-case-study .page-intro{max-width:58ch;margin:16px 0 24px;font-size:16px;line-height:1.65}.project-case-study .project-section-nav{border-block:1px solid var(--line);gap:6px 16px;margin:24px 0 34px;padding:12px 0}.project-case-study .project-section-nav a{min-height:36px;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;border:0;border-radius:0;align-items:center;padding:5px 0;font-size:13px;display:inline-flex}.project-case-study .project-section-nav a:focus-visible,.project-case-study .project-section-nav a:hover{-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);background:0 0}.project-case-study .project-detail-section{border-top:1px solid var(--line);margin:30px 0;padding-top:26px;font-size:17px;line-height:1.75}.project-case-study .project-detail-section h2{letter-spacing:-.02em;margin:0 0 16px;font-size:24px;line-height:1.3}.project-case-study .project-detail-section li,.project-case-study .project-detail-section p{line-height:1.75}.project-case-study .project-detail-section .readme-document{font-size:17px;line-height:1.75}.project-case-study .readme-document h1,.project-case-study .readme-document h2,.project-case-study .readme-document h3{text-wrap:balance;margin-top:1.8em;margin-bottom:.65em;line-height:1.35}.project-case-study .readme-document h1{font-size:28px}.project-case-study .readme-document h2{font-size:23px}.project-case-study .readme-document h3{font-size:19px}.project-case-study .readme-document ol,.project-case-study .readme-document p,.project-case-study .readme-document ul{margin-block:1em}.project-case-study .readme-document li+li{margin-top:.45em}.project-case-study .readme-document pre{margin:1.4em 0;padding:16px;font-size:13px;line-height:1.65}.project-case-study .readme-document blockquote{margin:1.4em 0}.project-nav-hint{display:none}@media (max-width:600px){.project-case-study{padding-top:28px}.project-case-study .project-page-heading{gap:10px;font-size:27px}.project-case-study .project-page-heading img,.project-case-study .project-page-heading svg{width:34px;height:34px}.project-case-study .project-section-nav{overscroll-behavior-inline:contain;scrollbar-width:thin;margin:18px calc(-1 * var(--page-gutter,20px)) 26px;padding:8px var(--page-gutter,20px);scroll-snap-type:x proximity;flex-wrap:nowrap;gap:0 18px;overflow-x:auto}.project-case-study .project-section-nav a{scroll-snap-align:start;white-space:nowrap;flex:none;min-height:44px}.project-case-study .project-nav-hint{color:var(--muted);margin:-18px 0 24px;font-size:12px;line-height:1.5;display:block}.project-case-study .project-detail-section{margin:24px 0;padding-top:20px;font-size:16px;line-height:1.75}.project-case-study .project-detail-section h2{font-size:22px}.project-case-study .project-detail-section .readme-document{font-size:16px}.project-case-study .readme-document h1{font-size:25px}.project-case-study .readme-document h2{font-size:21px}.project-case-study .readme-document pre{max-width:calc(100vw - 40px);padding:12px;font-size:12px}.project-case-study .readme-document .article-table{max-width:calc(100vw - 40px)}.project-case-study .readme-document table{width:max-content;min-width:100%}.project-case-study .readme-document td,.project-case-study .readme-document th{padding:8px 10px}}.writing-header{gap:20px;width:min(880px,100% - 40px)}.writing-breadcrumb{min-width:0;color:var(--muted);font:12px/1.6 var(--font-mono),monospace;align-items:center;gap:10px;display:flex}.writing-breadcrumb>a{flex-shrink:0}.writing-breadcrumb>span:last-child[aria-current]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writing-header .header-actions{flex-shrink:0}.section-heading h2{font-family:var(--font-body),sans-serif;color:var(--ink);text-transform:none;letter-spacing:-.025em;font-size:28px;font-weight:700;line-height:1.25}.writing-archive{width:min(640px,100%);padding-top:60px}.writing-archive h1{letter-spacing:-.025em;font-size:32px;font-weight:600;line-height:1.2}.writing-filters{color:var(--muted);flex-wrap:wrap;gap:10px;margin:24px 0;font-size:12px;display:flex}.writing-filters a{border:1px solid var(--line);border-radius:6px;align-items:center;min-height:36px;padding:5px 10px;display:inline-flex}.writing-filters a[aria-current]{color:var(--ink);background:var(--panel)}.headline-list{margin-top:12px}.headline-list .writing-row{border:0;grid-template-columns:4.5rem minmax(0,1fr);align-items:baseline;gap:12px;padding:8px 0;transition:opacity .2s;display:grid}.headline-list .writing-date{font:12px/1.5 var(--font-mono),monospace;color:var(--muted);grid-area:1/1;display:block}.headline-list .writing-date svg{display:none}.headline-list .writing-row>strong{text-overflow:ellipsis;white-space:nowrap;text-underline-offset:4px;grid-column:2;min-width:0;font-size:15px;font-weight:400;line-height:1.5;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:transform .25s cubic-bezier(.22,1,.36,1),text-decoration-color .15s;overflow:hidden}.headline-list .writing-row:focus-visible>strong,.headline-list .writing-row:hover>strong{-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);transform:translate(3px)}@media (hover:hover) and (pointer:fine){.headline-list:has(>.writing-row:hover)>.writing-row:not(:hover){opacity:.45}}@media (max-width:600px){.section-heading{margin-bottom:24px}.section-heading h2{font-size:27px}.writing-breadcrumb{gap:8px;font-size:11px}.headline-list .writing-row{grid-template-columns:3.7rem minmax(0,1fr);gap:10px}.headline-list .writing-date{font-size:11px}.headline-list .writing-row>strong{white-space:normal;overflow:visible}.writing-archive{padding-top:32px}}@media (prefers-reduced-motion:reduce){.headline-list .writing-row,.headline-list .writing-row>strong{transition:none;transform:none!important}}.hero-social-links{display:contents}@media (max-width:600px),(pointer:coarse){.icon-button,.theme-key{min-width:44px;min-height:44px}.brand{align-items:center;display:inline-flex}.back-link,.booking-link,.brand,.hero-actions .button,.section-link,.text-link{min-height:44px}.hero-social-links{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;margin-top:4px;display:flex}.hero-social-links .social-link{justify-content:center;align-items:center;width:44px;height:44px;margin:0;display:inline-flex}.section-navigation{overscroll-behavior-x:contain;gap:12px;padding-block:5px;scroll-padding-inline:44px}.section-navigation a{flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:6px 4px;display:inline-flex}.section-navigation .nav-site-mark{z-index:1;background:var(--paper);position:sticky;left:0}.project-bottom{flex-wrap:wrap}.project-quick-links{gap:6px;margin-left:auto}.project-quick-links a{border-radius:8px;min-width:44px;min-height:44px}.project-quick-links a:active{background:var(--panel)}.contributors-toggle,.highlights-more>summary,.pr-tab,.text-tabs button{min-height:44px}.chart-switch button{min-width:44px;min-height:44px}.footer-bottom-links{gap:8px 18px;font-size:14px}.footer-bottom-links a,.footer-bottom-links button,.friend-navigation a,.friend-navigation button{align-items:center;min-width:44px;min-height:44px;display:inline-flex}.footer-bottom-links .copy-email-button,.footer-bottom-links .footer-email-row>a{font-size:14px}.friend-navigation{align-items:center}.floating-dock{bottom:calc(14px + env(safe-area-inset-bottom,0px));min-height:44px}.dock-dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;margin:auto;overflow-y:auto}.dock-heading{z-index:1;background:var(--paper);position:sticky;top:0}.dock-results{max-height:min(340px,40dvh)}.dock-shortcuts button{min-height:44px}.dock-shortcuts>span{display:none}.compact-footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.writing-filters a{min-height:44px}.writing-breadcrumb>a{align-items:center;min-height:44px;display:inline-flex}}@media (max-height:500px){.dock-dialog{overscroll-behavior:contain;max-height:calc(100dvh - 24px);margin:auto;overflow-y:auto}.dock-heading{z-index:1;background:var(--paper);position:sticky;top:0}.dock-results{max-height:35dvh}}@media (max-width:350px){.identity{align-items:flex-start}.identity>div{min-width:0}.profile-reveal-hint{white-space:normal;text-align:center;width:62px;font-size:11px;line-height:1.2;display:block;bottom:-32px}.profile-reveal-hint svg{display:none}}.search-recovery{color:var(--muted);align-items:center;gap:12px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex}.search-recovery p{flex:1}.search-recovery button{min-height:44px;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.project-archive-header{gap:20px;width:min(640px,100% - 40px)}.project-archive-header .header-actions{flex-shrink:0}.shelf-article-covers{width:210px;height:145px;position:relative}.shelf-article-covers img{object-fit:cover;border-radius:7px;width:160px;height:100px;position:absolute}.shelf-article-covers img:first-child{top:2px;left:2px;transform:rotate(-8deg)}.shelf-article-covers img:nth-child(2){top:24px;left:32px;transform:rotate(6deg)}.shelf-article-covers img:nth-child(3){top:44px;left:15px;transform:rotate(-2deg)}:root[data-theme-phase=morning]{--paper:#fff8f4;--panel:#f7eee8;--ink:#292421;--muted:#665a54}:root[data-theme-phase=day]{--paper:#f7fafd;--panel:#edf2f7;--ink:#202833;--muted:#536173}:root[data-theme-phase=evening]{--paper:#f3f0f8;--panel:#e9e4f0;--ink:#292432;--muted:#62596d}:root[data-theme-phase=night]{--paper:#10151e;--panel:#19212d;--ink:#e7ebf2;--muted:#abb5c5}:root[data-theme-phase]:not([data-theme-phase=""]){--surface:var(--panel);--accent:var(--ink);--dim:var(--muted);--pr-surface:var(--panel);--message-surface:var(--panel);--message-text:var(--muted);--message-border:var(--line)}:root[data-theme-phase]:not([data-theme-phase=""]) .personal-shelf{background:var(--panel)}:root[data-theme-phase]:not([data-theme-phase=""]) .personal-shelf:hover{background:var(--hover)}.theme-control{position:relative}.theme-menu{border:1px solid var(--line);background:var(--paper);width:245px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-float);z-index:100;border-radius:14px;padding:6px;position:absolute;top:calc(100% + 12px);right:0}.theme-choices{gap:3px;display:grid}.theme-choices button{text-align:left;width:100%;min-height:48px;color:var(--ink);border-radius:9px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;display:flex}.theme-choices button:hover,.theme-choices button[aria-checked=true],.theme-choices button[aria-pressed=true]{background:var(--panel)}.theme-choices button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.theme-choices button>svg{flex-shrink:0}.theme-choices small{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.5;display:block}.theme-selected{min-width:16px;margin-left:auto}.theme-control .theme-key{min-width:44px;min-height:44px}.dock-dialog.mode-theme .theme-choices{padding:12px}.footer-service{border-top:1px dashed var(--line);margin-top:28px;padding-top:20px}.footer-service h2{margin:0;font-size:14px;font-weight:500;line-height:1.6}.footer-service p{max-width:56ch;color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.8}.footer-service-links{flex-wrap:wrap;gap:4px 20px;margin-top:4px;display:flex}.footer-service-links a{min-height:44px;color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;align-items:center;gap:6px;font-size:13px;display:inline-flex}.footer-service-links a:hover{color:var(--ink);-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@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}