:root{--bg: #f6f1e8;--bg-deep: #ece4d6;--surface: rgba(255, 252, 247, .88);--surface-strong: #fffaf3;--surface-moss: #e3eadf;--text: #191714;--muted: #777068;--accent: #233f35;--accent-ink: #10241d;--accent-soft: #dfe8df;--navy: #22324a;--shadow-soft: 0 18px 50px rgba(34, 28, 20, .08);--shadow-medium: 0 28px 80px rgba(34, 28, 20, .13);--shadow-tight: 0 12px 30px rgba(34, 28, 20, .09);--radius-lg: 8px;--radius-md: 8px;--max: 1240px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:linear-gradient(145deg,rgba(35,63,53,.08),transparent 34%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);font-family:var(--font-sans);line-height:1.6;letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background-image:linear-gradient(rgba(25,23,20,.025) 1px,transparent 1px);background-size:100% 12px;opacity:.38}a{color:inherit}button,input,textarea,select{font:inherit}img{display:block;max-width:100%}:focus-visible{outline:3px solid rgba(35,63,53,.34);outline-offset:4px}#main{min-height:72vh}.site-header{position:sticky;top:0;z-index:20;background:#f6f1e8bd;box-shadow:0 16px 34px #221c140f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;padding:14px 24px;gap:18px}.site-logo{display:inline-flex;align-items:center;flex:0 0 auto;gap:10px;color:var(--text);font-weight:700;text-decoration:none}.site-logo__image{width:36px;height:36px;border-radius:8px;box-shadow:0 10px 22px #233f352e}.site-nav{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px;min-width:0}.site-nav a{padding:8px 12px;color:var(--muted);border-radius:999px;text-decoration:none;transition:color .18s ease,background .18s ease,transform .18s ease}.site-nav a:hover,.site-nav a.is-active{color:var(--accent-ink);background:#233f3517;transform:translateY(-1px)}.page-shell{width:100%}.hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(340px,.96fr);align-items:end;max-width:var(--max);margin:0 auto;padding:88px 24px 52px;gap:48px}.eyebrow{margin:0 0 12px;color:var(--accent);font-size:.86rem;font-weight:700;letter-spacing:0}.hero h1{margin:0;font-family:var(--font-display);font-size:clamp(4.4rem,7.2vw,5.9rem);line-height:1.02;letter-spacing:0;white-space:nowrap}.hero__intro{max-width:680px;margin:26px 0 0;color:#3d3832;font-size:1.28rem;line-height:1.75}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero__side{display:grid;gap:14px}.currently-card,.contact-panel,.not-found{background:var(--surface);border:1px solid rgba(35,63,53,.06);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.currently-card{padding:28px}.currently-card h2{margin:0;max-width:460px;font-family:var(--font-display);font-size:1.82rem;line-height:1.2;letter-spacing:0;white-space:nowrap}.currently-card p:last-child{margin:22px 0 0;color:var(--muted)}.hero-index{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hero-index span,.project-lenses span,.tag-row span,.detail-meta span{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;color:var(--accent-ink);background:#dfe8dfc7;border-radius:999px;font-size:.82rem;font-weight:650}.hero-index span{justify-content:center;text-align:center;box-shadow:0 10px 24px #221c140d}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 16px;border-radius:999px;box-shadow:0 16px 30px #221c141a;font-weight:700;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.button-link:hover{transform:translateY(-2px);box-shadow:0 22px 46px #221c1424}.button-link--primary{color:#fffaf3;background:var(--accent)}.button-link--soft{color:var(--accent-ink);background:var(--accent-soft)}.button-link--ghost{color:var(--accent);background:#fffaf3ad;box-shadow:0 10px 24px #221c140f}.section{max-width:var(--max);margin:0 auto;padding:56px 24px}.section--compact{padding-top:18px}.section__heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.section__heading h2{max-width:none;margin:0;font-family:var(--font-display);font-size:clamp(2rem,3.1vw,2.55rem);line-height:1.12;letter-spacing:0;white-space:nowrap}.section__heading p:not(.eyebrow){max-width:720px;margin:14px 0 0;color:var(--muted);font-size:1.02rem}.section__actions{display:flex;flex-wrap:wrap;flex:0 0 auto;justify-content:flex-end;gap:8px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:22px}.project-frame{min-width:0}.project-frame--wide{grid-column:span 2}.project-frame--tall{grid-row:span 2}.project-card--wide .project-card__media{aspect-ratio:16 / 9}.project-grid--archive{grid-template-columns:minmax(0,.72fr)}.project-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{display:flex;flex-direction:column;height:100%;overflow:hidden;color:var(--text);background:#fffcf7e6;border:1px solid rgba(35,63,53,.055);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-decoration:none;transform:translateY(0);transition:transform .26s ease,box-shadow .26s ease,background .26s ease}.project-card:hover{background:var(--surface-strong);box-shadow:var(--shadow-medium);transform:translateY(-6px)}.project-card__media{aspect-ratio:4 / 3;overflow:hidden;background:var(--surface-moss)}.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .42s ease}.project-card:hover .project-card__media img{transform:scale(1.035)}.project-card__body{display:flex;flex:1;flex-direction:column;padding:20px}.project-card__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.82rem}.project-card h3{margin:16px 0 0;font-family:var(--font-display);font-size:1.55rem;line-height:1.22;letter-spacing:0}.project-card p{margin:12px 0 18px;color:var(--muted)}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}.project-lenses{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 24px}.note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.note-grid--list{max-width:860px}.note-card{display:block;height:100%;padding:24px;color:var(--text);background:#fffcf7d6;border:1px solid rgba(35,63,53,.055);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.note-card:hover{background:var(--surface-strong);box-shadow:var(--shadow-medium);transform:translateY(-4px)}.note-card time,.note-detail__header time{color:var(--accent);font-size:.88rem;font-weight:700}.note-card h3{margin:12px 0 10px;font-family:var(--font-display);font-size:1.55rem;line-height:1.25;letter-spacing:0}.note-card p{margin:0;color:var(--muted)}.detail-page__inner{max-width:var(--max);margin:0 auto;padding:56px 24px 72px}.detail-page__inner--narrow{max-width:880px}.back-link{margin-bottom:18px}.detail-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:34px;padding:30px;background:linear-gradient(135deg,#dfe8dfc7,#fffaf3e6),var(--surface);border:1px solid rgba(35,63,53,.055);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.detail-hero h1,.note-detail__header h1,.about-page h1,.not-found h1{margin:0;font-family:var(--font-display);font-size:3.7rem;line-height:1.05;letter-spacing:0}.detail-hero__copy>p:not(.eyebrow){margin:20px 0 0;color:#443f38;font-size:1.15rem}.detail-meta,.detail-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.detail-links{margin-top:28px}.detail-hero__image{overflow:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-tight)}.detail-hero__image img{width:100%;aspect-ratio:16 / 10;object-fit:cover}.detail-body{max-width:840px;margin:34px auto 0;padding:34px;background:#fffcf7cc;border:1px solid rgba(35,63,53,.05);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:var(--font-display);letter-spacing:0}.markdown-body h1{margin:0 0 18px;font-size:2.4rem;line-height:1.16}.markdown-body h2{margin:34px 0 12px;font-size:1.85rem;line-height:1.22}.markdown-body h3{margin:28px 0 10px;font-size:1.35rem}.markdown-body p,.markdown-body li,.markdown-body blockquote{color:#3e3933;font-size:1.02rem}.markdown-body p{margin:0 0 16px}.markdown-body ul{margin:10px 0 22px;padding-left:1.25rem}.markdown-body li+li{margin-top:6px}.markdown-body a{color:var(--accent);font-weight:700;text-decoration-thickness:.08em;text-underline-offset:.18em}.markdown-body blockquote{margin:28px 0;padding:22px;background:#dfe8dfb8;border-radius:var(--radius-md);box-shadow:inset 0 1px #ffffffa3}.markdown-code{overflow-x:auto;margin:24px 0;padding:18px;color:#f7f2e9;background:#1d2c26;border-radius:var(--radius-md);box-shadow:var(--shadow-tight)}.markdown-code code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92rem}.markdown-figure{margin:26px 0;overflow:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-tight)}.markdown-figure img{width:100%}.markdown-inline-image{display:inline-block;width:auto;max-height:1.2em;vertical-align:text-bottom}.note-detail__header{max-width:780px;padding:28px 0 8px}.note-detail__header p{margin:18px 0 0;color:var(--muted);font-size:1.13rem}.about-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);align-items:start;max-width:var(--max);margin:0 auto;padding:80px 24px;gap:42px}.about-page__copy p:not(.eyebrow){max-width:740px;margin:22px 0 0;color:#403a34;font-size:1.08rem}.contact-panel{padding:28px}.contact-panel h2{margin:0;font-family:var(--font-display);font-size:2rem;line-height:1.18;letter-spacing:0}.contact-links{display:grid;gap:10px;margin-top:24px}.contact-links a{padding:14px 16px;color:var(--accent-ink);background:#dfe8dfb8;border-radius:var(--radius-md);box-shadow:0 10px 24px #221c140d;font-weight:700;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.contact-links a:hover{box-shadow:var(--shadow-tight);transform:translateY(-2px)}.not-found{max-width:720px;margin:80px auto;padding:34px}.not-found p:not(.eyebrow){color:var(--muted)}.admin-toolbar{position:sticky;top:64px;z-index:19;display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:12px auto 0;padding:12px;gap:14px;background:#fffcf7e6;border:1px solid rgba(35,63,53,.06);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-toolbar div{display:grid;min-width:160px;gap:1px}.admin-toolbar strong{color:var(--accent-ink);line-height:1.2}.admin-toolbar span{color:var(--muted);font-size:.82rem;font-weight:700}.admin-toolbar nav,.admin-login__actions,.admin-inline-actions,.admin-detail-actions,.admin-hero-actions,.admin-modal__footer{display:flex;flex-wrap:wrap;gap:8px}.admin-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;color:var(--accent-ink);background:var(--accent-soft);border:0;border-radius:999px;box-shadow:0 12px 26px #221c1417;cursor:pointer;font:inherit;font-size:.9rem;font-weight:800;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.admin-button:hover{box-shadow:0 18px 38px #221c1421;transform:translateY(-2px)}.admin-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.admin-button--primary{color:#fffaf3;background:var(--accent)}.admin-button--soft{background:var(--accent-soft)}.admin-button--ghost{background:#fffaf3d1}.admin-button--danger{color:#6b221e;background:#f2ded8}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.admin-add-button,.admin-icon-action{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;font:inherit;font-weight:800;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.admin-add-button{min-height:42px;padding:8px 13px 8px 9px;gap:8px;color:var(--accent-ink);background:#dfe8dfe0;border-radius:999px;box-shadow:0 12px 26px #221c1417}.admin-add-button>span:first-child{display:inline-grid;place-items:center;width:26px;height:26px;color:#fffaf3;background:var(--accent);border-radius:999px;font-size:1.25rem;line-height:1}.admin-icon-action{width:36px;height:36px;color:var(--accent-ink);background:#dfe8dff0;border-radius:999px;box-shadow:0 12px 26px #221c141a}.admin-icon-action--danger{color:#6b221e;background:#f2ded8}.admin-icon-action svg{width:18px;height:18px;fill:currentColor}.admin-add-button:hover,.admin-icon-action:hover{box-shadow:0 18px 38px #221c1421;transform:translateY(-2px)}.admin-login{max-width:820px;margin:0 auto;padding:80px 24px}.admin-login__panel{padding:32px;background:#fffcf7e6;border:1px solid rgba(35,63,53,.06);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-login__panel h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.6rem);line-height:1.08;letter-spacing:0;white-space:nowrap}.admin-login__panel p:not(.eyebrow){color:#403a34}.admin-login__status{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.admin-login__status span{padding:8px 11px;color:var(--accent-ink);background:#dfe8dfc7;border-radius:999px;box-shadow:0 10px 24px #221c140d;font-size:.88rem;font-weight:800}.admin-login__notice,.admin-login__message,.admin-modal__error{padding:12px 14px;border-radius:var(--radius-md);font-weight:700}.admin-login__notice{color:#6b221e;background:#f2ded8}.admin-login__message{color:var(--accent-ink);background:#dfe8dfc7}.admin-login__form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:22px}.admin-login__form label,.admin-form-grid label,.admin-link-row label{display:grid;gap:8px;color:var(--accent-ink);font-size:.88rem;font-weight:800}.admin-login input,.admin-modal input,.admin-modal select,.admin-modal textarea{width:100%;min-width:0;color:var(--text);background:#f6f1e894;border:1px solid rgba(35,63,53,.12);border-radius:var(--radius-md);padding:11px 12px;outline:none}.admin-login input:focus,.admin-modal input:focus,.admin-modal select:focus,.admin-modal textarea:focus{border-color:#233f3557;box-shadow:0 0 0 4px #233f3514}.admin-entity{position:relative;height:100%}.admin-inline-actions{position:absolute;top:12px;right:12px;z-index:3;padding:6px;background:#fffcf7d1;border-radius:999px;box-shadow:0 16px 36px #221c141c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-detail-actions{margin:0 0 16px}.admin-hero-actions{justify-content:flex-end}.admin-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}.admin-modal__backdrop{position:absolute;inset:0;background:#19171457;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-modal__panel{position:relative;z-index:1;width:min(100%,980px);max-height:min(88vh,980px);overflow:auto;padding:26px;background:#fffcf7f5;border:1px solid rgba(35,63,53,.06);border-radius:var(--radius-lg);box-shadow:0 34px 100px #221c143d}.admin-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.admin-modal__header h2{margin:0;font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.12;letter-spacing:0}.admin-icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--accent-ink);background:#dfe8dfc7;border:0;border-radius:999px;cursor:pointer;font-size:1.55rem;line-height:1}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-form-span{grid-column:1 / -1}.admin-check{align-content:center;grid-template-columns:auto 1fr;min-height:46px}.admin-check input{width:18px}.admin-link-editor{display:grid;gap:12px;padding:16px;background:#dfe8df57;border-radius:var(--radius-md)}.admin-link-editor__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-link-editor__heading h3,.admin-link-editor p{margin:0}.admin-link-editor p{color:var(--muted)}.admin-link-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.1fr) minmax(180px,1.2fr) auto;align-items:end;gap:10px}.admin-modal textarea{resize:vertical}.admin-modal__error{margin:16px 0 0;color:#6b221e;background:#f2ded8}.admin-modal__footer{align-items:center;justify-content:flex-end;margin-top:20px}.admin-modal__footer span{flex:1}.project-resource-links{display:grid;gap:10px;margin-top:28px}.project-resource-links a{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:13px 14px;color:var(--accent-ink);background:#fffaf3c7;border-radius:var(--radius-md);box-shadow:0 12px 28px #221c1414;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.project-resource-links a:hover{background:var(--surface-strong);box-shadow:var(--shadow-tight);transform:translateY(-2px)}.project-resource-links__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:#fffaf3;background:var(--accent);border-radius:999px}.project-resource-links__icon svg{width:18px;height:18px;fill:currentColor}.project-resource-links strong,.project-resource-links small{display:block}.project-resource-links small{margin-top:2px;color:var(--muted);font-size:.82rem;font-weight:700}.site-footer{padding:42px 24px 52px}.site-footer__inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;gap:20px;color:var(--muted)}.site-footer p{margin:0}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.site-footer a{padding:7px 10px;border-radius:999px;text-decoration:none;transition:color .18s ease,background .18s ease}.site-footer a:hover{color:var(--accent);background:#233f3514}.reveal{opacity:0;transform:translateY(18px);transition:opacity .72s ease,transform .72s ease;transition-delay:var(--delay, 0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}.page-enter{animation:page-enter .52s ease both}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.hero{grid-template-columns:1fr;align-items:start;padding-top:66px}.hero h1{font-size:clamp(3.6rem,8vw,4.7rem)}.project-grid,.project-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.project-frame--wide{grid-column:span 2}.detail-hero,.about-page{grid-template-columns:1fr}}@media(max-width:720px){.site-header__inner{align-items:center;flex-direction:row;padding:10px 16px;gap:12px}.site-logo span{font-size:.96rem;white-space:nowrap}.site-nav{flex:1;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav a{flex:0 0 auto;padding:7px 9px;font-size:.88rem}.hero,.section,.detail-page__inner,.about-page{padding-right:18px;padding-left:18px}.hero{padding-top:42px;gap:24px}.hero h1{font-size:clamp(2.55rem,11vw,3.25rem)}.hero__intro{font-size:1.02rem;line-height:1.68}.hero__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.button-link{min-height:42px;padding:10px 13px}.hero-index,.project-grid,.project-grid--compact,.project-grid--archive,.note-grid{grid-template-columns:1fr}.project-frame--wide,.project-frame--tall{grid-column:auto;grid-row:auto}.section__heading{align-items:flex-start;flex-direction:column;gap:14px}.section__heading h2{font-size:clamp(1.62rem,7vw,2rem);white-space:nowrap}.detail-hero h1,.note-detail__header h1,.about-page h1,.not-found h1{font-size:clamp(2rem,9vw,2.45rem)}.detail-hero,.detail-body,.contact-panel,.currently-card,.not-found{padding:22px}.admin-toolbar{position:static;align-items:flex-start;flex-direction:column;margin:10px 18px 0}.admin-toolbar nav,.admin-login__actions{width:100%}.admin-toolbar .admin-button,.admin-login__actions .admin-button,.admin-add-button{flex:1 1 130px}.admin-login{padding:44px 18px 64px}.admin-login__panel,.admin-modal__panel{padding:22px}.admin-login__panel h1{white-space:normal;word-break:keep-all}.admin-login__form,.admin-form-grid,.admin-link-row{grid-template-columns:1fr}.admin-modal{align-items:stretch;padding:12px}.admin-modal__panel{max-height:calc(100vh - 24px)}.admin-inline-actions{position:static;margin:8px 0 0;border-radius:var(--radius-md)}.admin-inline-actions{justify-content:flex-end}.site-footer__inner{align-items:flex-start;flex-direction:column}.site-footer nav{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
