:root{font-family:var(--font-body);color:#253440;background:#fff;font-size:15px;font-synthesis:none;--line:#dfe8ef;--muted:#5e6c78;--ink:#253440;--accent:#1673b6;--accent-hover:#a8dcff;--paper:#f6faff;--accent-soft:#c8e8ff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #292929;outline-offset:5px}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1120px)/2));background:#ffffffef;border-bottom:1px solid #e2e2e2;position:sticky;top:0;z-index:30;backdrop-filter:blur(12px)}.brand{font-size:18px;font-weight:700;letter-spacing:-.2px}.brand span{font-size:12px;color:var(--muted);font-weight:400;margin-left:14px;letter-spacing:0}.site-header nav{display:flex;gap:30px;font-size:13px}.site-header nav a{padding:10px 0}.overline{font-size:12px;color:#666666;letter-spacing:.4px;margin:0 0 14px}.desk-hero{background:#f2f8fd;position:relative;overflow:hidden;border-bottom:1px solid #e1edf6;--dx:0px;--dy:0px}.desk-scene{height:720px;max-width:1220px;margin:auto;position:relative;isolation:isolate}.desk-object{position:absolute;transition:transform .6s ease-out}.resume-paper{background:#fff;width:310px;height:402px;left:80px;top:35px;padding:29px 27px;transform:translate(var(--dx),var(--dy)) rotate(-16deg);box-shadow:2px 5px 1px #dbe6ee,10px 18px 34px #3e63830d;color:#6c7e8c;z-index:-1}.paper-heading{font-size:17px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.paper-heading span{font-size:9px;letter-spacing:.4px;font-weight:400}.paper-name{font-size:25px;font-weight:700;margin-top:24px;color:#345267}.paper-name small{font-size:9px;letter-spacing:.4px;margin-left:9px;font-weight:400}.resume-paper p{font-size:9px;line-height:1.8}.paper-line{border-top:1px solid #e2e2e2;margin:17px 0}.resume-paper h3{font-size:11px;margin:0 0 9px}.paper-row{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e2e2e2;padding:7px 0;font-size:9px}.paper-row strong{font-weight:400}.paper-sign{font-size:18px;text-align:right;margin-top:15px;letter-spacing:.4px}.identity-card{right:95px;top:49px;width:207px;padding:35px 20px 20px;background:#e1f1ff;border:5px solid #fff;border-radius:12px;box-shadow:8px 12px 20px #3d678512;transform:translate(calc(var(--dx)*-.7),calc(var(--dy)*-.7)) rotate(13deg);text-align:center;z-index:1}.badge-clip{position:absolute;width:53px;height:8px;background:#9fc9e9;border-radius:10px;top:12px;left:calc(50% - 26px)}.badge-top{color:#526f85;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.4px;color:#526f85;margin-bottom:15px}.identity-card img{width:82px;height:115px;display:block;margin:0 auto 13px;border-radius:4px}.identity-card>strong{color:#222222;font-size:21px;display:block;letter-spacing:.4px}.badge-english{color:#526f85;font-size:9px;letter-spacing:.4px;display:block;margin-top:5px}.badge-rule{width:27px;border-bottom:1px solid #aacce4;margin:13px auto}.identity-card>small{font-size:9px;color:#526f85}.mini-window{left:115px;top:466px;width:315px;border:6px solid #dceefd;background:#dceefd;border-radius:11px;box-shadow:5px 12px 20px #3d67850d;transform:translate(calc(var(--dx)*-.5),calc(var(--dy)*-.5)) rotate(-11deg);z-index:-1;overflow:hidden}.window-bar{display:flex;align-items:center;gap:4px;height:20px;padding:0 6px 5px}.window-bar i{width:4px;height:4px;background:#8fbddd;border-radius:50%}.window-bar span{font-size:7px;letter-spacing:.5px;margin-left:auto;color:#536f83}.mini-window img{display:block;width:100%;height:174px;object-fit:cover;object-position:top;opacity:1;border-radius:4px}.intro-card{position:absolute;left:50%;top:200px;width:515px;transform:translateX(-50%) rotate(-5deg);border-radius:13px;padding:38px 40px 34px;background:#fff;box-shadow:1px 3px 0 #dfeaf3,12px 24px 55px #3b678312;z-index:3;animation:card-arrive .85s ease-out both}.intro-label{font-size:11px;letter-spacing:.8px;margin:0 0 19px;color:#666666}.intro-card h1{font-size:32px;font-weight:400;letter-spacing:0;line-height:1.5;margin:0}.intro-card h1 strong{font-weight:700;border-bottom:3px solid #a6d9fc}.intro-description{font-size:13px;color:#666666;margin:16px 0 26px;line-height:1.8}.intro-links{display:flex;gap:26px;font-size:12px}.intro-links a{border-bottom:1px solid #bbbbbb;padding:0 0 6px}.intro-links span{margin-left:8px}.card-mark{position:absolute;right:33px;bottom:28px;font-family:inherit;font-size:22px;font-weight:400;color:#5da6dc}.project-folder{right:128px;top:493px;width:260px;height:175px;transform:translate(calc(var(--dx)*.8),calc(var(--dy)*.8)) rotate(10deg);z-index:2}.project-folder:hover{transform:translateY(-9px) rotate(7deg);text-decoration:none}.folder-front{position:absolute;inset:25px 0 0;background:#a9dbff;border-radius:7px 7px 11px 11px;box-shadow:5px 10px 20px #3d678510;padding:28px 24px;color:#21465f}.folder-front:before{content:'';position:absolute;left:0;top:-17px;width:105px;height:25px;border-radius:9px 12px 0 0;background:#a9dbff}.folder-front>span:first-child{font-size:8px;letter-spacing:.4px;display:block;position:relative}.folder-front strong{font-size:20px;display:block;margin:12px 0 7px}.folder-front small{font-size:9px}.folder-arrow{position:absolute;right:22px;bottom:20px;font-size:20px}.folder-sheet{background:#fff;position:absolute;inset:4px 9px 20px;border-radius:5px;box-shadow:0 0 0 1px #dbe8f2}.sheet-one{transform:rotate(-8deg);top:-6px}.sheet-two{transform:rotate(1deg)}.hero-bottom{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:0 0 26px;gap:20px;font-size:10px;letter-spacing:.2px;color:#666666}.hero-bottom a{padding:5px 0}.hero-bottom a span{margin-left:9px}.section-heading{text-align:center;margin:0 0 48px}.section-heading h2{font-size:29px;letter-spacing:-.2px;line-height:1.5;margin:0;font-weight:700}.section-heading>p:last-child:not(.overline){font-size:13px;color:var(--muted);margin:15px 0 0;line-height:1.8}.about-section,.career-section,.projects-section,.education-section{max-width:1060px;margin:auto;padding:96px 25px}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.expertise-image{display:block;position:relative;height:218px;background:#eff7fd;border-radius:12px;overflow:hidden;border:1px solid #dfebf4;padding:27px 0 0 25px}.expertise-image img{width:135%;height:auto;display:block;border-radius:6px;box-shadow:0 5px 14px #0000000a;transition:transform .3s;}.expertise-image:hover img{transform:translate(-5px,-4px)}.expertise-image>span{position:absolute;left:18px;bottom:13px;font-size:9px;background:#ffffffed;padding:6px 9px;border-radius:4px;letter-spacing:.4px}.expertise-grid h3{font-size:18px;line-height:1.6;letter-spacing:-.2px;margin:22px 0 10px}.expertise-grid p{font-size:14px;line-height:1.95;color:var(--muted);margin:0;word-break:keep-all}.career-section{max-width:850px;padding-top:65px}.career-list{border-top:1px solid var(--line)}.career-entry{padding:35px 0 35px 190px;position:relative;border-bottom:1px solid var(--line)}.career-entry:before{content:'';width:8px;height:8px;background:#aaaaaa;border-radius:50%;position:absolute;left:1px;top:43px}.career-entry:first-child:before{background:#6db8ee;box-shadow:0 0 0 4px #eef8ff}.career-heading h3{font-size:21px;letter-spacing:-.2px;margin:0 0 10px}.career-heading p{font-size:12px;color:var(--muted);margin:0}.career-heading time{position:absolute;left:23px;top:39px;font-size:12px;color:#666666;white-space:nowrap}.career-summary{font-size:13px;line-height:1.8;color:#666666;margin:16px 0 15px}.career-more summary{font-size:12px;color:#25648f;cursor:pointer;list-style:none;display:inline-flex;gap:25px;align-items:center}.career-more summary::-webkit-details-marker{display:none}.career-more summary span{font-size:19px;line-height:1;transition:transform .2s}.career-more[open] summary span{transform:rotate(45deg)}.career-more>div{padding-top:14px}.career-entry ul{margin:0;padding-left:17px;font-size:12px;line-height:2.1;color:#666666}.career-links{display:flex;gap:17px;margin-top:15px;font-size:11px}.career-links a{border-bottom:1px solid #bbbbbb;padding-bottom:3px}.freelance{margin-top:25px;padding-left:190px}.freelance span{font-size:10px;color:#666666}.freelance p{font-size:12px;color:#666666;line-height:1.8}.projects-section{max-width:1130px;border-top:1px solid var(--line);padding-top:80px}.project-browser{display:grid;grid-template-columns:225px minmax(0,1fr);gap:33px;align-items:start}.project-tabs{border:1px solid #e0eaf2;border-radius:12px;padding:7px;background:#fff}.project-tab{width:100%;background:transparent;border:0;border-radius:7px;padding:17px 12px;display:grid;grid-template-columns:23px 1fr 14px;text-align:left;gap:7px;align-items:center;cursor:pointer}.project-tab+.project-tab{margin-top:3px}.tab-number{font-size:9px;color:#aaaaaa;align-self:start;margin-top:5px}.tab-name{font-size:15px;font-weight:700;letter-spacing:-.2px}.tab-name small{display:block;font-size:10px;font-weight:400;color:#666666;letter-spacing:0;margin-top:6px}.tab-arrow{font-size:16px;color:#aaaaaa}.project-tab:hover{background:#f1f8fe}.project-tab[aria-selected=true]{background:#e1f2ff;color:#21465f;box-shadow:inset 3px 0 0 #66b6ee}.project-tab[aria-selected=true] .tab-name small,.project-tab[aria-selected=true] .tab-number,.project-tab[aria-selected=true] .tab-arrow{color:#476e89}.project-panel{min-width:0}.project-caption{font-size:10px;display:flex;justify-content:space-between;gap:12px;margin:0 0 12px;color:#666666}.screen-button{width:100%;padding:15px;background:#f0f7fc;border:1px solid #dfebf4;border-radius:12px;cursor:zoom-in;display:block;overflow:hidden}.screen-button img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.project-description{padding:25px 0 0}.project-description h3{font-size:23px;font-weight:700;line-height:1.5;margin:0 0 13px;letter-spacing:-.2px}.project-description>p{font-size:13px;color:#666666;line-height:1.9;max-width:650px;margin:0}.tech-line{font-size:11px;color:#666666;line-height:1.9;margin:17px 0 22px}.project-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.launch{display:inline-flex;gap:25px;align-items:center;background:var(--accent-soft);color:#194462;padding:13px 20px;font-size:12px;border:1px solid #b1daf6;border-radius:6px}.launch:hover{background:var(--accent-hover);text-decoration:none}.read-more{font-size:12px;color:#25648f;border-bottom:1px solid #b1d1e8;padding-bottom:3px}.account{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:12px}.account summary{cursor:pointer;color:#666666}.account p{line-height:1.9;color:#666666;font-size:12px}.account code{color:#34556c;padding:3px 6px;background:#eef6fc;font:inherit;border-radius:3px}.account dl{display:flex;gap:25px;flex-wrap:wrap;margin:15px 0}.account dl>div{display:flex;gap:12px}.account dt{color:#666666}.account dd{margin:0}.app-note{font-size:12px;color:var(--muted);line-height:1.8;margin:17px 0 0}.project-footnote{padding-top:20px;margin-top:28px;font-size:11px;color:#666666;line-height:1.9;text-align:center}.education-section{max-width:850px;padding-top:60px}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;border-top:1px solid var(--line);padding:35px 0}.education-grid article>span{font-size:11px;color:#666666}.education-grid h3{font-size:20px;margin:17px 0 12px}.education-grid p{font-size:13px;line-height:2;color:#666666}.contact-section{background:#eef8ff;color:#253440;text-align:center;padding:73px 20px 80px}.contact-section .overline{color:#5f7f97}.contact-section h2{font-size:31px;letter-spacing:-.2px;margin:0 0 15px}.contact-section>p:not(.overline){font-size:12px;color:#5f7f97;margin:0 0 24px}.contact-section>a{font-size:22px;border-bottom:1px solid #a9cfe9;padding-bottom:8px;display:inline-block}.contact-section>a span{margin-left:22px}.site-footer{max-width:1120px;margin:auto;display:flex;gap:30px;justify-content:space-between;padding:27px 20px;color:#666666;font-size:10px}.skip{position:absolute;left:15px;top:-80px;background:white;padding:12px;z-index:100}.skip:focus{top:15px}dialog{border:0;border-radius:10px;padding:20px;width:min(94vw,1500px);max-height:94vh;background:#fafafa;color:#222222}dialog::backdrop{background:#171717d9}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.viewer-toolbar p{font-size:13px;margin:0}.viewer-toolbar button{font-size:12px;padding:8px 13px;background:none;border:1px solid #bbbbbb;border-radius:5px;cursor:pointer}dialog>img{width:100%;display:block;max-height:77vh;object-fit:contain}.viewer-hint{font-size:11px;color:var(--muted);margin:13px 0 0}
#detail{max-width:1160px;padding:0 35px;margin:auto}.detail-intro{padding:50px 0 38px}.back-link{font-size:12px;color:var(--muted)}.detail-intro .overline{margin-top:40px;margin-bottom:17px}.detail-intro h1{font-size:44px;font-weight:400;letter-spacing:-.2px;margin:0 0 15px}.detail-intro h1 span{display:block;font-size:25px;font-weight:400;letter-spacing:-.2px;margin-top:17px}.detail-description{font-size:15px;line-height:1.9;color:var(--muted);max-width:750px;margin:21px 0 24px}.detail-top-meta{display:flex;gap:26px;color:var(--muted);font-size:12px;margin-top:20px}.detail-shot{padding:25px;background:#f0f7fc;border-radius:12px}.full-screen{display:block;width:100%;height:auto;border:1px solid #e2e2e2;border-radius:5px}.detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 70px;padding:25px 0 50px}.detail-grid section{border-bottom:1px solid var(--line);padding:24px 0}.detail-grid h2{font-size:19px;margin:0 0 20px}.detail-grid p,.detail-grid li{font-size:14px;color:var(--muted);line-height:1.95}.detail-grid ul{padding-left:19px}.detail-grid .account{border:0;padding:0}.detail-contact{display:flex;justify-content:space-between;padding:25px 0 45px;font-size:13px}.detail-contact a{border-bottom:1px solid #bbbbbb;padding-bottom:4px}
@keyframes card-arrive{from{opacity:0;transform:translate(-50%,22px) rotate(-2deg)}to{opacity:1;transform:translate(-50%,0) rotate(-5deg)}}
@media(max-width:1000px){.resume-paper{left:15px;top:55px;transform:scale(.88) rotate(-16deg)}.identity-card{right:25px;top:65px;transform:scale(.9) rotate(13deg)}.mini-window{left:40px;top:470px}.project-folder{right:40px;top:510px}.hero-bottom{padding-left:28px;padding-right:28px}.desk-scene{height:740px}.expertise-image{height:180px}.expertise-grid{gap:20px}.project-browser{grid-template-columns:200px minmax(0,1fr);gap:25px}}
@media(max-width:680px){html{scroll-padding-top:85px}.site-header{height:67px;padding:0 20px}.brand{font-size:16px}.brand span{display:none}.site-header nav{gap:19px;font-size:11px}.desk-scene{height:660px}.resume-paper{left:-55px;top:-37px;transform:scale(.61) rotate(-15deg)}.identity-card{right:-33px;top:-5px;transform:scale(.66) rotate(14deg)}.intro-card{top:228px;width:calc(100% - 47px);max-width:440px;padding:29px 26px 28px;border-radius:9px}.intro-label{font-size:10px;margin-bottom:15px}.intro-card h1{font-size:26px;letter-spacing:0;line-height:1.55}.intro-description{font-size:12px;margin:14px 0 22px;word-break:keep-all}.intro-links{font-size:10px;gap:19px}.card-mark{font-size:20px;right:22px;bottom:25px}.mini-window{left:-51px;top:470px;transform:scale(.63) rotate(-11deg)}.project-folder{right:-42px;top:492px;transform:scale(.65) rotate(10deg)}.project-folder:hover{transform:scale(.65) rotate(7deg)}.hero-bottom{font-size:9px;padding:0 20px 20px}.hero-bottom>span{display:none}.hero-bottom>a:last-child{font-size:9px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:25px}.section-heading>p:last-child:not(.overline){font-size:11px}.overline{font-size:10px}.about-section,.career-section,.projects-section,.education-section{padding:60px 24px}.expertise-grid{grid-template-columns:1fr;gap:32px}.expertise-image{height:210px;padding:25px 0 0 25px}.expertise-image img{width:115%}.expertise-grid h3{font-size:18px;margin:17px 0 9px}.expertise-grid p{font-size:12px}.career-entry{padding:28px 0 28px 20px}.career-entry:before{top:33px;width:6px;height:6px}.career-heading time{position:static;display:block;font-size:10px;margin-top:13px}.career-heading h3{font-size:20px}.career-heading p{font-size:11px}.career-summary{font-size:12px}.career-entry ul{font-size:11px}.freelance{padding-left:20px}.freelance p{font-size:11px}.project-browser{grid-template-columns:1fr;gap:23px}.project-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:5px}.project-tab{padding:13px 10px;gap:5px;grid-template-columns:18px 1fr 12px}.project-tab+.project-tab{margin:0}.tab-name{font-size:14px}.tab-name small{font-size:9px}.tab-number{font-size:9px;margin-top:3px}.tab-arrow{font-size:13px}.screen-button{padding:8px;border-radius:8px}.project-caption{font-size:9px}.project-description{padding-top:20px}.project-description h3{font-size:20px}.project-description>p{font-size:12px}.project-actions{gap:20px}.launch{font-size:11px;padding:12px 15px}.read-more{font-size:11px}.account dl{display:block}.account dl>div{margin:10px 0}.project-footnote{font-size:10px}.education-grid{grid-template-columns:1fr 1fr;gap:20px;padding-top:25px}.education-grid h3{font-size:17px}.education-grid p{font-size:11px}.contact-section{padding:55px 20px}.contact-section>a{font-size:19px}.site-footer{font-size:9px;gap:12px;padding-top:24px}#detail{padding:0 22px}.detail-intro{padding-top:25px}.detail-intro h1{font-size:40px}.detail-intro h1 span{font-size:22px}.detail-description{font-size:13px}.detail-top-meta{font-size:11px;flex-wrap:wrap;gap:10px}.detail-shot{padding:8px}.detail-grid{grid-template-columns:1fr;gap:0;padding:12px 0 28px}.detail-grid h2{font-size:18px}.detail-grid p,.detail-grid li{font-size:13px}.detail-contact{font-size:11px;gap:15px}dialog{padding:13px}.viewer-toolbar p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{.site-header,.desk-hero,.project-tabs,.project-actions,.account,.site-footer a{display:none}.career-more>div{display:block}.section-heading{text-align:left}.about-section,.career-section,.projects-section,.education-section{padding:25px 0}.project-browser{display:block}.contact-section{background:none;padding:20px}}

.groupware-feature{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center;margin-top:45px;padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.groupware-feature-image{display:block;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:white}.groupware-feature-image img{display:block;width:100%;height:auto}.groupware-feature .overline{margin-bottom:10px}.groupware-feature h3{font-size:23px;letter-spacing:-.2px;line-height:1.5;margin:0 0 13px}.groupware-feature p:not(.overline){font-size:13px;line-height:1.95;color:var(--muted);margin:0 0 22px}.detail-gallery{padding:20px 0 35px}.detail-gallery>h2{font-size:25px;letter-spacing:-.2px}.detail-gallery>p{color:var(--muted);font-size:13px;line-height:1.8}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 24px;margin-top:24px}.gallery-grid figure{margin:0;min-width:0}.gallery-grid figcaption{font-size:15px;font-weight:700;line-height:1.7;margin-top:13px}.gallery-grid figcaption span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.detail-notes{border-top:1px solid var(--line);padding:30px 0}.detail-notes>h2{font-size:25px;letter-spacing:-.2px;margin:0 0 26px}.detail-notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.detail-notes h3{font-size:16px;line-height:1.7;margin:0 0 12px}.detail-notes p{font-size:13px;line-height:1.95;color:var(--muted);margin:0}.detail-grid li+li{margin-top:5px}.detail-intro h1{overflow-wrap:anywhere}
@media(max-width:680px){.groupware-feature{grid-template-columns:1fr;gap:23px;padding:18px;margin-top:32px}.groupware-feature h3{font-size:20px}.groupware-feature p:not(.overline){font-size:12px}.gallery-grid,.detail-notes-grid{grid-template-columns:1fr}.detail-gallery>h2,.detail-notes>h2{font-size:22px}.detail-notes-grid{gap:25px}}

.gallery-grid .screen-wide{grid-column:1/-1}.gallery-grid .screen-mobile .screen-button img{aspect-ratio:7/12;max-height:480px}.gallery-grid .screen-wide .screen-button img{aspect-ratio:8/5}

/* Typography and spacing, November 2026. Fonts are served with the site. */
@font-face{font-family:'SUIT';src:url('fonts/SUIT-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Wanted Sans';src:url('fonts/WantedSansVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Manrope';src:url('fonts/Manrope-Variable.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{
 --font-body:'SUIT','Apple SD Gothic Neo',sans-serif;
 --font-display:'Wanted Sans','SUIT',sans-serif;
 --font-numeric:'Manrope','SUIT',sans-serif;
 font-family:var(--font-body);font-size:16px;
 --ink:#202d39;--muted:#5c6a76;--line:#dfe8ef;
 --accent:#176ba6;--paper:#f5f9fc;
 color:var(--ink);text-rendering:optimizeLegibility;
}
body{font-weight:430;letter-spacing:-.015em;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);word-break:keep-all;letter-spacing:-.035em}
p{word-break:keep-all;overflow-wrap:break-word}
button,input,summary{font-family:var(--font-body)}
a,button,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:var(--accent);border-radius:4px}
.site-header{height:84px;border-bottom-color:#e7eef3;padding-inline:max(32px,calc((100vw - 1160px)/2))}
.brand{font-family:var(--font-display);font-size:23px;font-weight:780;letter-spacing:-.055em;white-space:nowrap}
.brand span{font-family:var(--font-body);font-size:12px;font-weight:450;letter-spacing:-.02em;margin-left:17px;color:#667581}
.site-header nav{font-size:14px;gap:36px;font-weight:600}
.site-header nav a{position:relative;padding-block:14px}
.site-header nav a:hover{text-decoration:none;color:var(--accent)}
.site-header nav a:after{content:'';height:2px;position:absolute;inset:auto 0 5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.site-header nav a:hover:after{transform:scaleX(1)}
.overline,.intro-label,.badge-top,.badge-english,.paper-heading span,.paper-name small,.folder-front>span:first-child,.window-bar span{font-family:var(--font-numeric);font-weight:650;letter-spacing:.075em}
.overline{font-size:11px;color:#557387;margin-bottom:18px}
.desk-hero{background:#f2f8fd}
.desk-scene{height:735px}
.intro-card{width:590px;top:220px;padding:39px 42px 38px;border-radius:8px;transform:translateX(-50%) rotate(-3deg);box-shadow:0 2px 0 #e3eaf0,10px 20px 55px #42627d12}
.intro-label{font-size:10px;margin-bottom:27px;color:#658196}
.intro-card h1{margin:0;font-size:34px;font-weight:500;line-height:1.3;letter-spacing:-.055em}
.hero-greeting{display:block;font-family:var(--font-body);font-size:25px;font-weight:420;letter-spacing:-.04em;margin-bottom:9px}
.hero-name{display:block;white-space:nowrap;line-height:1.45}
.intro-card h1 strong{font-size:52px;font-weight:800;border:0;letter-spacing:-.065em;position:relative;margin-inline:2px}
.intro-card h1 strong:after{content:'';position:absolute;inset:auto -1px 2px;height:7px;background:#b8e1ff;z-index:-1;transform:rotate(-1deg)}
.intro-description{font-size:15px;line-height:1.8;letter-spacing:-.025em;color:#566671;margin:21px 0 29px;max-width:390px}
.intro-links{font-size:13px;font-weight:650;gap:27px}
.intro-links a{border-bottom-color:#c3d3df;padding-bottom:8px}
.card-mark{font-family:var(--font-numeric);font-size:30px;letter-spacing:-.09em;font-weight:500;right:35px;bottom:31px;color:#73a4c5}
.resume-paper{color:#6f7f8c;box-shadow:1px 4px 0 #dce6ee,8px 15px 32px #3e63830b}
.paper-name{font-family:var(--font-display);font-weight:750;font-size:29px;letter-spacing:-.04em}
.paper-row{font-family:var(--font-numeric);font-size:10px}
.paper-sign{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.04em}
.identity-card>strong{font-family:var(--font-display);font-size:25px;font-weight:780;letter-spacing:-.045em}
.badge-english{font-size:9px;letter-spacing:.12em}
.identity-card>small{font-size:10px;letter-spacing:-.025em}
.folder-front strong{font-family:var(--font-display);font-size:23px;font-weight:750;letter-spacing:-.04em}
.folder-front small{font-family:var(--font-numeric);font-size:10px;letter-spacing:-.01em}
.hero-bottom{max-width:1160px;font-size:11px;padding-bottom:28px;letter-spacing:0}
.hero-bottom>a:last-child{font-family:var(--font-numeric);font-size:11px}
.about-section,.career-section,.projects-section,.education-section{max-width:1160px;padding:102px 24px}
.section-heading{text-align:left;margin-bottom:43px}
.section-heading h2{font-size:38px;line-height:1.3;font-weight:750;letter-spacing:-.045em}
.section-heading>p:last-child:not(.overline){font-size:15px;line-height:1.8;margin-top:16px}
.expertise-grid{gap:30px}
.expertise-image{height:232px;border-radius:9px;background:#edf6fd;border-color:#e3ecf3;padding:27px 0 0 25px}
.expertise-image>span{font-family:var(--font-numeric);font-size:10px;font-weight:650;letter-spacing:.025em;padding:7px 10px}
.expertise-grid h3{font-size:23px;line-height:1.4;font-weight:700;margin:25px 0 13px}
.expertise-grid p{font-size:15px;line-height:1.9;letter-spacing:-.02em;color:var(--muted)}
.groupware-feature{grid-template-columns:1.1fr 1fr;gap:42px;margin-top:55px;padding:32px;border-radius:10px;background:#f5f9fc}
.groupware-feature h3{font-size:29px;font-weight:720;letter-spacing:-.04em;line-height:1.4}
.groupware-feature p:not(.overline){font-size:15px;line-height:1.85;margin:18px 0 24px}
.groupware-feature .overline{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:0}
.career-section{max-width:1040px;padding-top:45px}
.career-list{border-top:2px solid #2b4152}
.career-entry{padding:38px 0 38px 225px;border-color:#e3ebf0}
.career-entry:before{display:none}
.career-heading h3{font-size:28px;font-weight:740;letter-spacing:-.035em;margin-bottom:10px}
.career-heading p{font-size:14px;font-weight:500;color:#687681}
.career-heading time{left:0;top:38px;width:190px;font-family:var(--font-numeric);white-space:normal}
.career-start{display:block;font-size:27px;line-height:1.3;font-weight:550;letter-spacing:-.045em;color:#314759}
.career-end{display:block;font-family:var(--font-body);font-size:13px;line-height:1.5;margin-top:8px;letter-spacing:0;color:#6a7c89}
.career-entry:first-child .career-end{color:#176ba6}
.career-summary{font-size:16px;font-weight:450;color:#4f606d;line-height:1.7;margin:19px 0}
.career-more summary{font-size:13px;font-weight:650;gap:16px;min-height:30px}
.career-entry ul,.detail-grid ul{list-style:none;padding-left:0}
.career-entry li,.detail-grid li{padding-left:14px;border-left:2px solid #d9e8f3;margin:12px 0;font-size:14px;line-height:1.8}
.career-links{font-family:var(--font-numeric);font-size:12px;gap:20px}
.freelance{padding-left:225px;margin-top:30px}
.freelance span{font-size:12px}.freelance p{font-size:14px;line-height:1.8}
.projects-section{padding-top:85px}
.project-browser{grid-template-columns:250px minmax(0,1fr);gap:38px}
.project-tabs{padding:6px;border-radius:9px;border-color:#e1eaf1}
.project-tab{padding:18px 13px;grid-template-columns:24px 1fr 14px;border-radius:5px;gap:8px}
.tab-number{font-family:var(--font-numeric);font-size:11px;font-weight:550;margin-top:4px;color:#7f95a5}
.tab-name{font-family:var(--font-numeric),var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.03em}
.tab-name small{font-family:var(--font-body);font-size:12px;font-weight:450;letter-spacing:-.02em;margin-top:5px;color:#6f7f8a}
.project-tab[aria-selected=true]{background:#ebf5fd;color:#155b89;box-shadow:inset 3px 0 0 #64b3e9}
.project-caption{font-size:12px;color:#617381;line-height:1.5;margin-bottom:13px;flex-wrap:wrap}
.caption-divider{display:inline-block;height:10px;border-left:1px solid #c0d0dc;margin:0 10px}
.screen-button{padding:12px;border-radius:9px;background:#f1f7fc;border-color:#deebf4}
.project-description{padding-top:27px}
.project-description h3{font-size:29px;line-height:1.45;font-weight:730;letter-spacing:-.04em;margin-bottom:15px}
.project-description>p{font-size:16px;line-height:1.85;color:#5c6a76}
.tech-line{display:flex;flex-wrap:wrap;gap:7px;margin:21px 0 25px}
.tech-tag{font-family:var(--font-numeric);font-size:11px;font-weight:550;background:#f5f8fa;border:1px solid #e3ebf1;border-radius:4px;padding:5px 9px;color:#566b7b;letter-spacing:-.01em}
.project-actions{gap:25px}
.launch{font-size:14px;font-weight:650;padding:14px 21px;border-radius:5px;background:#d6edff;border-color:#b7daf3;color:#205678;transition:background .2s,transform .2s}
.launch:hover{background:#c2e5ff;transform:translateY(-2px)}
.read-more{font-size:13px;font-weight:600;line-height:1.6}
.account{padding-top:20px;margin-top:25px;font-size:14px}.account summary{font-size:14px;font-weight:600;color:#3e5668}
.account p{font-size:13px;line-height:1.9}.account dl{gap:22px;margin:18px 0}.account dl>div{align-items:center;gap:12px}
.account code{font-family:var(--font-numeric);font-size:13px;font-weight:600;padding:5px 9px;background:#eef5fa;letter-spacing:0}
.app-note{font-size:14px}.project-footnote{font-size:12px;text-align:left;padding-top:22px;color:#758590}
.education-section{max-width:1040px;padding-top:55px}
.education-grid{gap:60px;padding-top:35px}
.education-grid article>span{font-family:var(--font-numeric);font-size:12px;letter-spacing:0;color:#6b7f8e}
.education-grid h3{font-size:27px;font-weight:700;letter-spacing:-.04em;margin:18px 0 13px}
.education-grid p{font-size:16px;line-height:1.9}
.contact-section{padding:85px 24px 90px;background:#edf7fe}
.contact-section h2{font-size:49px;font-weight:750;letter-spacing:-.06em;margin-bottom:15px}
.contact-section>p:not(.overline){font-size:14px;margin-bottom:25px}
.contact-section>a{font-family:var(--font-numeric);font-size:34px;letter-spacing:-.055em;font-weight:500;padding-bottom:10px;border-bottom-color:#a9cde5}
.site-footer{max-width:1160px;font-family:var(--font-numeric);font-size:11px;padding-block:29px;letter-spacing:0}
#detail{max-width:1160px}
.detail-intro{padding:55px 0 47px}.back-link{font-size:13px}
.detail-intro .overline{font-size:12px;font-family:var(--font-body);letter-spacing:0;margin-top:44px}
.detail-intro h1{font-family:var(--font-numeric),var(--font-display);font-size:58px;font-weight:650;letter-spacing:-.055em;line-height:1.15}
.detail-intro h1 span{font-family:var(--font-display);font-size:29px;font-weight:500;line-height:1.5;letter-spacing:-.025em;margin-top:19px}
.detail-description{font-size:17px;line-height:1.85;max-width:790px;margin:22px 0 29px}
.detail-top-meta{font-family:var(--font-numeric);font-size:12px;line-height:1.8;flex-wrap:wrap;gap:8px 24px}
.detail-grid{gap:15px 60px;padding-top:35px}
.detail-grid section{padding:30px 0}
.detail-grid h2{font-size:24px;font-weight:700;letter-spacing:-.04em;margin-bottom:20px}
.detail-grid p,.detail-grid li{font-size:16px;line-height:1.85}
.detail-grid .account p{font-size:14px}
.detail-gallery>h2,.detail-notes>h2{font-size:30px;font-weight:720;letter-spacing:-.04em}
.detail-gallery>p{font-size:15px;line-height:1.8}.gallery-grid{gap:38px 28px}
.gallery-grid figcaption{font-family:var(--font-display);font-size:20px;font-weight:650;letter-spacing:-.03em;margin-top:17px}
.gallery-grid figcaption span{font-family:var(--font-body);font-size:14px;line-height:1.8;font-weight:430;letter-spacing:-.015em;margin-top:7px}
.detail-notes{padding:35px 0 40px}.detail-notes h3{font-size:20px;font-weight:650;line-height:1.5}
.detail-notes p{font-size:15px;line-height:1.85}
.detail-contact{font-size:14px;padding:32px 0 48px;flex-wrap:wrap;gap:20px}
.viewer-toolbar p{font-family:var(--font-display);font-size:17px;font-weight:600}.viewer-toolbar button{font-size:13px}
@keyframes card-arrive{from{opacity:0;transform:translate(-50%,18px) rotate(-1deg)}to{opacity:1;transform:translate(-50%,0) rotate(-3deg)}}
@media(max-width:1000px){
 .intro-card{width:550px}.intro-card h1 strong{font-size:48px}.intro-card h1{font-size:31px}
 .expertise-grid{gap:22px}.expertise-image{height:190px}.expertise-grid h3{font-size:21px}
 .groupware-feature{gap:28px;padding:25px}.groupware-feature h3{font-size:25px}
 .project-browser{grid-template-columns:225px minmax(0,1fr);gap:27px}
 .tab-name{font-size:16px}.project-description h3{font-size:26px}
}
@media(max-width:680px){
 html{scroll-padding-top:87px}.site-header{height:72px;padding-inline:20px}.brand{font-size:21px}.site-header nav{font-size:12px;gap:20px}
 .desk-scene{height:668px}.intro-card{width:calc(100% - 40px);max-width:450px;top:223px;padding:28px 24px 29px;border-radius:7px}
 .intro-label{font-size:9px;letter-spacing:.07em;margin-bottom:20px}.hero-greeting{font-size:20px;margin-bottom:10px}
 .intro-card h1{font-size:clamp(19px,5.8vw,26px);letter-spacing:-.05em}.intro-card h1 strong{font-size:clamp(30px,8.6vw,40px);letter-spacing:-.065em}
 .intro-card h1 strong:after{height:5px;bottom:0}.intro-description{font-size:14px;line-height:1.65;margin:18px 0 24px;max-width:280px}
 .intro-links{font-size:12px;gap:23px}.card-mark{font-size:25px;right:22px;bottom:27px}
 .hero-bottom{font-size:10px;padding-inline:24px}.hero-bottom>a:last-child{font-size:10px}
 .about-section,.career-section,.projects-section,.education-section{padding:66px 23px}
 .overline{font-size:10px;letter-spacing:.06em;margin-bottom:15px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:29px;line-height:1.35}
 .section-heading>p:last-child:not(.overline){font-size:14px;line-height:1.75}
 .expertise-grid{gap:36px}.expertise-image{height:225px}.expertise-grid h3{font-size:24px;margin-top:22px}.expertise-grid p{font-size:15px}
 .groupware-feature{padding:20px;gap:25px;margin-top:40px}.groupware-feature h3{font-size:25px}.groupware-feature p:not(.overline){font-size:14px;line-height:1.85}
 .career-section{padding-top:30px}.career-entry{padding:29px 0}.career-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}
 .career-heading h3{font-size:25px}.career-heading p{font-size:13px}.career-heading time{width:auto;margin:0;flex-shrink:0;text-align:right}
 .career-start{font-size:21px;line-height:1.4}.career-end{font-size:11px;margin-top:5px}
 .career-summary{font-size:15px;margin:17px 0}.career-more summary{font-size:13px}.career-entry li{font-size:14px;line-height:1.85}
 .freelance{padding-left:0;margin-top:26px}.freelance p{font-size:13px}
 .project-browser{grid-template-columns:1fr;gap:25px}.project-tabs{gap:4px;padding:5px}.project-tab{padding:14px 10px;grid-template-columns:18px 1fr 12px;gap:6px}
 .tab-name{font-size:15px;letter-spacing:-.035em}.tab-name small{font-size:11px}.tab-number{font-size:10px}
 .project-caption{font-size:11px;gap:4px}.caption-divider{margin-inline:6px;height:9px}
 .screen-button{padding:7px}.project-description{padding-top:24px}.project-description h3{font-size:26px}.project-description>p{font-size:15px}
 .tech-line{gap:6px;margin:18px 0 23px}.tech-tag{font-size:10px;padding:4px 7px}.launch{font-size:13px;padding:13px 17px}.read-more{font-size:12px}
 .account{font-size:13px}.account dl{display:flex;gap:6px 22px}.account dl>div{margin:4px 0}.account code{font-size:12px}.account p{font-size:13px}
 .project-footnote{font-size:12px;line-height:1.8}.education-grid{gap:25px}.education-grid h3{font-size:24px}.education-grid p{font-size:14px}.education-grid article>span{font-size:11px}
 .contact-section{padding:65px 23px}.contact-section h2{font-size:40px}.contact-section>a{font-size:27px}.contact-section>a span{margin-left:14px}
 .site-footer{font-size:10px;padding:25px 23px;gap:13px;flex-wrap:wrap}
 #detail{padding-inline:23px}.detail-intro{padding:30px 0 35px}.detail-intro .overline{margin-top:32px;font-size:11px}
 .detail-intro h1{font-size:42px;line-height:1.2;letter-spacing:-.05em}.detail-intro h1 span{font-size:24px;line-height:1.5;margin-top:15px}
 .detail-description{font-size:16px;line-height:1.8}.detail-top-meta{font-size:11px;gap:7px}
 .detail-grid{grid-template-columns:1fr;padding-top:17px;gap:0}.detail-grid h2{font-size:23px}.detail-grid p,.detail-grid li{font-size:15px}
 .detail-gallery>h2,.detail-notes>h2{font-size:27px}.detail-gallery>p{font-size:14px}.gallery-grid{gap:30px}.gallery-grid figcaption{font-size:20px}.gallery-grid figcaption span{font-size:14px}
 .detail-notes h3{font-size:21px}.detail-notes p{font-size:15px}.detail-contact{font-size:13px}
 .viewer-toolbar p{font-size:14px}.viewer-toolbar button{font-size:12px}
}
@media(max-width:360px){.site-header nav{gap:13px}.intro-card{padding-inline:21px}.intro-links{font-size:11px;gap:16px}.card-mark{font-size:20px;right:18px}.contact-section>a{font-size:24px}.career-start{font-size:19px}.career-heading h3{font-size:23px}.tab-name{font-size:14px}.project-tab{padding-inline:7px}}

.visitor-counter{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.visitor-counter output{font-family:Manrope,SUIT,sans-serif;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;color:#263c52}
