@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--header-height: 54px;--footer-height: 44px;--bg-primary: #f5f1e8;--bg-card: rgba(255, 255, 255, .76);--text-primary: #1d2a24;--text-muted: #506057;--line: rgba(29, 42, 36, .12);--accent: #0f766e;--accent-soft: rgba(15, 118, 110, .12);--shadow: 0 14px 40px rgba(25, 31, 28, .08)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{margin:0;color:var(--text-primary);background:radial-gradient(circle at 15% 18%,#fff4dc 0%,transparent 45%),radial-gradient(circle at 86% 8%,#d9f5ec 0%,transparent 32%),linear-gradient(160deg,#f8f4ea,#eef7f2 60%,#f7efe2)}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.header{display:flex;align-items:center;justify-content:center;width:100%;height:var(--header-height);padding:0 1rem;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:#f7f3e9d9}.header-nav{display:flex;gap:.55rem}.nav-item{border:1px solid transparent;border-radius:999px;padding:.28rem .78rem;color:var(--text-muted);background:transparent;font-size:.9rem;font-weight:500;transition:all .25s ease;cursor:pointer}.nav-item:hover{border-color:var(--line);color:var(--text-primary)}.nav-item.is-active{border-color:#0f766e47;color:var(--accent);font-weight:700;background:var(--accent-soft)}.app-main{position:relative;flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth;padding-top:.75rem}.section{height:100%;padding:1.15rem 2.1rem 1rem}.snap-section{min-height:100%}.section-inner{display:flex;flex-direction:column;gap:1.08rem;width:100%;height:100%;max-width:1260px;margin:0 auto}.section-heading{display:flex;align-items:baseline;gap:.55rem}.section-heading h2{margin:0;font-size:clamp(1.72rem,2.1vw,2.22rem)}.section-heading p{margin:0;color:var(--text-muted);font-size:.95rem}.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.summary-item{border:1px solid var(--line);border-radius:12px;padding:.78rem .92rem;background:#ffffff8c}.summary-label{margin:0;font-size:.88rem;color:var(--text-muted)}.summary-value{margin:.2rem 0 0;font-size:1.32rem;font-weight:700;color:var(--accent)}.summary-value-compact{font-size:1rem;line-height:1.35}.panel{border:1px solid var(--line);border-radius:18px;background:var(--bg-card);box-shadow:var(--shadow)}.card-panel{padding:1.14rem}.profile-grid{display:grid;grid-template-columns:1.02fr 1.24fr;gap:1rem;min-height:0}.profile-left{display:grid;grid-template-rows:1fr auto;gap:1rem}.basic-info-flip{position:relative;height:100%;min-height:26.5rem;perspective:1200px}.basic-info-face{position:absolute;inset:0;display:flex;flex-direction:column;backface-visibility:hidden;transform-style:preserve-3d;transition:transform 2.58s cubic-bezier(.16,1,.3,1);will-change:transform}.basic-info-front{transform:rotateY(0)}.basic-info-back{transform:rotateY(180deg)}.basic-info-flip.is-flipped .basic-info-front{transform:rotateY(-180deg)}.basic-info-flip.is-flipped .basic-info-back{transform:rotateY(0)}.profile-right{display:grid;grid-template-rows:auto 1fr;gap:1rem}.profile-left h3,.profile-right h3{margin:0 0 .9rem;font-size:1.08rem}.basic-info-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.basic-info-header h3{margin:0}.flip-toggle{border:1px solid rgba(15,118,110,.3);border-radius:999px;width:1.8rem;height:1.8rem;color:var(--accent);background:#ffffffe0;font-size:1rem;line-height:1;cursor:pointer;transition:transform .2s ease,background-color .2s ease}.flip-toggle:hover{transform:translate(1px);background:#0f766e1a}.profile-mini-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-bottom:0}.info-list{display:grid;gap:.64rem;padding:.1rem 0}.profile-hashtags{margin-top:auto;padding-top:.72rem;display:flex;flex-wrap:wrap;gap:.38rem}.hashtag-chip{display:inline-flex;align-items:center;border:1px solid rgba(15,118,110,.24);border-radius:999px;padding:.2rem .56rem;font-size:.79rem;font-weight:600;color:#2f5b52;background:#0f766e14}.info-item{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:start;column-gap:.58rem}.info-label{margin:0;padding-top:.04rem;display:flex;align-items:center;font-size:.88rem;font-weight:700;white-space:nowrap;color:#5d6c65}.info-value{min-width:0}.info-value p{margin:0;line-height:1.5;font-size:.96rem;word-break:keep-all}.email-row{display:flex;align-items:center;flex-wrap:wrap;gap:.52rem}.intro-item{align-items:flex-start}.intro-block{width:100%;border-radius:10px;min-height:10.5rem;padding:.88rem .92rem;background:#fff;border:1px solid rgba(29,42,36,.08)}.intro-block p{margin:0;line-height:1.6;font-size:.98rem;color:#324740}.private-list{display:grid;gap:.8rem}.private-item{border:1px solid rgba(29,42,36,.1);border-radius:10px;padding:.7rem .8rem;background:#ffffffd1}.private-label{margin:0;font-size:.84rem;font-weight:700;color:#567068}.private-value{margin:.2rem 0 0;font-size:.95rem;line-height:1.45;color:#2d453d}.inline-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(15,118,110,.35);border-radius:999px;padding:.1rem .44rem;color:var(--accent);background:#ffffffd9;font-size:.74rem;cursor:pointer}.copy-feedback{font-size:.84rem;color:var(--accent)}.external-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.62rem}.link-button{display:inline-flex;align-items:center;justify-content:center;gap:.34rem;border:1px solid rgba(15,118,110,.25);border-radius:12px;padding:.58rem .84rem;color:var(--accent);background:#ffffffe6;font-size:.94rem;transition:transform .25s ease,background-color .25s ease,box-shadow .25s ease}.link-arrow{transition:transform .2s ease}.link-button:hover{transform:translateY(-2px);background:#0f766e14;box-shadow:0 6px 16px #0f766e26}.link-button:hover .link-arrow{transform:translate(1px,-1px)}.link-button.secondary{border-color:#1d2a2438;color:var(--text-primary)}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.68rem}.skill-group{border:1px solid var(--line);border-radius:14px;padding:.72rem .75rem;background:#fff9}.skill-group.infra-group{grid-column:auto;padding:.72rem .75rem}.skill-group h4{margin:0 0 .5rem;font-size:.96rem;color:#2f4f46}.skill-group ul{display:flex;flex-wrap:wrap;gap:.38rem;margin:0;padding:0;list-style:none}.skill-group li{border-radius:999px;padding:.28rem .58rem;font-size:.84rem;background:#1d2a2412}.infra-skill-block{display:grid;gap:.48rem}.skill-main{margin:0;align-self:start;display:inline-flex;border:1px solid rgba(15,118,110,.28);border-radius:999px;padding:.18rem .56rem;font-size:.86rem;font-weight:700;color:#0f766e;background:#0f766e14}.infra-children{margin-left:.38rem;padding-left:.68rem;border-left:1px solid rgba(15,118,110,.28)}.sub-skill-list{display:flex;flex-wrap:wrap;gap:.38rem;margin:.02rem 0 0;padding:0;list-style:none}.sub-skill-list li{border-radius:999px;padding:.24rem .52rem;font-size:.8rem;color:#2f5b52;background:#0f766e1f}.infra-extra-list{display:flex;flex-wrap:wrap;gap:.38rem;margin:.08rem 0 0;padding:0;list-style:none}.infra-extra-list li{border-radius:999px;padding:.24rem .54rem;font-size:.8rem;color:#355a52;background:#1d2a2414}.sort-toggle{display:flex;gap:.45rem}.sort-toggle button,.pager button{border:1px solid var(--line);border-radius:999px;padding:.42rem .8rem;background:#ffffffe0;cursor:pointer;font-size:.9rem;transition:all .2s ease}.sort-toggle button:hover,.pager button:hover:not(:disabled){border-color:#0f766e59}.sort-toggle .is-active{color:var(--accent);border-color:#0f766e59;background:#0f766e14}.project-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.overview-card{padding:.9rem .96rem;background:#ffffffa1}.overview-label{margin:0;font-size:.8rem;color:var(--text-muted)}.overview-value{margin:0;font-size:.92rem;font-weight:600;color:#355a52}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.project-card{display:grid;height:520px;grid-template-rows:198px minmax(0,1fr) auto;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-6px);box-shadow:0 20px 32px #191f1c24}.project-card img{width:100%;height:100%;object-fit:cover}.project-content{display:grid;grid-template-rows:auto auto 1fr;min-height:0;padding:1.06rem;overflow:hidden}.project-content h3{margin:0;font-size:1.12rem}.project-title-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.project-badges{display:inline-flex;align-items:center;gap:.34rem;flex-shrink:0;min-width:0}.status-tag{flex-shrink:0;border-radius:999px;padding:.2rem .58rem;font-size:.76rem;font-weight:700}.status-tag.is-category{max-width:9.8rem;color:#355046;background:#3550461f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-tag.is-progress{color:#0f766e;background:#0f766e24}.status-tag.is-completed{color:#5f6c66;background:#5060571f}.project-summary{margin:.48rem 0 .72rem;font-size:.96rem;color:var(--text-muted);display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-content dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.28rem .45rem;align-content:start;min-height:0;overflow:hidden}.project-content dt{font-weight:700;color:var(--text-muted);font-size:.9rem}.project-content dd{margin:0;line-height:1.35;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-content dd:last-of-type{display:-webkit-box;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-title-row h3{min-width:0;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1}.project-actions{display:grid;grid-template-columns:1fr 1fr;gap:.62rem;padding:0 1.06rem 1.06rem}.project-overview-compact{gap:.56rem;margin-top:-.12rem}.overview-card-compact{display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(29,42,36,.08);border-color:#1d2a2414;padding:.46rem .66rem;background:#ffffff6b;cursor:pointer;box-shadow:none;transition:all .2s ease}.overview-card-compact:hover{border-color:#0f766e47;background:#ffffffa3}.overview-card-compact.is-active{border-color:#0f766e57;background:#0f766e1a}.overview-card-compact:focus-visible{outline:2px solid rgba(15,118,110,.35);outline-offset:2px}.empty-projects{margin:.2rem 0 0;text-align:center;font-size:.9rem;color:var(--text-muted)}.pager{display:flex;align-items:center;justify-content:center;gap:.7rem}.pager p{margin:0;min-width:3.2rem;text-align:center;font-size:.95rem}.pager button:disabled{opacity:.45;cursor:not-allowed}.timeline{display:grid;gap:.8rem;position:relative}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:1.1rem;width:2px;background:#0f766e3d}.timeline-item{position:relative;padding:.85rem 1rem .85rem 2.4rem}.timeline-item:before{content:"";position:absolute;top:1.06rem;left:.78rem;width:.64rem;height:.64rem;border-radius:999px;background:var(--accent)}.timeline-period{margin:0;font-size:.92rem;font-weight:700;color:var(--accent)}.timeline-item h3{margin:.24rem 0 0;font-size:.98rem}.timeline-item ul{margin:.55rem 0 0;padding-left:1rem;display:grid;gap:.28rem}.timeline-item li{color:var(--text-muted);font-size:.92rem;line-height:1.45}.snap-dots{position:fixed;right:1.15rem;top:calc(var(--header-height) + 50%);transform:translateY(-50%);z-index:15;display:flex;flex-direction:column;gap:.46rem;padding:.56rem .4rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:linear-gradient(180deg,#ffffff75,#ffffff3d);box-shadow:0 2px 6px #11181412;-webkit-backdrop-filter:blur(10px) saturate(145%);backdrop-filter:blur(10px) saturate(145%)}.dot-button{width:.6rem;height:.6rem;border:none;border-radius:999px;background:radial-gradient(circle at 30% 30%,#fffffff2,#8fa29880);box-shadow:inset 0 0 0 1px #ffffffa6;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.dot-button:hover{transform:scale(1.2)}.dot-button.is-active{background:radial-gradient(circle at 30% 30%,#d5fff8,#0f766e);box-shadow:inset 0 0 0 1px #d9fff9e0,0 0 0 2px #0f766e29}.footer{display:flex;align-items:center;justify-content:center;gap:.8rem;height:var(--footer-height);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.footer p{margin:0;font-size:.8rem;color:var(--text-muted)}.footer-updated{padding-left:.8rem;border-left:1px solid var(--line)}.detail-shell{height:100dvh;padding:1.1rem 1rem 1.4rem;display:flex;flex-direction:column;overflow:hidden}.detail-header{max-width:1280px;margin:0 auto .9rem;width:100%;display:flex;align-items:center;justify-content:space-between;gap:.8rem}.detail-back-link{width:fit-content}.detail-back-icon{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border:1px solid rgba(29,42,36,.2);border-radius:999px;background:#ffffffe6;color:#28433c;font-size:1.1rem;line-height:1}.detail-main{max-width:1024px;margin:0 auto;display:grid;gap:1rem;min-height:0}.detail-main-split{position:relative;max-width:1280px;grid-template-columns:3fr 7fr;align-items:start;flex:1;min-height:0;overflow:hidden;border-radius:22px}.detail-main-split:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 14% 14%,rgba(255,241,212,.55),transparent 42%),radial-gradient(circle at 86% 10%,rgba(214,247,234,.5),transparent 38%),linear-gradient(140deg,#fff7e78a,#ebf8f28f)}.detail-main-split>*{position:relative;z-index:1}.detail-sidebar{height:100%;min-height:0;overflow:hidden;background:transparent}.detail-sidebar-inner{height:100%;padding:.92rem;display:grid;gap:.75rem;grid-template-rows:auto auto auto auto auto minmax(0,1fr);border:1px solid rgba(29,42,36,.1);border-radius:18px;background:#ffffff7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.detail-hero{overflow:hidden}.detail-hero img{display:block;width:100%;max-height:420px;object-fit:cover}.detail-hero-content{padding:1.1rem;display:grid;gap:.72rem}.detail-content-fixed{height:100%;min-height:0;overflow-y:auto;display:grid;gap:.95rem;align-content:start;padding:.1rem .2rem .1rem .85rem}.detail-kicker{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--accent)}.detail-kicker-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.detail-project-badges{display:inline-flex;align-items:center;gap:.35rem}.detail-project-badges .status-tag{font-size:.72rem;padding:.18rem .54rem}.detail-hero-content h1{margin:0;font-size:clamp(1.5rem,3vw,2rem)}.detail-summary{margin:0;font-size:1.02rem;line-height:1.58;color:#2c4038}.detail-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.detail-meta-grid div{border:1px solid var(--line);border-radius:12px;padding:.62rem .7rem;background:#ffffffb3}.detail-meta-grid dt{margin:0;font-size:.82rem;color:var(--text-muted)}.detail-meta-grid dd{margin:.24rem 0 0;font-size:.92rem;font-weight:600;line-height:1.42}.detail-github-link{width:fit-content}.detail-action-row{display:flex;flex-wrap:wrap;gap:.5rem}.detail-demo-button{border-color:#0f766e59;font-weight:700}.detail-view-tabs{display:inline-grid;grid-template-columns:repeat(2,1fr);gap:.5rem;width:240px;max-width:240px}.detail-view-tabs-header{margin-left:auto}.detail-view-tab{width:100%;border:1px solid rgba(29,42,36,.14);border-radius:12px;padding:.54rem .68rem;background:#ffffffbf;color:#355046;font-size:.88rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;text-align:center;cursor:pointer;transition:all .2s ease}.detail-view-tab:hover:not(:disabled){border-color:#0f766e4d}.detail-view-tab.is-active{border-color:#0f766e57;color:var(--accent);background:#0f766e1a;box-shadow:inset 0 0 0 1px #0f766e14}.detail-view-tab:disabled{opacity:.45;cursor:not-allowed}.detail-bulk-controls{display:grid;grid-template-columns:1fr 1fr;gap:.46rem}.detail-bulk-controls-top{width:fit-content}.detail-bulk-controls button{border:1px solid rgba(29,42,36,.16);border-radius:10px;min-width:2rem;padding:.28rem .42rem;background:#ffffffdb;color:#2b433b;font-size:.76rem;font-weight:700;letter-spacing:.01em;cursor:pointer}.detail-bulk-icon{display:inline-block;font-size:.96rem;line-height:1}.detail-bulk-icon.is-expand{transform:rotate(90deg)}.detail-bulk-controls button:hover{border-color:#0f766e52}.detail-bulk-line{padding:0;width:2.5rem;height:2.5rem;border-radius:999px;border:1px solid rgba(29,42,36,.2);background:#ffffffd9;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff4d}.detail-bulk-line span{width:18px;height:2px;background:currentColor;display:block;position:relative}.detail-bulk-line-open span:before{content:"";position:absolute;top:-5px;left:0;width:18px;height:2px;background:currentColor}.detail-bulk-line-close span:after{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:2px;height:18px;background:currentColor}.detail-sections{display:grid;gap:.9rem;grid-auto-rows:max-content;align-content:start}.detail-toc{margin-top:.4rem;border-top:1px solid var(--line);padding-top:.75rem;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.detail-toc h2{margin:0;font-size:.98rem}.detail-toc-scroll{margin-top:.58rem;min-height:0;overflow-y:auto;padding:.25rem .18rem .35rem 0;scroll-padding-top:.4rem;scroll-padding-bottom:.4rem}.detail-toc ol{margin:0;padding:0;list-style:none;display:grid;gap:.42rem}.detail-toc li{display:grid;grid-template-columns:1.5rem 1fr;align-items:start;gap:.48rem;border:1px solid rgba(29,42,36,.08);border-radius:10px;padding:.42rem .5rem;background:#ffffff8a}.toc-index{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:999px;font-size:.72rem;font-weight:700;color:#276056;background:#0f766e24}.toc-title{margin-top:.02rem;font-size:.88rem;line-height:1.42;color:#2e443d}.detail-outline-fab,.detail-outline-overlay{display:none}.detail-section{padding:1.05rem 1.1rem;border-radius:16px;border:1px solid rgba(255,255,255,.65);background:#ffffffbf;box-shadow:0 10px 20px #0000000d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-section-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.detail-section-head button{border:1px solid rgba(15,118,110,.3);border-radius:999px;width:1.9rem;height:1.9rem;padding:0;background:#ffffffe6;color:var(--accent);font-size:.96rem;font-weight:700;line-height:1;cursor:pointer}.detail-toggle-chevron{display:inline-block;transform:rotate(0);transition:transform .2s ease}.detail-section-toggle.is-open .detail-toggle-chevron{transform:rotate(90deg)}.detail-section h2{margin:0;font-size:1.18rem;line-height:1.34;letter-spacing:-.01em}.detail-section p{margin:.72rem 0 0;font-size:.97rem;line-height:1.66;word-break:keep-all;text-wrap:pretty;color:#2f453d}.detail-section p+p{margin-top:.56rem}.detail-section ul{margin:.86rem 0 0;padding-left:1.05rem;display:grid;gap:.35rem}.detail-section li{font-size:.93rem;line-height:1.52;word-break:keep-all;color:#355046}.detail-content-fixed,.detail-toc-scroll{scrollbar-width:thin;scrollbar-color:rgba(15,118,110,.42) rgba(255,255,255,.45)}.detail-content-fixed::-webkit-scrollbar,.detail-toc-scroll::-webkit-scrollbar{width:10px}.detail-content-fixed::-webkit-scrollbar-track,.detail-toc-scroll::-webkit-scrollbar-track{border-radius:999px;background:#ffffff6b}.detail-content-fixed::-webkit-scrollbar-thumb{border-radius:999px;border:2px solid rgba(255,255,255,.55);background:linear-gradient(180deg,#4eaea2,#0f766e)}.detail-toc-scroll::-webkit-scrollbar-thumb{border-radius:999px;border:0;background-color:transparent;background-image:radial-gradient(circle,#0f766e 0 55%,#0f766e1f 56% 100%);background-repeat:no-repeat;background-position:center;background-size:10px 10px}.detail-demo-panel{min-height:0;display:grid;gap:.78rem;padding:1rem;border-radius:20px;border:1px solid rgba(29,42,36,.1);background:radial-gradient(circle at 16% 9%,rgba(255,244,221,.66),transparent 36%),radial-gradient(circle at 86% 12%,rgba(208,241,230,.54),transparent 34%),#ffffffbd;box-shadow:0 10px 18px #111b1814;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-demo-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.04rem .12rem}.detail-demo-heading{min-width:0}.detail-demo-kicker{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--accent)}.detail-demo-heading h2{margin:.2rem 0 0;font-size:1.04rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-demo-header-actions{display:inline-flex;align-items:center;gap:.46rem;flex-shrink:0}.detail-demo-count{margin:0;border:1px solid rgba(15,118,110,.26);border-radius:999px;padding:.24rem .62rem;font-size:.8rem;font-weight:700;color:#2d4f48;background:#ffffffd1;text-align:center}.detail-demo-stage-wrap{border:1px solid rgba(29,42,36,.1);border-radius:16px;padding:.62rem;background:#ffffff8a}.detail-demo-stage{position:relative;width:100%;aspect-ratio:16 / 10;min-height:260px;border-radius:12px;overflow:hidden;background:#e3eeebbd;border:1px solid rgba(255,255,255,.7)}.detail-demo-slide{width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;transition:transform .35s ease}.demo-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.36rem;height:2.36rem;border:1px solid rgba(15,118,110,.28);border-radius:999px;background:#ffffffeb;color:var(--accent);font-size:1.25rem;font-weight:700;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 20px #13201f21;transition:transform .2s ease,background-color .2s ease}.demo-nav:hover{transform:translateY(-50%) scale(1.04);background:#0f766e1f}.demo-nav.prev{left:.58rem}.demo-nav.next{right:.58rem}.detail-demo-close{border:1px solid rgba(29,42,36,.16);border-radius:999px;width:1.94rem;height:1.94rem;background:#ffffffd6;color:#2b433b;font-size:.95rem;cursor:pointer;display:grid;place-items:center}.detail-demo-caption{margin:0;font-size:.92rem;line-height:1.52;color:#2e443d;letter-spacing:-.01em}.detail-demo-caption-panel{border:1px solid rgba(15,118,110,.16);border-radius:12px;padding:.56rem .66rem;display:flex;flex-direction:column;gap:.26rem;background:#ffffffa8}.detail-demo-caption-note{margin:0;font-size:.76rem;color:#0f1e1bad}@media(min-width:1025px){.app-main{scroll-snap-type:none;-ms-overflow-style:none;scrollbar-width:none}.app-main::-webkit-scrollbar{width:0;height:0}.snap-section{scroll-snap-align:none}}@media(max-width:1280px){.section{padding:1rem 1.2rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-overview{grid-template-columns:1fr}}@media(max-width:1024px){:root{--header-height: 48px;--footer-height: 58px}.snap-dots{display:none}.app-main{overflow-y:auto}.section{height:auto;padding:1.1rem .95rem}.snap-section{min-height:auto}.profile-grid{grid-template-columns:1fr}.profile-left,.profile-right{grid-template-rows:auto}.basic-info-flip{min-height:0;height:auto;perspective:none}.basic-info-face{position:static;transform:none;transition:none}.basic-info-back,.basic-info-flip.is-flipped .basic-info-front{display:none}.basic-info-flip.is-flipped .basic-info-back{display:flex}.skills-grid,.profile-mini-summary,.project-grid{grid-template-columns:1fr}.project-card{height:560px;grid-template-rows:230px minmax(0,1fr) auto}.detail-main-split{grid-template-columns:1fr;overflow:visible;flex:none;padding:0;border-radius:0}.detail-main-split:before{display:none}.detail-sidebar{position:static;max-height:none;height:auto;overflow:visible}.detail-sidebar-inner{height:auto;grid-template-rows:auto}.detail-content-fixed{display:grid;height:auto;overflow:visible;padding:0}.detail-toc{display:none}.detail-outline-fab{display:inline-flex;align-items:center;justify-content:center;position:fixed;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));width:3.2rem;height:3.2rem;border:1px solid rgba(15,118,110,.34);border-radius:999px;background:#ffffffeb;color:var(--accent);font-size:.82rem;font-weight:700;box-shadow:0 8px 18px #0f766e2e;cursor:pointer;z-index:45}.detail-outline-fab[aria-expanded=true]{opacity:0;pointer-events:none}.detail-outline-overlay{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:#18201d59;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:50}.detail-outline-overlay.is-open{opacity:1;pointer-events:auto}.detail-outline-modal{width:min(100%,460px);max-height:min(72dvh,620px);padding:.9rem;display:grid;gap:.72rem}.detail-outline-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.detail-outline-modal-header h2{margin:0;font-size:1rem}.detail-outline-modal-header button{border:1px solid rgba(29,42,36,.2);border-radius:8px;padding:.28rem .56rem;background:#ffffffe6;cursor:pointer}.detail-toc-scroll.detail-toc-scroll-modal{margin-top:0;max-height:min(58dvh,500px)}.detail-shell{height:auto;min-height:100dvh;overflow:visible}.detail-header{max-width:1024px}}@media(max-width:640px){.header-nav{gap:.42rem}.nav-item{padding:.26rem .6rem;font-size:.82rem}.external-links{grid-template-columns:1fr}.info-item{grid-template-columns:92px minmax(0,1fr)}.info-list{padding:.58rem .64rem}.info-label{font-size:.84rem}.section-heading-row{flex-direction:column;align-items:flex-start}.footer{flex-direction:column;gap:.15rem;padding:.28rem 0}.footer-updated{padding-left:0;border-left:0}.detail-shell{padding:.8rem .75rem 1.2rem}.detail-header{margin-bottom:.65rem}.detail-bulk-controls button{font-size:.74rem;padding:.28rem .44rem}.detail-hero-content{padding:.9rem}.detail-meta-grid{grid-template-columns:1fr}.detail-section{padding:.85rem .9rem}.detail-outline-fab{width:2.9rem;height:2.9rem;font-size:.78rem;right:.75rem}.demo-viewer-stage{padding:1rem 1rem 1.2rem}.demo-nav{width:2.3rem;height:2.3rem}.demo-nav.prev{left:.45rem}.demo-nav.next{right:.45rem}.detail-demo-stage{min-height:220px}.detail-demo-heading h2{font-size:.98rem}.detail-demo-count{padding:.22rem .48rem;font-size:.74rem}.detail-view-tab{font-size:.82rem;padding:.5rem .4rem}.detail-view-tabs{width:220px;max-width:220px}.detail-view-tabs-header{margin-left:0}.project-card{height:520px;grid-template-rows:200px minmax(0,1fr) auto}}@media(max-width:420px){.detail-view-tabs{width:196px;max-width:196px}.detail-view-tab{font-size:.78rem}}
