:root{--black:#101012;--ink:#242328;--muted:#716b64;--line:#e3ddd5;--paper:#fcfbf8;--soft:#eef2ef;--mint:#cbded8;--mint-strong:#63877e;--lavender:#c86f48;--lavender-soft:#f3e1d6;--coral:#c86f48;--peach:#f1c2a3;--sage:#bfd0ce;--forest:#3e5e57;--sun:#f2d487;--shadow:0 20px 55px #43332921}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,Noto Sans SC,system-ui,sans-serif;overflow-x:hidden}img{display:block}::selection{background:var(--sun);color:var(--black)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.site-header{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fcfbf8e6;border-bottom:1px solid #e3ddd5c7;justify-content:space-between;align-items:center;gap:24px;padding:18px clamp(22px,7vw,86px);display:flex;position:sticky;top:0}.brand{border:2px solid var(--black);background:var(--black);color:#fff;border-radius:50%;place-items:center;width:46px;height:46px;font-weight:900;display:grid;box-shadow:0 8px 18px #10101229}.brand-mark{transform:rotate(-8deg)}.nav{scrollbar-width:none;align-items:center;gap:18px;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav-link{color:#5f625d;border-radius:999px;flex:none;padding:12px 21px;font-size:15px;font-weight:800;transition:color .2s,background .2s,transform .2s}.nav-link:hover,.nav-link.active{background:var(--black);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px #1010121f}.section{width:min(1180px,100% - 44px);margin:0 auto;padding:72px 0}main section[id]{scroll-margin-top:96px}.hero{grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);align-items:center;gap:clamp(44px,5vw,72px);width:min(1240px,100% - 44px);min-height:min(740px,100svh - 142px);padding:clamp(48px,5vw,72px) 0 64px;display:grid}.hero-copy,.hero-visual{z-index:1;min-width:0;position:relative}.eyebrow{color:var(--coral);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:900}.hero .eyebrow{color:#a54f2c;align-items:center;gap:9px;margin-bottom:24px;display:inline-flex}.hero .eyebrow span{background:var(--coral);border-radius:50%;width:8px;height:8px}h1,h2,h3,p{margin-top:0}h1{color:var(--black);letter-spacing:0;margin-bottom:18px;font-family:Noto Serif SC,serif;font-size:clamp(43px,4.65vw,68px);font-weight:700;line-height:1.08}.hero-copy h1{white-space:nowrap}.hero-greeting{color:#292724;font-weight:500}.hero-name-en{letter-spacing:-.055em;margin-left:.04em;font-family:Inter,Noto Serif SC,serif;font-size:.8em;font-weight:700}.hero-statement{color:#282522;letter-spacing:0;margin-bottom:20px;font-family:Noto Serif SC,serif;font-size:clamp(29px,3vw,41px);font-weight:600;line-height:1.45}.role-list{flex-wrap:wrap;gap:0;margin-bottom:20px;display:flex}.role-list span{color:var(--forest);align-items:center;font-size:15px;font-weight:900;display:inline-flex}.role-list span+span:before{content:"×";color:var(--coral);margin:0 12px}.intro{color:#5f5a54;max-width:660px;margin-bottom:0;font-size:clamp(16px,1.4vw,18px);font-weight:500;line-height:1.78}.button{border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 26px;font-weight:900;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.button:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.button-primary{background:var(--black);color:#fff;box-shadow:0 12px 24px #10101224}.button-primary>span:first-child{font-size:18px}.button-ghost{border:1px solid var(--line);color:var(--black);background:0 0}.button-ghost:hover{background:#fff}.hero-profile-row{grid-template-columns:1fr;align-items:center;width:min(549px,100%);margin:26px 0 14px;display:grid}.contact-strip{background:#fffdf8;border:1px solid #dfd6cc;border-radius:7px;grid-template-columns:minmax(0,1.75fr) minmax(170px,.65fr);width:min(720px,100%);min-width:0;padding:0;display:grid;overflow:hidden;box-shadow:0 10px 26px #4333290e}.contact-item{border-right:1px solid #221e2817;min-width:0;padding:13px 15px}.contact-item:last-child{border-right:0}.contact-item span{color:#847b73;margin-bottom:7px;font-size:11px;font-weight:900;display:block}.contact-item strong{color:var(--black);white-space:nowrap;font-size:clamp(12px,.9vw,13px);font-weight:900;line-height:1.35;display:block}.contact-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.contact-value-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.contact-value-row a{min-width:0}.copy-button{width:30px;min-width:30px;height:30px;color:var(--forest);cursor:pointer;background:#eef4f1;border:1px solid #d8e3de;border-radius:999px;flex:none;padding:0;transition:color .2s,background .2s,border-color .2s,transform .2s;position:relative}.copy-button:before,.copy-button:after{content:"";border:1.5px solid;border-radius:2px;width:10px;height:12px;position:absolute}.copy-button:before{top:7px;left:8px}.copy-button:after{background:#eef4f1;top:10px;left:11px}.copy-button:hover{border-color:var(--forest);background:var(--forest);color:#fff;transform:translateY(-1px)}.copy-button:hover:after{background:var(--forest)}.copy-button[data-copied=true]{background:var(--sun);color:var(--black);border-color:#d5b95f}.copy-button[data-copied=true]:after{background:var(--sun)}.hero-visual{justify-self:end;width:min(430px,100%);display:grid}.cover-photo{aspect-ratio:4/5;background:#fffdf8;border:1px solid #dfd6cc;border-radius:8px;grid-template-rows:minmax(0,1fr) auto;gap:12px;width:100%;margin:0;padding:10px 10px 14px;display:grid;box-shadow:0 24px 56px #48322626}.cover-photo img{object-fit:cover;border-radius:4px;width:100%;height:100%;min-height:0}.cover-photo figcaption,.memory-frame figcaption{color:#4a453f;justify-content:space-between;align-items:center;gap:12px;display:flex}.cover-photo figcaption span{color:#777069;letter-spacing:.08em;font-size:9px;font-weight:800}.cover-photo figcaption strong{font-family:Noto Serif SC,serif;font-size:14px}.education-note{background:#fffdf8;border:1px solid #dfd6cc;border-radius:6px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:16px;min-height:140px;padding:16px 18px;display:grid;box-shadow:0 12px 30px #43332914}.education-icon{object-fit:contain;width:72px;height:72px}.education-details{min-width:0}.education-card-top{justify-content:space-between;align-items:center;gap:18px;margin-bottom:10px;display:flex}.education-label{color:#8b8178;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.education-year{background:var(--sun);color:#4d3f2d;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.university-en{color:#91877e;letter-spacing:.06em;margin-bottom:5px;font-size:9px;font-weight:800}.education-details>strong{color:var(--black);letter-spacing:0;margin-bottom:8px;font-family:Noto Serif SC,serif;font-size:25px;font-weight:700;line-height:1;display:block}.education-major{color:#514c47;margin-bottom:7px;font-size:12px;font-weight:800}.education-date{color:#8c837b;font-size:10px;font-weight:800}.resume-download{white-space:nowrap;border-radius:999px;width:auto;min-height:54px;padding:0 18px 0 23px}.hero-actions{justify-content:center;gap:12px;margin-top:22px;display:flex}.hero-actions .button{width:fit-content}.portfolio-link{white-space:nowrap;background:#fffdf8c7;border-color:#cfc6bd;min-height:54px;padding:0 16px 0 21px}.portfolio-link>span:first-child{font-size:16px}.button-arrow{background:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;display:grid}.download-arrow{color:var(--black)}.portfolio-arrow{background:var(--black);color:#fff}.memory-section{background:#f6eee6;border-top:1px solid #e4d8cc;border-bottom:1px solid #e4d8cc;padding:54px 0 66px;overflow:hidden}.memory-heading{justify-content:space-between;align-items:end;gap:30px;width:min(1180px,100% - 44px);margin:0 auto 30px;display:flex}.memory-heading .eyebrow{color:var(--coral)}.memory-heading h2{color:var(--black);letter-spacing:0;margin:0;font-family:Noto Serif SC,serif;font-size:clamp(34px,4vw,52px);font-weight:700;line-height:1.25}.memory-heading>p{color:#736c65;max-width:360px;margin:0;line-height:1.7}.memory-rail{width:100%;overflow:hidden}.memory-track{width:max-content;animation:46s linear infinite memory-scroll;display:flex}.memory-rail:hover .memory-track,.memory-rail:focus-within .memory-track{animation-play-state:paused}.memory-set{align-items:center;gap:18px;padding-right:18px;display:flex}.memory-frame{--frame-rotate:0deg;width:258px;height:320px;transform:rotate(var(--frame-rotate));background:#fffdf8;border:1px solid #e1d9cf;border-radius:6px;flex:0 0 258px;margin:0;padding:9px 9px 13px;transition:transform .25s,box-shadow .25s;box-shadow:0 18px 40px #49362a1f}.memory-frame:nth-child(2n){--frame-rotate:1.4deg}.memory-frame:nth-child(3n){--frame-rotate:-1.2deg}.memory-frame:hover{z-index:2;transform:translateY(-7px)rotate(0)scale(1.02);box-shadow:0 24px 48px #49362a2b}.memory-image,.memory-placeholder{border-radius:3px;width:100%;height:265px;position:relative;overflow:hidden}.memory-image img{object-fit:cover;width:100%;height:100%}.memory-frame figcaption{height:34px;padding:9px 4px 0}.memory-frame figcaption span{color:#9a8f85;font-size:10px;font-weight:900}.memory-frame figcaption strong{color:#514a44;font-family:Noto Serif SC,serif;font-size:13px}.memory-placeholder{--placeholder-bg:var(--peach);--placeholder-ink:var(--forest);--placeholder-fill:var(--sun);background:var(--placeholder-bg)}.placeholder-line{border:4px solid var(--placeholder-ink);border-left:0;border-radius:0 100px 100px 0;width:78%;height:34%;position:absolute;top:34px;right:-22px;transform:rotate(-11deg)}.placeholder-block{background:var(--placeholder-fill);clip-path:polygon(0 34%,38% 0,100% 22%,82% 100%,18% 84%);width:58%;height:52%;position:absolute;bottom:22px;right:24px}.memory-placeholder:after{content:"";border:4px solid var(--placeholder-ink);border-top:0;width:34%;height:42%;position:absolute;bottom:26px;left:22px;transform:rotate(8deg)}.memory-frame-coral .memory-placeholder{--placeholder-bg:#e7a17f;--placeholder-ink:#713d2f;--placeholder-fill:#f4d683}.memory-frame-sage .memory-placeholder{--placeholder-bg:#b9ceca;--placeholder-ink:#355650;--placeholder-fill:#f2e9d8}.memory-frame-yellow .memory-placeholder{--placeholder-bg:#f1d583;--placeholder-ink:#704b39;--placeholder-fill:#d77c58}.memory-frame-blue .memory-placeholder{--placeholder-bg:#b9ced0;--placeholder-ink:#415f5d;--placeholder-fill:#f1c19e}.memory-frame-ink .memory-placeholder{--placeholder-bg:#405b54;--placeholder-ink:#f2e9d8;--placeholder-fill:#d37450}@keyframes memory-scroll{to{transform:translate(-50%)}}.compact-section{min-height:auto;padding:56px 0 60px}.section-heading{grid-template-columns:minmax(180px,.55fr) minmax(260px,1fr) minmax(0,430px);align-items:end;gap:28px;margin-bottom:20px;display:grid}.section-heading>.eyebrow{grid-column:1}.section-heading>h2{grid-column:2}.section-heading h2,.about-copy h2{color:var(--black);letter-spacing:0;margin-bottom:0;font-family:Noto Serif SC,serif;font-size:clamp(34px,4vw,58px);font-weight:700;line-height:1.15}.section-heading>p:last-child:not(.eyebrow){max-width:430px;color:var(--muted);grid-column:3;line-height:1.7}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.case-card{isolation:isolate;border:1px solid var(--line);background:var(--paper);width:100%;min-height:244px;color:inherit;cursor:pointer;font:inherit;text-align:left;border-radius:8px;padding:24px;transition:transform .22s,box-shadow .22s,border-color .22s;position:relative;overflow:hidden}.case-card:after{content:"";background:var(--mint);opacity:.8;z-index:0;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-42px;right:-42px}.case-card>*{z-index:1;position:relative}.case-card:hover{z-index:2;border-color:var(--forest);box-shadow:var(--shadow);transform:scale(1.045)}.case-card:focus-visible{z-index:2;border-color:var(--forest);box-shadow:var(--shadow);outline:3px solid var(--coral);outline-offset:3px;transform:scale(1.045)}.case-card .tag{color:#365b53;background:#e2ece8;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;display:inline-flex}.case-card h3{color:var(--black);letter-spacing:0;margin:22px 0 12px;font-family:Noto Serif SC,serif;font-size:23px;font-weight:700;line-height:1.28}.case-card p{color:var(--muted);margin-bottom:24px;line-height:1.65}.case-card .meta{color:var(--forest);font-size:14px;font-weight:900;position:absolute;bottom:22px;left:24px}.skills-section{min-height:auto;padding:48px 0 52px}.skill-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.skill-cluster{border:1px solid var(--line);background:var(--soft);border-radius:8px;padding:28px}.skill-cluster h3{color:var(--forest);letter-spacing:0;margin-bottom:20px;font-family:Noto Serif SC,serif;font-size:26px;font-weight:700}.skill-cluster p{color:#4e615b;margin:0;font-size:16px;font-weight:700;line-height:1.8}.skill-cluster span{color:#4e615b;background:#fffdf8;border:1px solid #dde6e1;border-radius:999px;margin:0 8px 10px 0;padding:10px 14px;font-weight:800;display:inline-flex}.about-section{grid-template-columns:1.05fr .95fr;align-items:center;gap:42px;min-height:auto;padding:48px 0 52px;display:grid}.about-copy p:last-child{color:var(--muted);margin-top:22px;font-size:20px;line-height:1.85}.about-results{min-width:0}.about-stats{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.about-stats div{border:1px solid var(--line);background:#fffdf8;border-radius:8px;min-height:160px;padding:24px}.about-stats strong{color:var(--black);letter-spacing:0;margin-bottom:12px;font-family:Noto Serif SC,serif;font-size:46px;font-weight:700;line-height:1;display:block}.about-stats span{color:var(--muted);font-weight:800}.representative-account{color:var(--muted);justify-content:center;align-items:baseline;gap:4px;margin:24px 0 0;font-size:17px;line-height:1.6;display:flex}.representative-account strong{color:var(--coral);font-weight:700}.detail-dialog{overscroll-behavior:contain;border:1px solid var(--line);background:#fffdf8;border-radius:8px;width:min(680px,100% - 34px);max-height:calc(100dvh - 34px);padding:34px;overflow-y:auto;box-shadow:0 34px 90px #0000003d}.detail-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000059}.detail-dialog h2{color:var(--black);letter-spacing:0;margin-bottom:18px;font-family:Noto Serif SC,serif;font-size:clamp(30px,5vw,46px);font-weight:700}.detail-dialog p{color:var(--muted);line-height:1.75}.detail-dialog ul{color:#3f4248;margin:22px 0 0;padding-left:19px;line-height:1.85}.detail-dialog .dialog-project-link{color:var(--coral);overflow-wrap:anywhere;text-underline-offset:4px;margin-top:22px;font-weight:800;text-decoration:underline;display:inline-block}.dialog-close{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:50%;width:38px;height:38px;font-size:24px;line-height:1;transition:transform .2s,background .2s;position:absolute;top:18px;right:18px}.dialog-close:hover{background:var(--black);transform:rotate(4deg)scale(1.05)}.site-footer{border-top:1px solid var(--line);width:min(1180px,100% - 44px);color:var(--muted);justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:34px 0 46px;font-weight:800;display:flex}.site-footer strong{color:var(--black);font-size:24px}.site-footer a{color:var(--black)}@media (max-width:920px){.site-header{flex-direction:column;align-items:flex-start;padding:18px 22px}.hero,.about-section{grid-template-columns:1fr}.hero{gap:34px;min-height:auto;padding-bottom:62px}.hero-visual{justify-self:center;width:min(540px,100%)}.contact-strip{grid-template-columns:1fr}.contact-item{border-bottom:1px solid #221e2817;border-right:0}.contact-item:last-child{border-bottom:0}.memory-heading{flex-direction:column;align-items:flex-start}.section-heading{grid-template-columns:1fr;align-items:flex-start;gap:8px}.section-heading>.eyebrow,.section-heading>h2,.section-heading>p:last-child:not(.eyebrow){grid-column:1}.card-grid,.skill-board,.about-stats{grid-template-columns:1fr}.site-footer{flex-direction:column;align-items:flex-start}}@media (max-width:560px){.section{width:min(100% - 28px,1180px);padding:52px 0}.compact-section{padding:42px 0 48px}.skills-section,.about-section{padding:40px 0 44px}.representative-account{text-align:center;flex-wrap:wrap;margin-top:20px}.nav{width:100%}.nav-link{padding:10px 15px;font-size:14px}h1{font-size:46px}.hero{width:min(100% - 28px,1240px);padding:42px 0 52px}.hero-copy h1{font-size:clamp(27px,8.6vw,42px)}.hero-statement{font-size:clamp(28px,8vw,34px)}.intro{font-size:17px}.button{width:100%}.hero-profile-row{grid-template-columns:1fr;align-items:stretch;gap:12px;margin:24px 0 18px}.contact-strip{grid-template-columns:1fr}.contact-values{grid-template-columns:1fr;gap:8px}.contact-item{border-bottom:1px solid #221e2817;border-right:0;padding:13px 14px}.contact-item:last-child{border-bottom:0}.contact-item strong{font-size:14px}.hero-visual{padding:6px 0 0}.education-note{min-height:142px}.resume-download{min-height:56px}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.hero-actions .button{width:100%;min-width:0;padding-left:16px;padding-right:12px}.hero-actions .button>span:first-child{font-size:16px}.memory-section{padding:44px 0 54px}.memory-heading{width:min(100% - 28px,1180px);margin-bottom:24px}.memory-heading h2{font-size:34px}.memory-frame{flex-basis:218px;width:218px;height:278px}.memory-image,.memory-placeholder{height:224px}.case-card:hover,.case-card:focus-visible{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.memory-rail{overflow-x:auto}.memory-track{animation:none}.nav-link,.case-card,.memory-frame,.dialog-close{transition:none}.memory-set[aria-hidden=true]{display:none}}
