@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-cyrillic-ext-400-normal.DK013rTF.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-ext-400-normal.CYXolEAs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-cyrillic-400-normal.DBAfjXL8.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-400-normal.D5EE68Bt.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-greek-400-normal.CjktTBN_.woff2) format("woff2"),url(/_astro/vollkorn-greek-400-normal.DqhRrue-.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-vietnamese-400-normal.5oLBXWiD.woff2) format("woff2"),url(/_astro/vollkorn-vietnamese-400-normal.CX1yEYOc.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-latin-ext-400-normal.DnZuQVDH.woff2) format("woff2"),url(/_astro/vollkorn-latin-ext-400-normal.1mzDPUIH.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-latin-400-normal.BaltSqSR.woff2) format("woff2"),url(/_astro/vollkorn-latin-400-normal.CbHXUhyQ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-cyrillic-ext-500-normal.BOBzuIot.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-ext-500-normal.U9kXHh3u.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-cyrillic-500-normal.CkW_2-sw.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-500-normal.tfF8KHWh.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-greek-500-normal.B_XWx9N6.woff2) format("woff2"),url(/_astro/vollkorn-greek-500-normal.D-5xdGg1.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-vietnamese-500-normal.CaRKU05T.woff2) format("woff2"),url(/_astro/vollkorn-vietnamese-500-normal.DNuWDgta.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-latin-ext-500-normal.Bqdtaiev.woff2) format("woff2"),url(/_astro/vollkorn-latin-ext-500-normal.BzWqE_WR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-latin-500-normal.D2zMOVYX.woff2) format("woff2"),url(/_astro/vollkorn-latin-500-normal.DlSIcISQ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-cyrillic-ext-600-normal.DjlkCfwC.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-ext-600-normal.C8Ps5gwY.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-cyrillic-600-normal.BAaY4JMF.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-600-normal.DurJb7GJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-greek-600-normal.B03tQI9i.woff2) format("woff2"),url(/_astro/vollkorn-greek-600-normal.BdN5pHoP.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-vietnamese-600-normal.CocrgJyS.woff2) format("woff2"),url(/_astro/vollkorn-vietnamese-600-normal.C-AXzaie.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-latin-ext-600-normal.DfoPGkY8.woff2) format("woff2"),url(/_astro/vollkorn-latin-ext-600-normal.D4xdxtUa.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vollkorn;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/vollkorn-latin-600-normal.Bg0efxoh.woff2) format("woff2"),url(/_astro/vollkorn-latin-600-normal.DxYBVd_6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-cyrillic-ext-400-italic.L1EkKojp.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-ext-400-italic.CGhyBvQi.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-cyrillic-400-italic.C3iklTAW.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-400-italic.BaM7R3Ig.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-greek-400-italic.DMRDJvjc.woff2) format("woff2"),url(/_astro/vollkorn-greek-400-italic.C4QY_hPw.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-vietnamese-400-italic.iD6aGjFx.woff2) format("woff2"),url(/_astro/vollkorn-vietnamese-400-italic.CQGUOzG0.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-latin-ext-400-italic.B1mZ5GPF.woff2) format("woff2"),url(/_astro/vollkorn-latin-ext-400-italic.ByDnKa4a.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/vollkorn-latin-400-italic.JwsC91NA.woff2) format("woff2"),url(/_astro/vollkorn-latin-400-italic.BWWcrbiq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-cyrillic-ext-500-italic.DUhJlX5f.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-ext-500-italic.BVtY0C_E.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-cyrillic-500-italic.BuaeI1f3.woff2) format("woff2"),url(/_astro/vollkorn-cyrillic-500-italic.Dts1oelA.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-greek-500-italic.CRKIaAgo.woff2) format("woff2"),url(/_astro/vollkorn-greek-500-italic.D7WNv7Ie.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-vietnamese-500-italic.BcCEZ0KL.woff2) format("woff2"),url(/_astro/vollkorn-vietnamese-500-italic.TqsGYPst.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-latin-ext-500-italic.lduJ5YHe.woff2) format("woff2"),url(/_astro/vollkorn-latin-ext-500-italic.BYsQao2g.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vollkorn;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/vollkorn-latin-500-italic.BKVkbYgB.woff2) format("woff2"),url(/_astro/vollkorn-latin-500-italic.DUOXOJMP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAWUAA4AAAAABvAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABRAAAABYAAAAWABEABEdQT1MAAAFcAAAAHgAAAB5EdEx1R1NVQgAAAXwAAAAnAAAAKLj8uOpPUy8yAAABpAAAAFUAAABgYo+sRGNtYXAAAAH8AAAAQgAAAFxB0OJbZ2FzcAAAAkAAAAAIAAAACAAAABBnbHlmAAACSAAAAT0AAAFaNhXKIGhlYWQAAAOIAAAANgAAADYqgLJdaGhlYQAAA8AAAAAfAAAAJBAY8MdobXR4AAAD4AAAABkAAAAiEYUB02xvY2EAAAP8AAAAFAAAABQBUAHKbWF4cAAABBAAAAAcAAAAIAAjAQBuYW1lAAAELAAAARoAAAJuNApRAXBvc3QAAAVIAAAASwAAAF2B645zAAEAAAAMAAAAAAAAAAIAAQABAAMAAQAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB42mNgZGBg4GJQA0ImFzefEAahnMSSPAY+BhBgARH//4NIAFpJBVUAeNotxbENQEAYhuH3/87hwhA3g1KvEANQGcAoKolJJKLR2AwJT/OQaLIFD5o1AN23jVRWgwofnF4JkAHi1zctXMS4u+NOwW0WIrYCqNQJRPIH7S0K2QAAAHjaY2BgYAJiZiAWAZKMYJqFwQNI8zFwAOXYGBQYHBkWMBxkZFLY8v8/UByF///J/wP/U/87/me8HwTUjQIAZb8SQgAAAAEAAf//AA942mJgAvQ4zXARx1H8vd8x2zx8riX/lW3btt2SzS3M7VN7t4Qte7q2ptx++sVnvy9UABBHogURyAAUCgcFUiWOxjTcMzbhnHGKaA2NZJ5O+tLJHDopA0s6GaCSqZwYJ2RE+Bz3GdfwMKozLh81XV3R+VT0wwyT6WdDtEk0gAB0T2Yywu5/ff2/Lqe1XfrB2/RG8sgJuEAQgJOC51iNSimVqXieCXd1cZYxLoovlro4uzLhvMDYEpVSw7G8oPLGVceU6KR8cYF4vK12yLbUcE7CjS2WxRlpRViAsR3J/RNiaRoeeAcJybFcWXN7pUadlJHkqYpJT4yMLA/rrXbwswNAlJACvCePIKKJwMhQ0jC4TQq2tmgKO6QUT4gOrCg6hkIQGKmUItiJlhcXy6PFhYkJhUSXlJSWmAhmxutO9wAAAAABAAAAAQLRsUtkZV8PPPUADwPoAAAAAN9+te8AAAAA3362EvlE/vcTHAOxAAAABgACAAAAAAAAeNpjYGRgYN72n42BgSnrp8t7P2EZoAgq4AAAe9wE3gB42mPKYogAYjkkzADFMgwMjKwM8wFSaARoAAAAAAAAFQAuADoARgBGAEYAiACWAK142mNgZGBg4GTIZ2Bn6GfgAvMQgIOBEQAZTQEkeNqNkQVOREEQRB/uxIPEfgR3d3d3iKHr7rvhWpyCQ3AYKpN1T6emvbvSA7TjpImG5g7gt2E3bTcw2DCcthvpbehP201s8pe2mxnnJ2238Mhb2m5llOW03SsL3MQlYWKsMyOJYSOKR5G47GnBg186RBSX8jcccylE+ZQfwEFQlVfKB4Up7hVxkVDPJ1Ge5UXNDOWxmGOaWeYkG1hms5NPEtIh3HjMLItRkqZyVVgUVphiCbvwxVjJbiu73Sranr/thSPOpOtkXuRV3nkghPk2N3PhNrl5ZoV5WY+41WGV9E/lcb4lKu1Vxma698w93ObiMXON4j9y4TEVCb6YVleIgKIpTfCkX+X4JIgrz5rBWcIikGYx9g9ueGIvAAB42mNgYgCD/3MYjIAUIwM64ARiFYaTjEwMzIzMjCyMrIxsbI5JRallqeyleZkGBo4GINrIwMmEMzG5tCQ1OT83CSxjbGAGANg9D2UA) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fragment-mono-latin-ext-400-normal.BbKYyvR9.woff2) format("woff2"),url(/_astro/fragment-mono-latin-ext-400-normal.CT4YFKeK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fragment-mono-latin-400-normal.yxdJ5AmL.woff2) format("woff2"),url(/_astro/fragment-mono-latin-400-normal.BYwT3kSJ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: oklch(.968 .013 84);--paper-deep: oklch(.938 .018 80);--paper-soft: oklch(.905 .023 78);--ink: oklch(.29 .018 58);--ink-soft: oklch(.44 .017 62);--ink-faint: oklch(.54 .018 72);--line: oklch(.82 .018 78);--accent: oklch(.52 .12 145);--accent-deep: oklch(.46 .12 150);--accent-soft: oklch(.85 .05 150);--cream: oklch(.955 .012 82);--font-serif: "Vollkorn", Georgia, "Times New Roman", serif;--font-mono: "Fragment Mono", ui-monospace, "SF Mono", Menlo, monospace;--wrap: min(1100px, 100%);--pad-inline: clamp(20px, 6vw, 64px);--radius: clamp(12px, 1.6vw, 18px);--masthead-h: clamp(64px, 8vw, 82px);--ease-quart: cubic-bezier(.25, 1, .5, 1);--ease-expo: cubic-bezier(.16, 1, .3, 1);--t-slow: .7s;--t-mid: .3s;--t-fast: .14s;--accent-text: var(--accent-deep);color-scheme:light}[data-theme=dark]{--paper: oklch(.15 0 0);--paper-deep: oklch(.13 0 0);--paper-soft: oklch(.18 0 0);--ink: oklch(.92 .012 82);--ink-soft: oklch(.78 .015 78);--ink-faint: oklch(.63 .015 75);--line: oklch(.32 0 0);--accent: oklch(.52 .12 145);--accent-deep: oklch(.46 .12 150);--accent-soft: oklch(.38 .07 150);--accent-text: oklch(.72 .13 145);--cover-tone-amber: oklch(.3 .04 110);--cover-tone-clay: oklch(.3 .04 135);--cover-tone-moss: oklch(.29 .05 155);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}main [id]{scroll-margin-top:calc(var(--masthead-h) + 16px)}body{margin:0;font-family:var(--font-serif);font-size:1rem;line-height:1.62;color:var(--ink);background:var(--paper);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft);color:var(--ink)}.wrap{width:min(var(--wrap),calc(100% - 2 * var(--pad-inline)));margin-inline:auto}a{color:inherit;text-decoration-color:var(--line);text-underline-offset:3px}a:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:2px}:focus:not(:focus-visible){outline:none}.mono{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;color:var(--ink-faint)}.caps{text-transform:uppercase;letter-spacing:.14em}html.js .reveal{opacity:0;transform:translateY(22px);transition:opacity var(--t-slow) var(--ease-expo) calc(var(--i,0) * 90ms),transform var(--t-slow) var(--ease-expo) calc(var(--i,0) * 90ms)}html.js .reveal.is-in{opacity:1;transform:none}.masthead{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);padding-block:clamp(18px,3vw,26px);transition:transform var(--t-mid) var(--ease-quart)}.masthead.is-hidden{transform:translateY(-100%)}.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}.masthead__name{font-size:.82rem;letter-spacing:.02em;white-space:nowrap}.masthead__links{display:flex;flex-wrap:wrap;gap:clamp(10px,3vw,34px)}.masthead__links a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-decoration:none;color:var(--ink-soft);padding:.7rem 0;transition:color var(--t-mid) var(--ease-quart)}.masthead__links a:hover{color:var(--accent-text)}.masthead__actions{display:flex;align-items:center;gap:.5rem}.hero{padding-block:clamp(4.5rem,12vh,9rem) clamp(4rem,9vh,7rem);min-height:calc(100svh - var(--masthead-h, 5rem));display:flex;align-items:center;justify-content:center;text-align:center}.hero .wrap{display:flex;flex-direction:column;align-items:center}.hero__eyebrow{margin-bottom:clamp(1.6rem,4vh,2.6rem)}.hero h1{font-size:clamp(2.05rem,6.2vw,4.6rem);line-height:1.04;letter-spacing:-.01em;font-weight:500;margin:0;text-wrap:balance}.hero h1 em{font-style:italic;font-weight:400;color:var(--ink-soft)}.hero__actions{display:flex;flex-wrap:wrap;gap:clamp(1.6rem,4vw,3rem);margin-top:clamp(2rem,5vw,3rem);align-items:baseline;justify-content:center}.btn{position:relative;display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;text-decoration:none;padding:.95em 1.5em;border-radius:999px;transition:background-color var(--t-mid) var(--ease-quart),color var(--t-mid) var(--ease-quart),border-color var(--t-mid) var(--ease-quart),box-shadow var(--t-mid) var(--ease-quart),transform var(--t-mid) var(--ease-quart)}.btn--primary{background:var(--accent);color:var(--cream);border:1px solid var(--accent);font-weight:500;box-shadow:0 4px 16px -2px color-mix(in oklch,var(--accent) 45%,transparent),0 0 18px 2px color-mix(in oklch,var(--accent) 25%,transparent);animation:btn-glow 3s ease-in-out infinite}.btn--primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--cream);transform:translateY(-2px);animation-play-state:paused;box-shadow:0 8px 24px -2px color-mix(in oklch,var(--accent) 60%,transparent),0 0 24px 4px color-mix(in oklch,var(--accent-text) 40%,transparent)}.btn--primary .arr{transition:transform var(--t-mid) var(--ease-quart)}.btn--primary:hover .arr{transform:translate(3px,-2px)}@keyframes btn-glow{0%,to{box-shadow:0 4px 16px -2px color-mix(in oklch,var(--accent) 45%,transparent),0 0 14px 1px color-mix(in oklch,var(--accent) 22%,transparent)}50%{box-shadow:0 4px 20px -2px color-mix(in oklch,var(--accent) 55%,transparent),0 0 24px 4px color-mix(in oklch,var(--accent) 32%,transparent)}}.btn--accent{background:var(--accent);color:var(--cream);font-weight:400}.btn--accent:hover{background:var(--accent-deep);transform:translateY(-1px)}.btn--ghost{color:var(--ink-soft);padding-left:.2em;padding-right:.2em}.btn--ghost:hover{color:var(--accent-text)}.btn--ghost .arr{color:var(--accent-text);transition:transform var(--t-mid) var(--ease-quart)}.btn--outline{color:var(--ink-soft);border:1px solid var(--line);background:transparent}.btn--outline:hover{color:var(--ink);border-color:var(--ink-faint);background:var(--paper-deep);transform:translateY(-1px)}.btn--outline .arr{color:var(--accent-text);transition:transform var(--t-mid) var(--ease-quart)}.btn--outline:hover .arr,.btn--ghost:hover .arr{transform:translate(3px,-2px)}.hero__note{margin:clamp(2.5rem,6vw,4rem) 0 0;display:flex;align-items:center;justify-content:center;gap:.75em;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--ink-soft)}.hero__note .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}.hero__scroll{margin-top:clamp(2.5rem,6vh,4.5rem);display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:var(--ink-soft);border:1px solid var(--line);background:var(--paper-deep);text-decoration:none;transition:color var(--t-mid) var(--ease-quart),border-color var(--t-mid) var(--ease-quart),background-color var(--t-mid) var(--ease-quart),transform var(--t-mid) var(--ease-quart);animation:hero-bounce 2.4s ease-in-out infinite}.hero__scroll:hover{color:var(--accent-text);border-color:var(--accent-text);background:var(--paper-soft);transform:translateY(2px);animation-play-state:paused}.hero__scroll-icon{display:block}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}.skills__board{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2.5vw,2rem)}.skills__group{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1.6rem;background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--t-mid) var(--ease-quart),transform var(--t-fast) var(--ease-quart)}.skills__group:hover{border-color:var(--accent-soft)}.skills__group-head{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--line)}.skills__group-no{color:var(--ink-faint);font-size:.74rem;letter-spacing:.06em}.skills__group-title{margin:0;font-size:1.05rem;font-weight:500;color:var(--ink);letter-spacing:-.01em}.skills__group-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem .6rem;align-items:center}.skills__chip{display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .75rem;border-radius:999px;background:var(--paper-deep);border:1px solid var(--line);font-family:var(--font-mono);font-size:.73rem;letter-spacing:.03em;color:var(--ink-soft);transition:border-color var(--t-mid) var(--ease-quart),color var(--t-mid) var(--ease-quart),background-color var(--t-mid) var(--ease-quart),transform var(--t-fast) var(--ease-quart);cursor:default}.skills__chip:hover{border-color:var(--accent-text);color:var(--ink);background:var(--paper-soft);transform:translateY(-1px)}.skills__chip-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex:none;color:var(--ink-soft)}.skills__chip-icon svg{width:100%;height:100%;display:block}.skills__chip-name{white-space:nowrap}.edu__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:clamp(1.2rem,3vw,2rem)}.edu__card a{display:flex;flex-direction:column;height:100%;text-decoration:none;border:1px solid var(--line);background:var(--paper-deep);border-radius:clamp(12px,1.6vw,18px);overflow:hidden;transition:border-color var(--t-mid) var(--ease-quart),transform var(--t-mid) var(--ease-quart)}.edu__card a:hover{border-color:var(--accent-text);transform:translateY(-3px)}.edu__card img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;object-position:top center;filter:saturate(.92);transition:filter var(--t-mid) var(--ease-quart)}.edu__card a:hover img{filter:saturate(1)}.edu__meta{display:flex;align-items:baseline;gap:.75em;padding:.85em 1em;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em}.edu__no{color:var(--ink-faint);flex:none}.edu__name{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu__src{margin-left:auto;color:var(--accent-text);flex:none}.section{padding-block:clamp(4rem,9vw,7rem)}.section__head{display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(2.5rem,6vw,4rem)}.section__head h2{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05;font-weight:500;letter-spacing:-.01em;margin:0;white-space:nowrap}.section__rule{flex:1;height:1px;background:var(--line);align-self:center}.project{display:grid;grid-template-columns:88px minmax(0,1.2fr) minmax(0,.95fr);grid-template-areas:"idx body cover";gap:clamp(1.5rem,4vw,3rem);padding-block:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line);align-items:stretch}.project--flip{grid-template-areas:"idx cover body"}.project__idx{grid-area:idx;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.14em;color:var(--ink-faint);padding-top:.5rem}.project__body{grid-area:body}.project__body h3{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:500;letter-spacing:-.01em;line-height:1.05;margin:0 0 .6rem}.project__body h3 a{text-decoration:none}.project__body h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px}.project__desc{margin:0;color:var(--ink-soft);max-width:46ch}.project__meta{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--ink-faint);margin-top:1.2rem}.project__link{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;text-decoration:none;color:var(--accent-text);margin-top:1.4rem;padding:.5rem 0;background:none;border:none;cursor:pointer}.project__link .arr{transition:transform var(--t-mid) var(--ease-quart)}.project__link:hover .arr{transform:translate(4px,-2px)}.project__link:hover{text-decoration:underline;text-underline-offset:5px}.cover{grid-area:cover;position:relative;overflow:hidden;border-radius:clamp(12px,1.6vw,18px);min-height:clamp(180px,22vw,250px);color:var(--ink);transition:transform var(--t-mid) var(--ease-expo)}button.cover{display:block;width:100%;padding:0;border:0;font:inherit;cursor:zoom-in}button.cover:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.cover svg{position:absolute;inset:0;width:100%;height:100%}.cover__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left}.cover__tag{position:absolute;left:14px;bottom:12px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;padding:.35rem .75rem;border-radius:999px;color:var(--ink);background:var(--paper)}.cover:hover{transform:translateY(-3px)}.work .project:first-of-type{border-top:0}.work__more{display:flex;justify-content:center;margin-top:clamp(2.5rem,5vw,4rem)}.lightbox{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox[hidden]{display:none}.lightbox__backdrop{position:absolute;inset:0;background:#000000c7;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer}.lightbox__figure{position:relative;z-index:1;margin:0;max-width:min(88vw,1100px);display:flex;flex-direction:column;gap:.8rem;animation:lightbox-in var(--t-mid) var(--ease-quart)}@keyframes lightbox-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.lightbox__img{display:block;max-width:100%;max-height:72vh;object-fit:contain;border-radius:clamp(10px,1.4vw,16px);box-shadow:0 30px 80px #00000073}.lightbox__caption{color:#f7f1e6;text-align:center;margin:0}.lightbox__nav{position:relative;z-index:1;display:flex;align-items:center;gap:1rem;justify-content:center}.lightbox__arrow{font-family:var(--font-mono);display:inline-flex;align-items:center;justify-content:center;padding:0 0 .1em;line-height:1;background:#00000059;border:1px solid oklch(1 0 0 / .35);color:#fff;border-radius:999px;width:2.6rem;height:2.6rem;font-size:1rem;cursor:pointer;transition:background var(--t-fast) ease,transform var(--t-fast) ease}.lightbox__arrow:hover{background:#0000008c;transform:scale(1.06)}.lightbox__count{color:#fff;opacity:.85;letter-spacing:.08em}.lightbox__close{position:absolute;z-index:1;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid oklch(1 0 0 / .35);background:none;display:inline-flex;align-items:center;justify-content:center;padding:0 0 .1em;color:#f7f1e6;font-size:1.05rem;line-height:1;cursor:pointer;transition:background var(--t-fast) ease,transform var(--t-fast) ease}.lightbox__close:hover{background:#ffffff26;transform:rotate(90deg)}.cover--amber{background:var(--cover-tone-amber)}.cover--clay{background:var(--cover-tone-clay)}.cover--moss{background:var(--cover-tone-moss)}:root{--cover-tone-amber: oklch(.86 .06 110);--cover-tone-clay: oklch(.86 .05 135);--cover-tone-moss: oklch(.84 .07 155)}.contact{background:var(--accent-deep);color:var(--cream);border-radius:clamp(16px,2.4vw,28px);margin-block:clamp(2rem,5vw,3rem);padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem)}.contact__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2.5rem,6vw,5rem);align-items:center}.contact .mono{color:color-mix(in oklch,var(--cream) 78%,transparent)}.contact h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:500;letter-spacing:-.01em;line-height:1.08;margin:1.2rem 0 1.6rem;max-width:18ch;text-wrap:balance}.contact__mail{font-family:var(--font-mono);font-size:clamp(1rem,2vw,1.25rem);text-underline-offset:6px;text-decoration-thickness:1px}.contact__mail:hover{text-decoration-color:var(--cream)}.contact p{margin:0 0 1rem;color:var(--cream);max-width:44ch}.contact__back{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-decoration:none;color:var(--cream);margin-top:1rem;padding:.6rem 0}.contact__back:hover{text-decoration:underline;text-underline-offset:5px}.contact__links{display:flex;flex-direction:column;gap:clamp(1.4rem,3vw,2rem)}.contact__link{display:inline-flex;align-items:baseline;gap:.9em;font-family:var(--font-mono);font-size:clamp(1rem,1.8vw,1.2rem);letter-spacing:.04em;color:var(--cream);text-decoration:none;width:fit-content}.contact__link:hover{text-decoration:underline;text-underline-offset:6px}.contact__link-idx{font-size:.68em;color:color-mix(in oklch,var(--cream) 60%,transparent)}.contact__link .arr{font-size:.8em;transition:transform var(--t-fast) var(--ease-quart)}.contact__link:hover .arr{transform:translate(3px,-3px)}.footer{border-top:1px solid var(--line);padding-block:2rem 3.5rem}.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--ink-faint)}.footer a{color:var(--ink-soft)}.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--cream);padding:.8rem 1.2rem;border-radius:0 0 8px;z-index:10;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-decoration:none}.skip:focus{left:0}.theme-toggle,.lang-toggle,.menu-toggle{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;transition:color var(--t-mid) var(--ease-quart),border-color var(--t-mid) var(--ease-quart)}.menu-toggle{display:none;width:2.3rem}.lang-toggle{width:auto;padding:0 .85rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em}.theme-toggle:hover,.lang-toggle:hover,.menu-toggle:hover{color:var(--accent-text);border-color:var(--accent-text)}.theme-toggle:focus-visible,.lang-toggle:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.theme-toggle svg{width:16px;height:16px;display:block}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}.menu-toggle svg{width:18px;height:18px;display:block}.menu-toggle .icon-close,.menu-toggle.is-open .icon-menu{display:none}.menu-toggle.is-open .icon-close{display:block}@media(max-width:520px){.hero h1 br{display:none}}@media(max-width:640px){.menu-toggle{display:inline-flex}.masthead__links{position:absolute;top:100%;left:0;right:0;z-index:20;flex-direction:column;flex-wrap:nowrap;gap:0;display:none;padding:.25rem var(--pad-inline) 1.1rem;background:var(--paper);border-bottom:1px solid var(--line)}.masthead__links.is-open{display:flex}.masthead__links a{padding:.9rem 0;border-top:1px solid var(--line);font-size:.8rem}.masthead__links a:first-child{border-top:none}}@media(max-width:820px){.project{grid-template-columns:1fr;grid-template-areas:"idx" "body" "cover";gap:1rem}.cover{min-height:clamp(200px,50vw,300px)}}@media(max-width:620px){.contact__grid{grid-template-columns:1fr}}@media(max-width:960px){.skills__board{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media(max-width:560px){.skills__board{grid-template-columns:1fr;gap:1rem}}@media(hover:none){.cover:hover,.btn:hover,.skills__chip:hover{transform:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}html.js .reveal{opacity:1!important;transform:none!important;transition:none!important}.cover,.btn,.arr,.hero__scroll{transition:none!important}.hero__scroll,.btn--primary{animation:none!important}}
