@font-face{font-family:"TikTok Sans";src:url('assets/tiktok-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
html{scroll-behavior:smooth;scroll-padding-top:0}body{background:rgb(var(--scene-shade,0),var(--scene-shade,0),var(--scene-shade,0));transition:background-color .65s cubic-bezier(.22,1,.36,1)}main{overflow:clip}a{color:inherit;text-decoration:none}button{font-family:inherit}h2,h3,p{margin:0}.header{position:fixed;z-index:30;pointer-events:none}.header>*{pointer-events:auto}.header nav a{color:white}.header nav a:focus-visible,.contents-list a:focus-visible,.profile-caption a:focus-visible{outline:2px solid var(--cyan);outline-offset:7px}.brand-link{display:block;height:100%;display:flex;align-items:center}.header nav span{cursor:default}.chapter{position:relative;min-height:calc(56.25 * var(--page-unit));padding:calc(7.35 * var(--page-unit)) calc(3.54 * var(--page-unit)) calc(5 * var(--page-unit));isolation:isolate;scroll-margin-top:0}.section-title{font-size:calc(2.71 * var(--page-unit));line-height:1.25;font-weight:800;letter-spacing:-.025em}.chapter-number{font-size:calc(5 * var(--page-unit));line-height:1.2;font-weight:600;color:#999;letter-spacing:-.06em;font-stretch:condensed}.contents{display:grid;grid-template-columns:40% 60%;align-items:start}.contents-list{list-style:none;padding:0;margin:calc(-2 * var(--page-unit)) 0 0 0}.contents-list li{min-height:calc(12.1 * var(--page-unit));border-bottom:1px solid #ffffff1a}.contents-list li:last-child{border-bottom:0}.contents-list a,.contents-entry{height:100%;min-height:inherit;display:flex;align-items:center;gap:calc(3.75 * var(--page-unit));padding:0 calc(1.8 * var(--page-unit))}.contents-label{position:relative;font-size:calc(2.0833 * var(--page-unit));font-weight:800;letter-spacing:-.03em}.contents-label img{position:absolute;width:calc(3 * var(--page-unit));height:calc(2.52 * var(--page-unit));min-width:0;min-height:0;left:calc(-.8 * var(--page-unit));top:calc(-.6 * var(--page-unit));object-fit:fill}.contents-list a .contents-label{transition:translate .45s cubic-bezier(.22,1,.36,1),text-shadow .45s}.contents-list a:hover .contents-label{translate:8px 0;text-shadow:-1px 0 12px #25f4ee30,1px 0 12px #fe2c5530}.contents-list a:hover .chapter-number{color:#ddd}.about{padding-top:calc(10.3 * var(--page-unit));display:grid;grid-template-columns:56% 44%;min-height:calc(56.25 * var(--page-unit))}.profile{padding-left:calc(1.82 * var(--page-unit));display:flex;flex-direction:column;align-items:start}.portrait{margin-top:calc(5.85 * var(--page-unit));width:calc(8.44 * var(--page-unit));height:calc(11.93 * var(--page-unit));overflow:hidden}.portrait img{width:111.93%;height:111.51%;max-width:none;object-fit:cover;transform:translate(-6.6%,-7.55%)}.profile-caption{margin-top:calc(7.7 * var(--page-unit));scroll-margin-top:160px}.profile-caption h2,.resume h2{font-size:calc(1.667 * var(--page-unit));font-weight:800;line-height:1.25}.profile-caption p{margin-top:calc(1.9 * var(--page-unit));color:#888}.profile-caption p,.profile-caption a{font-size:calc(1.25 * var(--page-unit));line-height:1.6}.profile-caption a{overflow-wrap:anywhere;transition:color .3s}.profile-caption a:hover{color:var(--cyan)}.resume{padding-right:calc(.8 * var(--page-unit));padding-top:calc(1.25 * var(--page-unit))}.resume>section{border-top:1px solid #ffffff1a;padding:calc(1.7 * var(--page-unit)) calc(1.1 * var(--page-unit)) 0}.education{padding-bottom:calc(4.2 * var(--page-unit))!important}.education p{display:flex;flex-wrap:wrap;gap:calc(1.8 * var(--page-unit));margin-top:calc(2 * var(--page-unit));font-size:calc(1.25 * var(--page-unit));line-height:1.65}.muted{color:#888}.experience h2{margin:calc(.75 * var(--page-unit)) 0 calc(2.4 * var(--page-unit))}.experience article+article{margin-top:calc(2.35 * var(--page-unit))}.job{display:flex;gap:calc(2.4 * var(--page-unit));align-items:baseline;font-size:calc(1.25 * var(--page-unit))}.job time{white-space:nowrap}.job h3{font-size:inherit;font-weight:400}.experience article p{font-size:calc(1.04 * var(--page-unit));line-height:1.9;color:#b4b4b4;margin-top:calc(.9 * var(--page-unit))}.internship{min-height:calc(56.25 * var(--page-unit));display:grid;grid-template-columns:42% 58%;grid-template-rows:auto auto auto;padding-top:calc(11.1 * var(--page-unit));padding-bottom:calc(1.5 * var(--page-unit));row-gap:calc(5.1 * var(--page-unit))}.internship>.chapter-number{grid-column:1/-1}.internship-description{font-size:calc(1.25 * var(--page-unit));font-weight:400;line-height:1.45;padding-right:calc(5 * var(--page-unit))}.project-counts{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:calc(.85 * var(--page-unit));margin-top:calc(4 * var(--page-unit))}.project-counts a{min-height:calc(15.7 * var(--page-unit));border:1px solid #ffffff22;border-radius:calc(1.25 * var(--page-unit));padding:calc(1.7 * var(--page-unit)) calc(2.35 * var(--page-unit)) calc(1 * var(--page-unit));display:flex;flex-direction:column;justify-content:space-between;transition:background .4s,box-shadow .4s}.project-counts span{font-size:calc(1.667 * var(--page-unit));font-weight:800}.project-counts strong{font-size:calc(6.667 * var(--page-unit));line-height:1.08;font-weight:600;align-self:flex-end}.project-counts a:hover{background:#ffffff05;box-shadow:-8px 0 28px #25f4ee09,8px 0 28px #fe2c5509}.project-counts a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.projects{min-height:auto;padding:calc(7 * var(--page-unit)) calc(2.55 * var(--page-unit)) calc(3.4 * var(--page-unit))}.project-group{display:grid;grid-template-columns:47% 53%;border-top:1px solid #ffffff1a;padding:0 calc(.6 * var(--page-unit));scroll-margin-top:105px}.project-visual{padding-top:calc(.4 * var(--page-unit));padding-right:calc(5.2 * var(--page-unit))}.project-stage{position:relative;width:100%;aspect-ratio:750/422;margin-top:calc(5.3 * var(--page-unit));margin-bottom:calc(2.1 * var(--page-unit))}.project-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:translateY(12px) scale(.985);transition:opacity .4s ease,transform .6s cubic-bezier(.22,1,.36,1);pointer-events:none}.project-art.is-visible{opacity:1;transform:translateY(0) scale(1)}.project-titles{padding-left:0}.project-title{display:block;width:100%;text-align:left;font-size:calc(1.46 * var(--page-unit));font-weight:400;line-height:1.5;color:#ffffff4d;background:transparent;border:0;border-bottom:1px dotted #ffffff12;padding:calc(1.18 * var(--page-unit)) 0;min-height:calc(4.375 * var(--page-unit));cursor:pointer;transition:color .35s ease,text-shadow .4s}.project-title:last-child{border-bottom:0}.project-title span{display:block;transition:transform .45s cubic-bezier(.22,1,.36,1)}.project-title.is-active,.project-title:hover,.project-title:focus-visible{color:white}.project-title:hover span,.project-title:focus-visible span{transform:translateX(6px)}.project-title:focus-visible{outline:1px solid #25f4ee99;outline-offset:5px}.case-study{min-height:calc(56.25 * var(--page-unit));overflow:hidden;padding:0}.case-copy{position:relative;z-index:2;width:44%;padding:calc(18.8 * var(--page-unit)) 0 calc(5 * var(--page-unit)) calc(6.1 * var(--page-unit))}.case-copy h2{font-weight:800;font-size:calc(3.333 * var(--page-unit));line-height:1.3;letter-spacing:-.025em}.case-copy h3{font-size:calc(2.083 * var(--page-unit));font-weight:400;margin-top:calc(3.2 * var(--page-unit));line-height:1.4}.case-principles{font-size:calc(.834 * var(--page-unit));line-height:1.65;margin-top:calc(3.5 * var(--page-unit))}.case-summary{font-size:calc(.834 * var(--page-unit));line-height:1.6;margin-top:calc(2.1 * var(--page-unit))}.case-phone{position:absolute;width:calc(19.35 * var(--page-unit));height:auto;aspect-ratio:372/805;object-fit:contain;left:68.7%;top:17.7%;z-index:2}.case-note{position:absolute;pointer-events:none;z-index:0;width:calc(77.85 * var(--page-unit));height:calc(69.1 * var(--page-unit));object-fit:contain;left:36.56%;top:24%;transform:rotate(-15deg)}[data-parallax],[data-lag]{translate:0 var(--motion-y,0px);will-change:translate}



@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body,.project-art,.project-title,.project-title span,.contents-label{transition:none!important}[data-parallax],[data-lag]{translate:none!important;will-change:auto}.project-title:hover span{transform:none}}

.header::before{content:"";position:absolute;z-index:-1;inset:0 calc(-2.34375 * var(--page-unit)) -22px;background:linear-gradient(to bottom,rgb(var(--scene-shade,0) var(--scene-shade,0) var(--scene-shade,0) / .97) 55%,transparent);pointer-events:none}.project-title{user-select:none;-webkit-user-select:none}
