:root{--bg:#10100f;--panel:#191a18e0;--panel-strong:#232420f5;--text:#f3efe2;--muted:#b9b29e;--line:#b3c2b747;--line-active:#e8c474e0;--gold:#e8c474;--teal:#71b7aa;--rust:#d28b62;--violet:#b59ce2;--border:#e8c4743d}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Arial,Noto Sans KR,sans-serif}body{overflow-x:hidden}.language-toggle{z-index:50;min-height:38px;color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#080908c7;border:1px solid #e8c47457;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;transition:border-color .16s,background .16s,color .16s,transform .16s;display:inline-flex;position:fixed;top:18px;left:18px;box-shadow:0 10px 28px #00000047}.language-toggle:hover,.language-toggle:focus-visible{color:var(--text);background:#e8c4741f;border-color:#e8c474b8;outline:none;transform:translateY(-1px)}.language-toggle span{font-size:12px;font-weight:800;line-height:1}.language-toggle .active{color:#fff7d6}button,a{font:inherit;color:inherit}.portfolio-shell{background:linear-gradient(135deg,#121211f7,#131816f0 44%,#1e1714f5),repeating-linear-gradient(90deg,#ffffff06 0 1px,#0000 1px 72px);min-height:100vh}.constellation-stage,.project-detail{width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:72px 28px 28px}.top-bar{justify-content:space-between;align-items:flex-start;gap:20px;min-height:76px;display:flex}.eyebrow{color:var(--gold);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:56px;line-height:.98}h2{margin-bottom:10px;font-size:28px;line-height:1.15}h3{color:var(--gold);margin-bottom:10px;font-size:15px}.quick-stats,.constellation-meta,.constellation-actions,.detail-status,.detail-nav{flex-wrap:wrap;gap:8px;display:flex}.quick-stats{justify-content:flex-end;max-width:520px}.quick-stats span,.constellation-meta span,.constellation-actions span,.constellation-actions a,.detail-status span,.detail-nav a,.tech-list span{border:1px solid var(--border);color:var(--text);white-space:nowrap;background:#e8c47414;border-radius:999px;padding:8px 12px;font-size:12px;text-decoration:none}.carousel-shell{grid-template-columns:190px minmax(0,1fr) 190px;align-items:center;gap:18px;min-height:calc(100vh - 150px);display:grid}.nav-orbit{cursor:pointer;text-align:left;background:#00000038;border:1px solid #ffffff1f;min-height:180px;padding:18px;transition:border-color .16s,transform .16s,background .16s}.nav-orbit:hover,.nav-orbit:focus-visible{background:#e8c47414;border-color:#e8c47494;outline:none;transform:translateY(-2px)}.nav-orbit span{color:var(--muted);margin-bottom:10px;font-size:12px;display:block}.nav-orbit strong{line-height:1.25;display:block}.nav-orbit.next{text-align:right}.constellation-card{background:radial-gradient(circle at 50% 39%,#e8c4741f,#0000 28%),linear-gradient(#ffffff07,#fff0);border:1px solid #ffffff1f;grid-template-columns:minmax(420px,1fr) minmax(320px,440px);align-items:center;gap:22px;min-height:670px;padding:34px;animation:.36s both constellationEnter;display:grid;position:relative;overflow:hidden}.constellation-card:before,.detail-constellation:before{content:"";opacity:.28;pointer-events:none;background-image:radial-gradient(circle,#ffffff8a 0 1px,#0000 1.5px),radial-gradient(circle,#71b7aa6b 0 1px,#0000 1.6px);background-position:24px 38px,82px 54px;background-size:130px 150px,210px 190px;position:absolute;inset:0}.carousel-index{z-index:4;color:var(--muted);gap:7px;font-size:13px;display:flex;position:absolute;top:20px;left:24px}.constellation-link{z-index:2;min-height:520px;text-decoration:none;display:block;position:relative}.constellation-copy{z-index:3;background:linear-gradient(90deg,#10100f6b,#10100f2e);border-left:1px solid #ffffff1f;padding:24px;position:relative}.constellation-copy h2{font-size:36px}.constellation-copy p{color:#e8e0cd;line-height:1.65}.constellation-actions{margin-top:18px}.constellation-actions a,.detail-nav a:first-child{background:#71b7aa24;border-color:#71b7aa6b}.constellation-dots{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:-22px;padding-bottom:20px;display:flex}.constellation-dots button{color:var(--muted);cursor:pointer;background:#0003;border:1px solid #ffffff1f;padding:8px 12px}.constellation-dots button.active{border-color:var(--gold);color:var(--text);background:#e8c4741f}.constellation-chart{width:100%;min-height:520px;position:relative}.constellation-aura{z-index:0;filter:blur(.2px);opacity:.82;background:radial-gradient(circle,#e8c47421,#0000 34%),conic-gradient(from 120deg,#0000,#e8c4741a,#0000,#71b7aa14,#0000);border:1px solid #e8c47414;border-radius:50%;position:absolute;inset:8%;transform:rotate(-8deg)}.constellation-chart.compact{min-height:360px}.constellation-lines{z-index:1;width:100%;height:100%;position:absolute;inset:0}.line{stroke:var(--line);stroke-width:.28px;stroke-linecap:round;transition:stroke .22s,stroke-width .22s,opacity .22s}.line.active{stroke:var(--line-active);stroke-width:.42px}.constellation-star{z-index:2;text-align:center;pointer-events:none;width:150px;min-height:74px;transition:transform .18s,opacity .18s;position:absolute;transform:translate(-50%,-50%)}.constellation-star.interactive{color:var(--text);cursor:pointer;pointer-events:auto;background:0 0;border:0;padding:0}.constellation-star.interactive:hover,.constellation-star.interactive:focus-visible,.constellation-star.selected{outline:none;transform:translate(-50%,-50%)scale(1.08)}.star-dot{background:var(--panel-strong);border:2px solid #ffffffc2;border-radius:50%;width:17px;height:17px;margin:0 auto 8px;transition:width .18s,height .18s,background .18s,box-shadow .18s,border-color .18s;display:block;box-shadow:0 0 16px #e8c4748a}.constellation-star.primary .star-dot{background:var(--gold);border-color:#fff7d6;width:26px;height:26px;box-shadow:0 0 0 9px #e8c4741c,0 0 30px #e8c474e0}.constellation-star.selected .star-dot,.constellation-star.interactive:hover .star-dot,.constellation-star.interactive:focus-visible .star-dot{background:#fff7d6;border-color:#fff7d6;box-shadow:0 0 0 8px #e8c47421,0 0 34px #e8c474f5}.tone-teal .constellation-star.primary .star-dot{background:var(--teal);box-shadow:0 0 0 9px #71b7aa1c,0 0 30px #71b7aac7}.tone-rust .constellation-star.primary .star-dot{background:var(--rust);box-shadow:0 0 0 9px #d28b621c,0 0 30px #d28b62c7}.tone-violet .constellation-star.primary .star-dot{background:var(--violet);box-shadow:0 0 0 9px #b59ce21c,0 0 30px #b59ce2c7}.type-security .star-dot{border-color:var(--rust)}.type-stack .star-dot{border-color:var(--teal)}.type-outcome .star-dot{border-color:var(--violet)}.star-label,.star-kind{text-shadow:0 2px 8px #000000eb;display:block}.star-label{font-size:13px;font-weight:800;line-height:1.2}.constellation-star.interactive:hover .star-label,.constellation-star.interactive:focus-visible .star-label,.constellation-star.selected .star-label{color:#fff7d6}.star-kind{color:var(--muted);margin-top:4px;font-size:11px}.detail-shell{min-height:100vh}.project-detail{padding-bottom:54px}.detail-nav{justify-content:space-between;margin-bottom:28px}.detail-hero{justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.detail-hero>div:first-child{max-width:900px}.detail-hero p{color:#e8e0cd;line-height:1.65}.detail-status{place-content:flex-start flex-end;min-width:220px}.detail-layout{grid-template-columns:minmax(480px,1fr) minmax(340px,460px);align-items:stretch;gap:22px;display:grid}.detail-constellation{background:radial-gradient(circle at 50% 42%,#e8c4741f,#0000 30%),linear-gradient(#ffffff07,#fff0);border:1px solid #ffffff1f;min-height:620px;padding:28px;position:relative;overflow:hidden}.detail-info,.detail-block,.media-panel,.safety-note,.case-panel,.case-card{border:1px solid var(--border);background:var(--panel);padding:22px}.star-insight{animation:.24s both insightEnter}.star-insight section,.star-proof-stack,.star-proof-stack section{margin-top:18px}.star-role-note,.star-evidence-card,.star-code-card{background:#0000002e;border:1px solid #ffffff1c;padding:13px}.star-role-note.compact{margin-top:18px}.star-evidence-grid,.star-code-grid{gap:10px;display:grid}.star-evidence-card{padding:0;overflow:hidden}.star-evidence-card img{aspect-ratio:16/9;object-fit:contain;background:#050605;border-bottom:1px solid #ffffff1c;width:100%;display:block}.star-evidence-card strong,.star-evidence-card span{padding-left:13px;padding-right:13px;display:block}.star-evidence-card strong{padding-top:12px}.star-evidence-card span{padding-bottom:13px}.star-code-card strong,.star-code-card code,.star-code-card em,.star-code-card span{display:block}.star-code-card strong,.star-evidence-card strong{color:var(--text);line-height:1.35}.star-code-card code{color:var(--teal);white-space:normal;word-break:break-word;margin-top:7px;font-size:12px}.star-code-card em{color:var(--gold);margin-top:6px;font-size:12px;font-style:normal;line-height:1.45}.aegis-deep-dive{border:1px solid #d4b8703d;border-left:3px solid var(--gold);background:radial-gradient(circle at 82% 8%, #7ed2be1a, transparent 34%), linear-gradient(180deg, #ffffff0b, #ffffff04), var(--panel);margin-top:22px;padding:26px;box-shadow:0 24px 80px #00000047}.aegis-deep-heading{border-bottom:1px solid #ffffff1a;max-width:980px;padding-bottom:18px}.aegis-selected-label{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.aegis-selected-label span,.aegis-selected-label em{color:var(--muted);text-transform:uppercase;letter-spacing:0;background:#0000002e;border:1px solid #ffffff21;padding:5px 8px;font-size:11px;font-style:normal}.aegis-selected-label strong{color:var(--gold);letter-spacing:0;font-size:13px}.aegis-deep-heading h2{margin-bottom:10px}.aegis-deep-heading p:not(.eyebrow){color:#dfd8c7;line-height:1.65}.aegis-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.aegis-metric{background:#0003;border:1px solid #ffffff1c;padding:14px}.aegis-metric strong,.aegis-metric span,.aegis-metric em{display:block}.aegis-metric strong{color:var(--gold);font-size:24px;line-height:1}.aegis-metric span{color:var(--text);margin-top:8px;font-weight:700}.aegis-metric em{color:var(--muted);margin-top:6px;font-size:12px;font-style:normal;line-height:1.45}.aegis-callout-section{margin-top:22px}.aegis-callout-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.aegis-callout-list li{background:#0000002e;border:1px solid #ffffff1c;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:13px;display:grid}.aegis-callout-list li>span{width:34px;height:34px;color:var(--gold);border:1px solid #d4b87073;place-items:center;font-weight:800;display:grid}.aegis-callout-list strong,.aegis-callout-list p{display:block}.aegis-callout-list strong{color:var(--text)}.aegis-callout-list p{color:#dfd8c7;margin:6px 0 0;font-size:13px;line-height:1.55}.aegis-comparison-section{margin-top:22px}.aegis-comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.aegis-comparison-card{background:#0000002e;border:1px solid #ffffff1c;padding:16px}.aegis-comparison-card h3{color:var(--gold);margin-bottom:12px;font-size:16px}.aegis-comparison-card ul{gap:9px;margin:0;padding-left:18px;display:grid}.aegis-comparison-card li{color:#dfd8c7;font-size:13px;line-height:1.55}.aegis-evidence-section,.aegis-code-section{margin-top:22px}.aegis-evidence-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;display:grid}.aegis-evidence-card{background:#0000002e;border:1px solid #ffffff1c;overflow:hidden}.aegis-evidence-card img{aspect-ratio:16/9;object-fit:contain;background:#101418;border-bottom:1px solid #ffffff1c;width:100%;display:block}.aegis-evidence-card.natural-image img{aspect-ratio:auto;object-fit:contain;width:auto;max-width:100%;max-height:520px;margin:0 auto}.aegis-evidence-card div{padding:14px}.aegis-evidence-card strong,.aegis-evidence-card span{display:block}.aegis-evidence-card strong{color:var(--text);line-height:1.35}.aegis-evidence-card span{color:#dfd8c7;margin-top:7px;font-size:13px;line-height:1.55}.aegis-code-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.aegis-code-card{background:#0000002e;border:1px solid #ffffff1c;padding:15px}.aegis-code-card strong,.aegis-code-card code{display:block}.aegis-code-card strong{color:var(--text)}.aegis-code-card code{color:var(--teal);white-space:normal;word-break:break-word;margin-top:7px;font-size:12px}.aegis-code-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0;display:grid}.aegis-code-card dl div{border-top:1px solid #ffffff14;padding-top:9px}.aegis-code-card dt{color:var(--gold);font-size:12px;font-weight:700}.aegis-code-card dd{color:#dfd8c7;margin:5px 0 0;font-size:13px;line-height:1.55}.project-common-flow{display:contents}.project-common-section{border-top:1px solid #ffffff29;margin-top:30px;padding-top:26px}.common-section-heading{margin-bottom:18px}.common-section-heading h2{color:var(--text);margin:4px 0 0}.project-common-section .detail-block,.project-common-section .case-panel,.project-common-section .media-panel{background:linear-gradient(#ffffff06,#ffffff03),#070a0c9e}.role-text{color:var(--muted)}.detail-info section+section{margin-top:22px}.detail-info p,.detail-block li,.media-panel p,.safety-note p,.case-card p,.case-card li,.finding-row span,.code-highlight span,.star-role-note p,.star-evidence-card span,.star-code-card span{color:#dfd8c7;line-height:1.6}.tech-list{flex-wrap:wrap;gap:8px;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:22px;margin-top:22px;display:grid}ul{margin:0;padding-left:18px}li{margin:8px 0}.detail-media,.case-panel{margin-top:22px}.case-heading{margin-bottom:18px}.case-heading h2{margin-bottom:0}.case-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:16px;display:grid}.case-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.case-card{background:linear-gradient(#ffffff06,#fff0),#10100f57}.case-card.wide{min-height:100%}.case-list,.findings-card{margin-top:16px}.evidence-list,.code-highlight-list{gap:10px;display:grid}.evidence-item,.code-highlight{background:#00000029;border:1px solid #ffffff1c;padding:12px}.evidence-item.has-image{padding:0;overflow:hidden}.evidence-item img{aspect-ratio:16/9;object-fit:contain;background:#0000003d;border-bottom:1px solid #ffffff1c;width:100%;display:block}.evidence-item.has-image strong,.evidence-item.has-image span,.evidence-item.has-image em{padding-left:12px;padding-right:12px}.evidence-item.has-image strong{padding-top:12px}.evidence-item.has-image em{padding-bottom:12px}.evidence-item strong,.evidence-item span,.evidence-item em,.code-highlight strong,.code-highlight code,.code-highlight span{display:block}.evidence-item strong,.code-highlight strong,.finding-row strong{color:var(--text);line-height:1.35}.evidence-item span,.code-highlight span{margin-top:6px;font-size:13px}.evidence-item em{color:var(--gold);margin-top:8px;font-size:12px;font-style:normal}.code-highlight code{color:var(--teal);white-space:normal;word-break:break-word;margin-top:7px;font-size:12px}.findings-table{gap:8px;margin-top:14px;display:grid}.finding-row{background:#00000029;border:1px solid #ffffff1c;grid-template-columns:.72fr 1.2fr 1.2fr;align-items:start;gap:12px;padding:12px;display:grid}.finding-row span{font-size:13px}.disclosure-card{border-color:#d28b626b}.media-panel video,.media-placeholder{aspect-ratio:16/9;background:#0b0c0b;width:100%;display:block}.media-placeholder{color:var(--muted);border:1px dashed #ffffff2e;place-items:center;display:grid}.safety-note{border-color:#d28b626b;margin-top:22px}@media (max-width:1120px){.carousel-shell{grid-template-columns:1fr}.nav-orbit{justify-content:space-between;gap:12px;min-height:auto;display:flex}.nav-orbit.next{text-align:left}.constellation-card,.detail-layout,.detail-grid,.case-grid,.case-grid.three,.aegis-metric-grid,.aegis-code-grid,.aegis-comparison-grid,.aegis-callout-list,.aegis-code-card dl,.finding-row{grid-template-columns:1fr}.constellation-copy{border-top:1px solid #ffffff1f;border-left:0}.constellation-dots{margin-top:16px}}@media (max-width:720px){.constellation-stage,.project-detail{padding:72px 18px 18px}.language-toggle{top:14px;left:14px}.top-bar,.detail-hero{display:block}.quick-stats,.detail-status{justify-content:flex-start;margin-top:16px}h1{font-size:36px}.constellation-copy h2{font-size:28px}.constellation-card{min-height:auto;padding:20px}.constellation-link,.constellation-chart{min-height:430px}.detail-constellation{min-height:500px;padding:12px}.constellation-star{width:118px}.star-label{font-size:11px}.star-kind{font-size:10px}}@keyframes constellationEnter{0%{opacity:0;transform:translate(18px)scale(.985)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes insightEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
