:root{color-scheme:light;--background:#fff;--foreground:#111;--muted:#737373;--border:#e5e5e5;--surface:#fff;--surface-hover:#fafafa;--dots:#c9c9c9;--dock:#ffffffe0;--project-link:#2563eb;--project-link-hover:#1e3a8a}:root[data-theme=dark]{color-scheme:dark;--background:#0a0a0a;--foreground:#f5f5f5;--muted:#a3a3a3;--border:#303030;--surface:#171717;--surface-hover:#222;--dots:#424242;--dock:#171717e0;--project-link:#7db5ff;--project-link-hover:#4f8ff1}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--background)}body{background:var(--background);color:var(--foreground);margin:0;font:400 16px/1.55 IBM Plex Sans,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--foreground);outline-offset:4px}section[id]{scroll-margin-top:36px}.skip-link{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:16px}.top-grid{z-index:0;background-image:radial-gradient(var(--dots) 1px, transparent 1px);pointer-events:none;background-size:7px 7px;height:190px;position:absolute;inset:0 0 auto;mask-image:linear-gradient(#000 6%,#0000 100%)}.page,.site-footer{width:min(100% - 48px,672px);margin:0 auto;position:relative}.page{padding:96px 0 64px}.page>section:not(:first-child){margin-top:64px}.hero{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.hero>div{max-width:490px}.hero h1{letter-spacing:-.035em;margin:0;font-size:clamp(38px,6vw,48px);font-weight:700;line-height:1.08}.hero p{max-width:475px;color:var(--muted);margin:12px 0 0;font-size:20px;line-height:1.35}.portrait{object-fit:cover;border:4px solid var(--surface);width:128px;height:128px;box-shadow:0 0 0 2px var(--border), 0 8px 24px #00000012;border-radius:50%;flex:none;display:block}.booking-link{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:fit-content;margin-top:16px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background-color .2s;display:inline-flex}.booking-link:hover{background:var(--surface-hover)}section h2{letter-spacing:-.015em;margin:0 0 14px;font-size:22px;font-weight:700;line-height:1.25}#about p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.work-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.work-header h2{margin:0}.cv-download{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background-color .2s;display:inline-flex}.cv-download:hover{background:var(--surface-hover)}.booking-link svg,.cv-download svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.work-list{gap:4px;display:grid}.work-item{align-items:center;gap:12px;min-height:62px;padding:4px 0;display:flex}.work-logo{border:1px solid var(--border);background:var(--surface);flex:none;place-items:center;width:42px;height:42px;padding:6px;text-decoration:none;display:grid}.work-logo img{object-fit:contain;max-width:100%;max-height:100%;display:block}.work-mark{font-size:22px;font-weight:600;line-height:1}:root[data-theme=dark] .work-logo img[src$=netapp\.svg]{filter:invert()}.work-main{min-width:0;line-height:1.3;display:grid}.work-main a{width:fit-content;text-decoration:none}.work-main a:hover strong{text-underline-offset:3px;text-decoration:underline}.work-main strong{font-size:15px;font-weight:600}.work-main span,.work-item time{color:var(--muted);font-size:14px}.work-item time{white-space:nowrap;text-align:right;margin-left:auto}#skills h2{margin-bottom:32px}.skills{background:var(--border);grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin:0;padding:0;list-style:none;display:grid}.skill{background:var(--background);text-align:center;grid-template-rows:36px auto;align-content:center;justify-items:center;gap:6px;min-height:88px;padding:8px 4px;display:grid;position:relative}.skill img{object-fit:contain;width:36px;height:36px;display:block}.skill-label{color:var(--muted);font-size:11px;line-height:1.25}.skill-name{z-index:2;background:var(--foreground);width:max-content;color:var(--background);white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;padding:5px 8px;font-size:12px;font-weight:500;line-height:1.2;transition:opacity .16s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.skill:is(:hover,:focus-visible) .skill-name{opacity:1}.skill-areas{margin-top:20px}.skill-areas h3{margin:0 0 8px;font-size:13px;font-weight:600}.skill-areas ul{flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;display:flex}.skill-areas li{color:var(--muted);font-size:13px}.skill-areas li:before{content:"·";margin-right:8px}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.projects-section{text-align:center}.projects-section>h2,.contact-card h2{letter-spacing:-.025em;margin:0 0 6px;font-size:30px}.projects-intro{max-width:500px;color:var(--muted);margin:0 auto 30px}.project-grid{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;min-width:0;transition:background-color .2s;display:flex;position:relative;overflow:hidden}.project-card:hover{background:var(--surface-hover)}.project-media{background:var(--surface-hover);height:176px;display:flex;position:relative;overflow:hidden}.project-primary{object-fit:cover;object-position:center;width:100%;min-width:0;height:100%;display:block}.project-primary[src="/images/work/pharmaspotter-home.webp"],.project-primary[src="/images/work/pharmadiagrams-home.webp"]{object-position:center top}.project-copy{flex-direction:column;flex:1;padding:15px 16px 17px;display:flex}.project-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-title h3{margin:0;font-size:17px;font-weight:600;line-height:1.25}.project-title svg{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none}.project-copy time{color:var(--muted);margin-top:3px;font-size:13px}.project-copy p{color:var(--muted);margin:13px 0 18px;font-size:14px;line-height:1.45}.project-site-link{z-index:1;text-underline-offset:3px;width:fit-content;margin:-8px 0 14px;font-size:13px;position:relative}.project-tags{margin-top:auto}.project-tags span{border:1px solid var(--border);color:var(--foreground);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:500}.project-open{border-radius:inherit;cursor:pointer;background:0 0;border:0;width:100%;position:absolute;inset:0}.project-open:focus-visible{outline:2px solid var(--foreground);outline-offset:-4px}.contact-card{border:1px solid var(--border);text-align:center;border-radius:12px;padding:36px 30px}.contact-card p{max-width:460px;color:var(--muted);margin:8px auto 0}.contact-card a{color:var(--foreground);text-underline-offset:3px;font-weight:600;text-decoration-thickness:1px}.site-footer{border-top:1px solid var(--border);justify-content:space-between;gap:24px;padding:24px 0 120px;display:flex}.footer-identity{gap:3px;display:grid}.footer-identity strong{font-size:15px;font-weight:600}.footer-identity small{color:var(--muted);font-size:13px}.footer-links{align-items:flex-start;gap:4px;display:flex}.footer-links a{width:40px;height:40px;color:var(--muted);border:1px solid #0000;border-radius:8px;place-items:center;transition:color .25s,background-color .25s,border-color .25s,transform .25s;display:grid}.footer-links a:hover{border-color:var(--border);background:var(--surface-hover);color:var(--foreground);transform:translateY(-2px)}.footer-links svg{fill:currentColor;width:19px;height:19px}.dock{z-index:10;border:1px solid var(--border);background:var(--dock);backdrop-filter:blur(16px);border-radius:999px;align-items:center;gap:4px;padding:6px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000001a}.dock a,.dock button{width:40px;height:40px;color:var(--foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;flex:none;place-items:center;padding:0;text-decoration:none;display:grid}.dock a:hover,.dock button:hover{border-color:var(--border);background:var(--surface-hover)}.dock svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.dock-divider{background:var(--border);width:1px;height:24px;margin:0 3px}.sun-icon{display:none}:root[data-theme=dark] .sun-icon{display:block}:root[data-theme=dark] .moon-icon{display:none}.project-dialog{border:1px solid var(--border);background:var(--surface);width:min(760px,100vw - 32px);max-height:min(90vh,1000px);color:var(--foreground);border-radius:14px;padding:0;overflow:auto;box-shadow:0 24px 80px #00000040}.project-dialog::backdrop{backdrop-filter:blur(3px);background:#000000a3}.project-dialog>form{z-index:2;height:0;position:sticky;top:0}.dialog-close{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--foreground);cursor:pointer;border-radius:50%;place-items:center;padding:0 0 3px;font-size:24px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.dialog-close:hover{background:var(--surface-hover)}.dialog-content{padding:28px}.dialog-eyebrow{color:var(--muted);margin:0;font-size:13px}.dialog-content h2{margin:4px 40px 8px 0;font-size:28px;line-height:1.2}.dialog-content>p:not(.dialog-eyebrow){max-width:620px;color:var(--muted);margin:0 0 20px}.dialog-link a{color:var(--project-link);text-underline-offset:3px;transition:color .2s}.dialog-link a:hover{color:var(--project-link-hover)}.dialog-gallery{gap:18px;display:grid}.dialog-gallery figure{margin:0}.dialog-gallery img{border:1px solid var(--border);border-radius:8px;width:100%;height:auto;display:block}.dialog-gallery img[src="/images/work/blynkdesign-render.webp"]{background:#fff;padding:clamp(12px,3vw,24px)}.dialog-gallery figcaption{color:var(--muted);margin-top:5px;font-size:12px}@media (width<=640px){.page,.site-footer{width:min(100% - 36px,480px)}.page{padding-top:78px}.site-footer{flex-direction:column;gap:16px}.page>section:not(:first-child){margin-top:54px}.hero{gap:16px}.hero h1{font-size:clamp(31px,8vw,40px)}.hero p{font-size:16px}.portrait{width:88px;height:88px}.work-item time{font-size:12px}.skills{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:1fr}.project-media{height:210px}.contact-card{padding:32px 20px}.dialog-content{padding:22px 18px}}@media (hover:none){#skills h2{margin-bottom:14px}.skill-name{display:none}}@media (width<=390px){.hero h1{font-size:31px}.portrait{width:72px;height:72px}.work-header{gap:8px}.work-header h2{font-size:20px}.cv-download{padding:6px 8px;font-size:12px}.work-item time{white-space:normal;max-width:90px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card,.skill-name,.dialog-link a,.footer-links a,.booking-link,.cv-download{transition:none}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-500-normal.CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-500-normal.BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-cyrillic-ext-700-normal.BmRLXWpJ.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-700-normal.DCQwxkRk.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-cyrillic-700-normal.D_uavGvn.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-700-normal.RFb1v-CK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-greek-700-normal.wyJ6jzdA.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-700-normal.CkZN0sRy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-vietnamese-700-normal.CkEo6LDy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-700-normal.BV5B8Are.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-ext-700-normal.aMgXseD4.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-700-normal.DZH6Xh-4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
