@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=IBM+Plex+Sans+KR:wght@400;500;600;700&display=swap');
:root{--ink:#07111f;--paper:#eef3f8;--panel:#10243a;--blue:#4f8cff;--cyan:#78e4f5;--muted:#91a6bb;--line:rgba(176,205,233,.2);--orange:#ff7a3d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:'IBM Plex Sans KR',system-ui,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}header{height:84px;padding:18px 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2;background:rgba(7,17,31,.9);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:34px;height:34px;display:block;position:relative;border:2px solid var(--cyan);transform:rotate(45deg);border-radius:7px}.brand-mark i,.brand-mark b{position:absolute;display:block;background:var(--cyan);height:2px;width:19px;transform:rotate(-45deg);left:5px}.brand-mark i{top:10px}.brand-mark b{top:18px}.brand strong{font:600 22px/1 'DM Mono';letter-spacing:.02em}.brand small{display:block;color:var(--muted);font:11px/1.5 'DM Mono';letter-spacing:.08em;margin-top:5px}nav{display:flex;align-items:center;gap:25px;font:12px 'DM Mono';letter-spacing:.1em;color:var(--muted)}nav a:hover{color:var(--cyan)}select{background:transparent;color:var(--paper);border:1px solid var(--line);padding:7px 8px;font:12px 'DM Mono'}option{background:var(--ink)}.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:48% 52%;align-items:stretch;border-bottom:1px solid var(--line)}.hero-copy{padding:11vh 7vw 8vh 10vw;display:flex;flex-direction:column;justify-content:center}.kicker,.mono{font:11px 'DM Mono';letter-spacing:.18em;color:var(--cyan)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(48px,6.5vw,94px);line-height:1.04;letter-spacing:-.07em;margin:30px 0 28px;font-weight:600}.hero h1 em,h2 em{font-style:normal;color:var(--cyan)}.hero-lead{max-width:520px;color:#b6c5d4;font-size:18px}.hero-actions{display:flex;gap:12px;margin:32px 0}.button{display:inline-flex;padding:13px 20px;border:1px solid var(--line);font-size:14px;align-items:center;justify-content:center}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.ghost:hover{border-color:var(--cyan);color:var(--cyan)}.hero-meta{display:flex;gap:10px;color:var(--muted);font:11px 'DM Mono';letter-spacing:.08em}.hero-visual{min-height:620px;position:relative;overflow:hidden;background:#0a192a}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center}.visual-tag{position:absolute;right:28px;bottom:25px;border:1px solid rgba(120,228,245,.5);padding:10px 13px;color:var(--cyan);font:11px/1.3 'DM Mono';letter-spacing:.15em}.section{padding:120px 10vw;border-bottom:1px solid var(--line)}.section-head{max-width:680px}.section-head h2,.vision h2,.contact h2{font-size:clamp(42px,5vw,76px);line-height:1.08;letter-spacing:-.06em;margin:26px 0 24px}.section-head>p:last-child{color:#aebfd0;max-width:600px;font-size:17px}.study-grid{margin-top:60px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:24px}.demo-card,.contact-proto,.pdf-preview{border:1px solid var(--line);background:linear-gradient(135deg,#10243a,#0b192b);box-shadow:0 24px 60px rgba(0,0,0,.2)}.demo-toolbar,.demo-foot,.preview-top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}.demo-foot{border-top:1px solid var(--line);border-bottom:0;color:var(--muted);font:10px 'DM Mono';letter-spacing:.12em}.toggle{border:1px solid var(--line);background:transparent;padding:8px 12px;font-size:13px;color:var(--muted);cursor:pointer}.toggle.active,.toggle:hover{background:var(--blue);border-color:var(--blue);color:white}.writing-demo{height:390px;padding:38px 44px;display:flex;flex-direction:column;gap:20px;transition:.35s ease;background:radial-gradient(circle at 70% 25%,rgba(79,140,255,.22),transparent 35%)}.writing-demo p{font:15px 'DM Mono';color:var(--cyan)}.writing-demo strong{font-size:clamp(34px,4vw,60px);line-height:1.1;letter-spacing:-.07em}.writing-demo small{color:var(--muted);font-size:14px}.writing-demo.vertical{writing-mode:vertical-rl;height:390px;align-items:flex-start;gap:24px}.writing-demo.vertical strong{font-size:clamp(30px,3.4vw,50px)}.principles{display:flex;flex-direction:column;gap:13px}.principles article{border:1px solid var(--line);padding:22px 24px;background:rgba(16,36,58,.5)}.principles span,.filetype{font:11px 'DM Mono';color:var(--cyan);letter-spacing:.1em}.principles h3{margin:12px 0 5px;font-size:21px}.principles p{margin:0;color:var(--muted);font-size:14px}.contact-app{background:#0a1728}.contact-proto{margin-top:55px;display:grid;grid-template-columns:1fr 1fr;min-height:390px}.contact-list{padding:22px;border-right:1px solid var(--line)}.person{width:100%;display:flex;align-items:center;gap:13px;background:none;border:0;border-bottom:1px solid var(--line);padding:17px 8px;text-align:left;cursor:pointer}.person.selected,.person:hover{color:var(--cyan)}.person span:nth-child(2){display:flex;flex-direction:column}.person b{font:13px 'DM Mono'}.person small{color:var(--muted);font-size:12px}.person i{margin-left:auto;font-style:normal}.avatar{width:34px;height:34px;border:1px solid var(--cyan);display:grid;place-items:center;border-radius:50%;font:14px 'DM Mono'}.contact-detail{padding:46px;display:flex;flex-direction:column;justify-content:center}.contact-detail strong{font:500 clamp(34px,4.5vw,62px)/.96 'DM Mono';letter-spacing:-.08em;margin:22px 0}.contact-detail p{color:var(--muted)}.contact-detail a,.mail{color:var(--cyan);font:15px 'DM Mono';text-decoration:underline;text-underline-offset:6px}.pdf-lab{background:#0d2034}.pdf-grid{margin-top:55px;display:grid;grid-template-columns:.7fr 1.3fr;gap:24px}.dropzone{border:1px dashed rgba(120,228,245,.55);display:flex;min-height:320px;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);cursor:pointer;background:rgba(6,16,29,.35)}.dropzone:hover{background:rgba(79,140,255,.08);color:var(--paper)}.dropzone strong{color:var(--paper);font-size:19px}.dropzone input{display:none}.upload-icon{font-size:48px;color:var(--cyan);font-weight:300}.pdf-preview{min-height:320px}.preview-top{border-color:var(--line)}.preview-paper{margin:24px auto 17px;width:min(82%,440px);min-height:195px;padding:24px;background:var(--paper);color:var(--ink);transition:.35s}.preview-paper.vertical{writing-mode:vertical-rl;min-height:220px}.paper-label{font:10px 'DM Mono';color:#3564a0}.preview-paper h3{font-size:24px;line-height:1.15;margin:17px 0}.preview-paper p{font-size:13px}.file-status{margin:0;padding:0 24px 18px;color:var(--muted);font:12px 'DM Mono'}.archive{background:#081625}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:55px}.archive-card{border:1px solid var(--line);padding:25px;min-height:170px;display:flex;flex-direction:column;transition:.2s}.archive-card:hover{border-color:var(--cyan);transform:translateY(-3px)}.archive-card strong{font-size:20px;margin-top:20px}.archive-card small{color:var(--muted);margin-top:5px}.archive-card i{margin-top:auto;color:var(--cyan);font-size:22px;font-style:normal}.archive-card.muted{opacity:.65}.vision{background:linear-gradient(140deg,#102d48,#0c1c2f)}.vision-line{display:flex;align-items:flex-end;justify-content:space-between;gap:60px}.vision-line p{max-width:360px;color:#b5c9db}.roadmap{display:flex;gap:36px;margin-top:64px;color:var(--muted);font:12px 'DM Mono';letter-spacing:.08em}.roadmap b{color:var(--cyan);margin-right:8px}.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;background:#06111e}.contact-person{font:13px 'DM Mono';letter-spacing:.13em;color:var(--muted);margin:30px 0 25px}.contact address{font-style:normal;color:var(--muted);font-size:14px;margin-top:36px}.contact-panel{border-left:1px solid var(--line);padding:40px;display:flex;flex-direction:column;justify-content:center;min-height:340px}.contact-panel span{font:12px 'DM Mono';color:var(--cyan);letter-spacing:.14em}.contact-panel p{font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:-.06em;margin-top:27px}footer{padding:35px 10vw;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:12px 'DM Mono'}footer div{display:flex;gap:24px}footer a:hover{color:var(--cyan)}@media(max-width:850px){header{height:76px;padding:14px 5vw}.brand strong{font-size:18px}.brand-mark{width:29px;height:29px}.brand small{font-size:9px}nav{gap:10px;font-size:10px}.hero{display:block}.hero-copy{padding:74px 7vw 62px;min-height:560px}.hero h1{font-size:clamp(47px,13vw,78px)}.hero-lead{font-size:16px}.hero-visual{min-height:410px}.section{padding:82px 7vw}.section-head h2,.vision h2,.contact h2{font-size:clamp(40px,12vw,66px)}.study-grid,.pdf-grid,.contact-proto,.contact{grid-template-columns:1fr}.principles{margin-top:0}.contact-list{border-right:0;border-bottom:1px solid var(--line)}.contact-detail{min-height:310px;padding:34px}.archive-grid{grid-template-columns:1fr}.vision-line{display:block}.vision-line p{margin-top:25px}.roadmap{flex-direction:column;gap:12px;margin-top:42px}.contact-panel{border-left:0;border-top:1px solid var(--line);padding:38px 0;min-height:220px}footer{padding:28px 7vw;display:block}footer div{margin-top:16px;flex-wrap:wrap}.writing-demo{height:350px;padding:28px}.writing-demo.vertical{height:350px}}
.research-basis{background:#091a2c}.basis-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;margin-top:55px}.clipping{margin:0;border:1px solid var(--line);background:#07111f;padding:14px}.clipping img{display:block;width:100%;height:100%;max-height:460px;object-fit:cover;object-position:center}.clipping figcaption{font:11px 'DM Mono';color:var(--muted);padding:13px 4px 2px}.basis-cards{display:flex;flex-direction:column;gap:14px}.basis-cards article{border:1px solid var(--line);padding:22px;background:rgba(16,36,58,.55)}.basis-cards h3{font-size:21px;margin:12px 0 7px}.basis-cards p{color:var(--muted);font-size:14px;margin:0}@media(max-width:850px){.basis-grid{grid-template-columns:1fr}.clipping img{max-height:300px}}
.clipping img{height:360px}
@media(max-width:850px){header{height:auto;min-height:76px;flex-wrap:wrap;gap:10px}nav{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:10px}.clipping img{height:300px}}
.hero-copy{padding-left:8vw;padding-right:4vw}
.hero h1{font-size:clamp(40px,4vw,64px)}
@media(max-width:850px){.hero-copy{padding-left:7vw;padding-right:7vw}.hero h1{font-size:clamp(30px,9vw,50px)}}
.writing-demo.vertical,.preview-paper.vertical{font-family:'SEROUI Vertical','Noto Serif CJK KR','Noto Serif KR',serif;font-feature-settings:'vert' 1,'vrt2' 1;text-orientation:mixed}


/* Text flow lab */
.text-lab-grid{margin-top:55px;display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}
.text-input-panel,.text-preview-card{border:1px solid var(--line);background:linear-gradient(135deg,#10243a,#0b192b)}
.text-input-panel{display:flex;flex-direction:column;gap:14px;min-height:320px;padding:22px}
.text-input-panel textarea{flex:1;min-height:210px;resize:vertical;background:#081625;color:var(--paper);border:1px solid var(--line);padding:18px;font:16px/1.7 'IBM Plex Sans KR',sans-serif}
.text-input-panel textarea:focus{outline:1px solid var(--cyan);border-color:var(--cyan)}
.text-count{font:11px 'DM Mono';color:var(--muted);text-align:right}
.text-preview-card{padding:0;min-height:320px}
.text-preview{margin:24px auto 17px;width:min(82%,440px);min-height:220px;padding:28px;background:var(--paper);color:var(--ink);transition:.35s;overflow:hidden}
.text-preview.horizontal{writing-mode:horizontal-tb}
.text-preview.vertical{writing-mode:vertical-rl;height:360px;min-height:360px;font-family:'SEROUI Vertical','Noto Serif CJK KR','Noto Serif KR',serif;font-feature-settings:'vert' 1,'vrt2' 1;text-orientation:mixed;letter-spacing:.12em}
.text-preview p{white-space:pre-wrap;margin:18px 0 0;font-size:22px;line-height:1.55}
.text-preview.vertical p{line-height:1.8;letter-spacing:.16em}
.basis-grid{grid-template-columns:1fr}
.basis-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-detail.vertical{writing-mode:vertical-rl;align-items:flex-start;justify-content:flex-start;padding:32px;gap:18px;overflow:auto;min-height:340px}
.contact-detail.vertical strong{font-family:'SEROUI Vertical','Noto Serif CJK KR','Noto Serif KR',serif;letter-spacing:.12em;line-height:1.35;margin:0}
.contact-detail.vertical p{line-height:1.8;letter-spacing:.12em}
.contact-detail.vertical a{writing-mode:horizontal-tb;white-space:nowrap;margin-top:auto}
.writing-demo.vertical{height:460px;min-height:460px;letter-spacing:.16em;line-height:1.7}
.writing-demo.vertical strong{letter-spacing:.16em;line-height:1.35}
.writing-demo.vertical small{letter-spacing:.12em;line-height:1.8}
@media(max-width:850px){.text-lab-grid{grid-template-columns:1fr}.text-preview.vertical{height:320px;min-height:320px}.basis-cards{grid-template-columns:1fr}.contact-detail.vertical{min-height:330px;height:330px}.writing-demo.vertical{height:430px;min-height:430px}}

/* Mixed-direction details and upright numerals */
.upright-number{writing-mode:vertical-rl;text-orientation:upright;unicode-bidi:isolate;display:inline-block;letter-spacing:0}
.writing-demo.vertical .upright-number,.text-preview.vertical .upright-number{font-variant-numeric:tabular-nums;text-orientation:upright}
.text-preview{height:360px;max-height:360px;overflow:auto;scrollbar-color:var(--cyan) rgba(7,17,31,.2);scrollbar-width:thin}
.text-preview.horizontal{height:360px;max-height:360px}
.text-preview.vertical{overflow:auto;overscroll-behavior:contain}
.pdf-lab .section-head h2 em{white-space:nowrap;font-size:clamp(28px,4.1vw,52px)}
.contact-detail.vertical{writing-mode:horizontal-tb}
.contact-detail.vertical #profileName{display:flex;align-items:flex-start;gap:28px;margin:0 0 22px;letter-spacing:0}
.contact-detail.vertical #profileRole{display:flex;align-items:flex-start;gap:26px;letter-spacing:0}
.contact-detail.vertical .profile-latin{writing-mode:horizontal-tb;display:block;white-space:nowrap;letter-spacing:-.04em}
.contact-detail.vertical .profile-korean{writing-mode:vertical-rl;display:inline-block;font-family:'SEROUI Vertical','Noto Serif CJK KR','Noto Serif KR',serif;letter-spacing:.12em;line-height:1.45;white-space:nowrap}
.contact-detail.vertical #profileName .profile-korean{font-size:clamp(26px,3vw,42px)}
.contact-detail.vertical #profileRole .profile-korean{font-size:14px;min-height:170px}
.contact-detail.vertical a{writing-mode:horizontal-tb}
@media(max-width:850px){.text-preview.horizontal{height:300px;max-height:300px}.pdf-lab .section-head h2 em{font-size:24px}.contact-detail.vertical #profileName{gap:20px}.contact-detail.vertical #profileRole{gap:18px}.contact-detail.vertical #profileRole .profile-korean{font-size:13px;min-height:150px}}

/* SEROUI logo concept v1 */
.brand{gap:0;align-items:flex-end}
.brand-lockup{display:flex;align-items:flex-end;gap:10px;min-width:0}
.brand-logo-image{display:block;width:175px;height:auto;padding:4px 9px;background:#eef3f8;border-radius:7px;box-shadow:0 5px 18px rgba(0,0,0,.16)}
.brand-lockup small{display:block;margin-top:0;margin-bottom:2px;color:#b9c8d8;font:10px/1.45 'DM Mono';letter-spacing:.08em;white-space:nowrap}
@media(max-width:850px){
  .brand-lockup{gap:7px;max-width:100%}
  .brand-logo-image{width:145px;padding:3px 7px;border-radius:6px}
  .brand-lockup small{font-size:8px;letter-spacing:.05em;margin-bottom:1px}
}

/* Upright numerals: keep horizontal baseline in horizontal mode */
.upright-number{writing-mode:horizontal-tb;text-orientation:mixed;display:inline;vertical-align:baseline;line-height:inherit;letter-spacing:0}
.writing-demo.vertical .upright-number,.text-preview.vertical .upright-number{writing-mode:vertical-rl;text-orientation:upright;display:inline-block;vertical-align:baseline;line-height:1;letter-spacing:0}

/* Contact profile: place the vertical Korean name on the left */
.contact-detail.vertical #profileName{align-items:flex-start;gap:32px}
.contact-detail.vertical #profileName .profile-korean{order:-1;align-self:flex-start;font-size:clamp(34px,4vw,52px);line-height:1.3;letter-spacing:.14em;margin-top:0;transform:none}
.contact-detail.vertical #profileName .profile-latin{order:0;align-self:flex-start}
@media(max-width:850px){
  .contact-detail.vertical #profileName{gap:20px}
  .contact-detail.vertical #profileName .profile-korean{font-size:clamp(32px,10vw,44px);line-height:1.3}
}

/* Text flow containment: vertical columns scroll inside the preview only */
.text-lab-grid{min-width:0}
.text-lab-grid > *{min-width:0;max-width:100%}
.text-input-panel,.text-preview-card{min-width:0;max-width:100%}
.text-preview-card{overflow:hidden}
.text-preview{min-width:0;max-width:calc(100% - 48px)}
.text-preview.vertical{width:min(82%,440px);max-width:calc(100% - 48px);overflow:auto;contain:paint}
@media(max-width:850px){.text-preview{max-width:calc(100% - 48px)}.text-preview.vertical{max-width:calc(100% - 48px)}}

/* Transparent white SEROUI logo */
.brand-logo-image{background:transparent;padding:0;border-radius:0;box-shadow:none}
