@font-face{font-family:Remingtoned;src:url(/assets/remingtoned.ttf) format("truetype");font-display:swap}@font-face{font-family:Magilio;src:url(/assets/magilio.ttf) format("truetype");font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{overflow:hidden;background:#fbfbfa;color:#1c1a17;font-family:Space Mono,monospace;-webkit-font-smoothing:antialiased}a{color:#1c1a17;text-decoration:none}a:hover{color:#6f8296}@keyframes pagein{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes homein{0%{opacity:0}to{opacity:1}}.screen{position:relative;width:100vw;height:100vh;overflow:hidden;--photo-w: 48.27vh;--card-gap: clamp(24px, 3vw, 52px);--card-w: min( clamp(360px, max(var(--photo-w), 44vw), 760px), calc(96vw - var(--photo-w) - var(--card-gap)) )}.paper-bg,.portrait{position:absolute;inset:0}.portrait{transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .55s ease}.portrait-swapping{opacity:0;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .26s ease}.portrait [data-paper-shader],.portrait-hero [data-paper-shader]{filter:url(#portrait-lift)}.stage,.hero-wrap{display:contents}.slide-hint{display:none}.home{position:absolute;inset:0;animation:homein .4s ease}.name{position:absolute;left:clamp(16px,2vw,32px);top:clamp(40px,6vh,80px);transform:rotate(-6deg);transform-origin:left top;filter:url(#inkgrain);width:max-content;color:inherit;text-decoration:none;cursor:pointer}.tagline{margin:4px 0 0 22px;font:400 14px/1 Courier Prime,monospace;letter-spacing:.2em;color:#0a0807;white-space:nowrap}.summary{position:absolute;left:calc(25% - min(18vw,12.07vh));max-width:min(30ch,calc(50vw - min(36vw,24.135vh) - 20px));top:50%;transform:translate(-50%,-50%) rotate(-6deg);transform-origin:center;font:400 clamp(20px,min(2.4vw,2.8vh),32px) / 1.5 "Nanum Pen Script",cursive;letter-spacing:.05em;text-transform:uppercase;color:#161311;mix-blend-mode:multiply;filter:url(#inkgrain)}.sum-para+.sum-para{margin-top:.7em}.sum-word{display:inline-block}.sum-em{font-weight:700;-webkit-text-stroke:.4px currentColor}.sum-ch{display:inline-block}.magic{position:relative;display:inline-block}.magic-stars{position:absolute;inset:0;pointer-events:none;color:#161311}.star{position:absolute;display:block;transform:rotate(var(--rot, 0deg));animation:twinkle 1s ease-in-out infinite;will-change:opacity,transform}.star svg{display:block}@keyframes twinkle{0%,to{opacity:.15;transform:rotate(var(--rot, 0deg)) scale(.65)}50%{opacity:1;transform:rotate(var(--rot, 0deg)) scale(1.05)}}.portrait-docked{transform:translate(calc((var(--card-gap) + var(--card-w)) * -.5))}.home.has-page .dock{transform:translate(calc(-50% - (var(--card-gap) + var(--card-w)) * .5))}.summary,.nav,.contact-hint{transition:opacity .45s ease}.home.has-page .summary,.home.has-page .nav,.home.has-page .badge{opacity:0;pointer-events:none}.home.has-page .contact-hint{transform:translate(calc((var(--card-gap) + var(--card-w)) * -.5)) rotate(-5deg)}.page-card{position:absolute;top:clamp(40px,8vh,96px);bottom:clamp(40px,8vh,96px);left:calc(50vw + var(--photo-w) / 2 + var(--card-gap) / 2 - var(--card-w) / 2);width:var(--card-w);display:flex;flex-direction:column;gap:24px;padding:clamp(32px,4vw,56px);background:#fff;border-radius:28px;box-shadow:0 24px 60px #1f264a29,0 2px 10px #1f264a14;overflow-y:auto;z-index:4;animation:cardin .5s cubic-bezier(.2,.8,.2,1) both}@keyframes cardin{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}.card-title{--title-overhang-x: clamp(18px, 2.4vw, 44px);--title-overhang-y: clamp(18px, 3.2vh, 42px);--title-tilt: 4deg;position:absolute;z-index:5;right:calc(50vw - var(--photo-w) / 2 - var(--card-gap) / 2 - var(--card-w) / 2 - var(--title-overhang-x));top:calc(clamp(40px,8vh,96px) - var(--title-overhang-y));display:flex;align-items:center;justify-content:center;font-size:clamp(30px,3.6vw,58px);padding:.5em 1em;overflow:visible;isolation:isolate;transform:rotate(var(--title-tilt));transform-origin:center;animation:titlein .5s cubic-bezier(.2,.8,.2,1) both;pointer-events:none}.card-title:before,.card-title:after{content:"";position:absolute;z-index:-1;bottom:.2em;width:40%;height:.22em;box-shadow:0 .11em .32em #000000b3;transition:all .3s ease-in-out}.card-title:before{left:.34em;transform:skew(-5deg) rotate(-5deg)}.card-title:after{right:.34em;transform:skew(5deg) rotate(5deg)}@keyframes titlein{0%{opacity:0;transform:rotate(var(--title-tilt)) translate(28px)}to{opacity:1;transform:rotate(var(--title-tilt))}}.card-title-sheet{position:absolute;inset:0;z-index:0;overflow:hidden}.card-title-paper{position:absolute;inset:0;background:#d83a2c}.card-title-creases{position:absolute;inset:0;z-index:3;pointer-events:none;background-repeat:no-repeat;background-image:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.09) 49.5%,rgba(255,255,255,.05) 51.5%,transparent 60%),linear-gradient(to right,transparent 40%,rgba(0,0,0,.09) 49.5%,rgba(255,255,255,.05) 51.5%,transparent 60%)}.card-title-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.4;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 0 1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");background-size:140px 140px}.card-title-text{position:relative;z-index:2;font-family:Magilio,Space Mono,monospace;font-size:1em;line-height:1;letter-spacing:.01em;white-space:nowrap;color:#fff}@supports ((-webkit-background-clip: text) or (background-clip: text)){.card-title-text{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='tg'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0.55 0.55 0 -0.95'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23tg)'/%3E%3C/svg%3E"),linear-gradient(#fff,#fff);background-size:120px 120px,100% 100%;background-repeat:repeat,no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}}.portrait-intro{animation:homein 1s ease both}.intro .nav,.intro .dock,.intro .contact-hint{animation:homein .6s ease 1s both}.intro .badge{opacity:0;animation:homein .6s ease var(--badge-delay, 5s) both}@keyframes inkwrite{0%{opacity:0;transform:translateY(3px) rotate(3deg)}to{opacity:1;transform:none}}.intro .sum-ch{opacity:0;animation:inkwrite .3s ease both}.intro .magic-stars{opacity:0;animation:homein .6s ease var(--stars-delay, 4.3s) both}.nav{position:absolute;left:calc(75% + min(18vw,12.07vh));top:50%;transform:translate(-50%,-50%);width:max-content;display:flex;flex-direction:column;gap:clamp(12px,2.4vh,22px)}.nav-item{display:flex;align-items:baseline;gap:14px;font:400 clamp(14px,2.2vh,18px) / 1.3 "Space Mono",monospace;letter-spacing:.04em;color:#1c1a17;transition:transform .15s ease,color .15s ease}.nav-item:hover{color:#6f8296;transform:translate(8px)}.nav-bullet{font:400 16px Space Mono,monospace;color:#9fadbc}.nav-item:hover .nav-bullet{color:#6f8296}.contact-hint{position:absolute;pointer-events:none;opacity:0;color:#263d89;font:600 clamp(24px,min(3.2vw,3.2vh),50px) / .95 "Nanum Pen Script",cursive;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transform:rotate(-5deg);transform-origin:center;mix-blend-mode:multiply;z-index:2;isolation:isolate;transition:opacity .45s ease,transform .6s cubic-bezier(.2,.8,.2,1)}.contact-hint.is-on{opacity:1}.dock{position:absolute;left:50%;bottom:clamp(18px,4vh,42px);transform:translate(-50%);transition:transform .6s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:0;padding:6px clamp(8px,1vw,12px);border-radius:999px;background:#ffffff38;border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 34px #1f264a24,inset 0 1px #ffffffa6;backdrop-filter:blur(16px) saturate(165%);-webkit-backdrop-filter:blur(16px) saturate(165%)}.dock-link{position:relative;display:flex;align-items:center;justify-content:center;height:44px;padding:0 clamp(12px,1.6vw,18px);border-radius:16px;color:#1c1a17;transition:transform .15s ease,color .15s ease,background-color .15s ease}.dock-link:hover{color:#1c1a17;background:#fff6;transform:rotate(-2deg) scale(1.1)}.dock-link:nth-child(2n):hover{transform:rotate(2deg) scale(1.1)}.in-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1.8px solid #1c1a17;border-radius:7px;font:700 16px Space Mono,monospace;color:#1c1a17}.badge{position:absolute;right:clamp(-26px,-1.4vw,-16px);bottom:clamp(-64px,-4.5vh,-44px);width:clamp(172px,16vw,224px);height:clamp(172px,16vw,224px);transform:rotate(-6deg);transform-origin:center;transition:transform .3s cubic-bezier(.2,.8,.3,1),opacity .45s ease;perspective:700px;filter:drop-shadow(0 12px 22px rgba(60,42,0,.32));cursor:pointer;z-index:3;-webkit-tap-highlight-color:transparent}.badge:hover,.badge:focus-visible{transform:rotate(-6deg) scale(1.12);outline:none}.badge-inner{position:absolute;inset:0;clip-path:var(--star);isolation:isolate;transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transform-style:preserve-3d;transition:transform .2s ease;background:radial-gradient(circle at 50% 38%,#f3d066,#e0a92a 55%,#c9911e)}.badge-inner:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='%235a3d00' fill-opacity='0.14' fill-rule='evenodd'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");background-size:20px 35px;opacity:var(--on, 0);transition:opacity .3s ease}.badge-foil,.badge-glare{position:absolute;inset:0;pointer-events:none}.badge-foil{background:radial-gradient(circle at var(--px, 50%) var(--py, 50%),#fff6d4 0%,#f4cf68 32%,rgba(180,124,28,0) 70%);mix-blend-mode:overlay;opacity:calc(var(--on, 0) * .85);transition:opacity .3s ease}.badge-glare{background:radial-gradient(circle at var(--px, 50%) var(--py, 50%),rgba(255,255,255,.9),rgba(255,255,255,0) 42%);mix-blend-mode:soft-light;opacity:var(--on, 0);transition:opacity .3s ease}.badge-text{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 17%;font:700 italic clamp(11px,1.2vw,15px) / 1.3 "Space Mono",monospace;letter-spacing:.05em;text-transform:uppercase;color:#4a3300;text-shadow:0 1px 0 rgba(255,240,190,.5)}.page{position:absolute;inset:0;animation:pagein .35s ease;display:flex;flex-direction:column;gap:30px;padding:64px 100px}.back-link{font:400 16px Space Mono,monospace;color:#6f8296;align-self:flex-start}.back-link:hover{color:#1c1a17}.page-body{font:400 18px/1.8 Space Mono,monospace;color:#33302b;max-width:620px}.resume-btn{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;padding:14px 22px;border:1.5px solid #1c1a17;background:#fff9;font:400 16px Space Mono,monospace;color:#1c1a17;transition:transform .15s ease}.resume-btn:hover{transform:rotate(-1deg) scale(1.03);color:#1c1a17}@media(max-width:1100px),(max-aspect-ratio:1/1){html,body,#root{height:100%}body{overflow:hidden}.screen{height:100vh;overflow:hidden;touch-action:none}.paper-bg{position:fixed;z-index:-1}.home{display:contents}.home.has-page{display:none}.stage-profile,.stage-menu{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(16px,4vh,34px) clamp(14px,5vw,26px) clamp(16px,4vh,34px) clamp(48px,13vw,68px);transition:opacity .55s ease;will-change:opacity}.stage-profile{gap:clamp(6px,2.4vw,16px);pointer-events:none}.screen.slide-0 .stage-profile{opacity:1}.screen.slide-0 .stage-menu{opacity:0;pointer-events:none}.screen.slide-1 .stage-profile{opacity:0}.screen.slide-1 .stage-menu{opacity:1}.name{position:absolute;top:clamp(28px,5.5vh,52px);left:clamp(12px,3.5vw,20px);margin:0;transform:rotate(-5deg);transform-origin:left top;z-index:3}.hero-wrap{display:block;position:relative;flex:none;aspect-ratio:1027 / 1532;height:clamp(220px,calc(100dvh - 26rem),470px);width:auto;max-width:88vw;margin-top:clamp(24px,5vh,40px)}.portrait-hero{width:100%;height:100%}.summary{position:static;display:block;top:auto;left:auto;max-width:32ch;margin:0;transform:rotate(-3deg);text-align:center}.nav{position:static;top:auto;left:auto;transform:none;width:max-content;margin:0 auto;align-items:center;gap:clamp(16px,3.2vh,24px)}.dock{position:fixed;left:clamp(10px,3vw,18px);top:50%;bottom:auto;transform:translateY(-50%);flex-direction:column;gap:2px;padding:clamp(8px,2vw,12px) 6px}.home.has-page .dock{transform:translateY(-50%)}.home.has-page .contact-hint{transform:rotate(-5deg)}.dock-link{height:40px;padding:clamp(8px,2vw,12px) 6px}.badge{display:none}.hero-wrap .contact-hint{position:absolute;left:auto;bottom:auto;right:clamp(2px,2vw,14px);top:clamp(-44px,-5.5vh,-30px);margin:0;font-size:clamp(24px,7.5vw,36px);transform:rotate(-5deg);transform-origin:right bottom}.slide-hint{display:flex;position:fixed;left:50%;bottom:clamp(14px,4vh,28px);transform:translate(-50%);flex-direction:column;align-items:center;gap:1px;color:#6f8296;pointer-events:none;opacity:.85;z-index:4}.slide-hint-label{font:400 11px Space Mono,monospace;letter-spacing:.18em;text-transform:uppercase}.slide-hint-chev{display:block;transition:transform .3s ease}.slide-hint-chev svg{display:block;animation:hintbob 1.7s ease-in-out infinite}.screen.slide-1 .slide-hint{bottom:auto;top:clamp(14px,4vh,28px)}.screen.slide-1 .slide-hint-chev{transform:rotate(180deg)}.page{inset:clamp(14px,3vh,26px) clamp(12px,4vw,22px);display:flex;flex-direction:column;gap:22px;padding:clamp(24px,6vw,40px);background:#fff;border-radius:22px;box-shadow:0 20px 50px #1f264a29,0 2px 8px #1f264a14;overflow-y:auto}.card-title-stacked{--title-overhang-x: clamp(6px, 3vw, 16px);--title-overhang-y: clamp(14px, 2.6vh, 26px);right:calc(clamp(12px,4vw,22px) - var(--title-overhang-x));top:calc(clamp(14px,3vh,26px) - var(--title-overhang-y));z-index:5;max-width:84vw;font-size:clamp(26px,8vw,44px)}.card-title-stacked .card-title-text{white-space:normal;text-align:center}}@keyframes hintbob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.home,.page,.page-card{animation:none}.portrait-intro,.intro .nav,.intro .dock,.intro .contact-hint,.intro .sum-ch,.intro .magic-stars{animation:none!important;opacity:1}.star,.slide-hint-chev svg{animation:none!important;opacity:.85}.stage-profile,.stage-menu,.badge,.badge-foil,.badge-glare,.badge-inner{transition:none!important}.holo-float,.holo-foil,.holo-glitter,.holo-glare,.holo-noise{animation:none!important}*,*:before,*:after{transition-duration:.01ms!important}}
