@charset "UTF-8";

:root { --ink:#181819; --paper:#f4f2eb; --white:#fffef9; --blue:#5368ff; --coral:#ff7658; --lime:#d8ef52; --violet:#a979eb; --line:rgba(24,24,25,.17); --muted:#696760; --wrap:min(1180px,calc(100% - 48px)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; } button,input { font:inherit; color:inherit; } button { cursor:pointer; }
.wrap { width:var(--wrap); margin-inline:auto; }.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }.skip { position:fixed;z-index:99;left:12px;top:12px;padding:10px 14px;background:var(--ink);color:white;transform:translateY(-150%); }.skip:focus { transform:none; }

.topbar { height:72px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding-inline:max(24px,calc((100vw - 1180px)/2)); border-bottom:1px solid var(--line); position:relative; z-index:20; background:rgba(244,242,235,.92); backdrop-filter:blur(12px); }
.logo { display:flex; align-items:center; gap:10px; width:max-content; }.logo>span { display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--ink);color:white;font-weight:900; }.logo strong { font-size:17px;letter-spacing:-.04em; }.logo small { padding:3px 5px;background:var(--lime);font:800 8px monospace;transform:rotate(-3deg); }
.topbar nav { display:flex;gap:32px;font-size:13px;font-weight:700; }.topbar nav a { padding:27px 0 24px;position:relative; }.topbar nav a:hover::after { content:"";position:absolute;left:0;right:0;bottom:18px;height:2px;background:var(--blue); }
.all-link { justify-self:end;padding:10px 15px;border:1px solid var(--ink);font-size:11px;font-weight:750; }.all-link:hover { background:var(--ink);color:white; }.all-link span { margin-left:10px; }.menu { display:none; }

.quick-hero { width:var(--wrap);margin:0 auto;min-height:555px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px;padding:55px 0 62px; }
.micro { margin:0 0 18px;display:flex;align-items:center;gap:9px;font:800 10px monospace;letter-spacing:.12em; }.micro i { display:block;width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(83,104,255,.15); }
.hero-intro h1 { margin:0;font-size:clamp(48px,5vw,68px);line-height:1.07;letter-spacing:-.07em; }.hero-intro h1 em { color:var(--blue);font-style:normal;position:relative; }.hero-intro h1 em::after { content:"";position:absolute;z-index:-1;left:0;right:0;bottom:-5px;height:6px;background:var(--lime);transform:rotate(-1deg); }
.intro-text { margin:25px 0 24px;color:#55534e;font-size:14px;line-height:1.75; }.hero-search { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:var(--white);border:1.5px solid var(--ink);padding:6px 7px 6px 16px;box-shadow:5px 5px 0 var(--ink); }.hero-search>span { font-size:22px; }.hero-search input { border:0;outline:0;background:transparent;min-width:0;padding:11px 0;font-size:12px; }.hero-search button { border:0;background:var(--ink);color:white;padding:11px 18px;font-size:11px;font-weight:800; }.search-hints { display:flex;align-items:center;gap:11px;margin-top:17px;font-size:10px; }.search-hints span { color:var(--muted); }.search-hints button { border:0;border-bottom:1px solid transparent;background:none;padding:1px 0;font-size:10px; }.search-hints button:hover { border-color:var(--ink); }

.category-panel { border:1.5px solid var(--ink);background:var(--ink);box-shadow:8px 8px 0 var(--coral); }.panel-head { height:39px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid #474747;font:700 9px monospace;letter-spacing:.12em; }.panel-head small { color:#8e8e8e;font-size:8px; }.category-links { display:grid;grid-template-columns:1fr 1fr; }.quick-card { min-height:208px;padding:14px 16px 16px;position:relative;display:flex;flex-direction:column;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transition:transform .2s;overflow:hidden; }.quick-card:hover { transform:translate(-4px,-4px);z-index:2;box-shadow:5px 5px 0 var(--white); }.quick-card.tool{background:var(--blue);color:white}.quick-card.game{background:var(--coral)}.quick-card.story{background:var(--lime)}.quick-card.special{background:var(--violet)}.count { font:700 9px monospace; }.arrow { position:absolute;right:14px;top:11px;font-size:17px; }.quick-card>div:last-child { margin-top:auto;position:relative;z-index:2; }.quick-card h2 { margin:0 0 4px;font-size:25px;letter-spacing:-.06em; }.quick-card p { margin:0;font-size:10px;opacity:.72; }.mini-art { position:absolute;right:18px;top:43px; }.window-art { width:76px;height:56px;background:var(--paper);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:20px 10px 7px; }.window-art::before { content:"";position:absolute;left:0;right:0;top:0;height:14px;border-bottom:1px solid var(--ink);background:var(--coral); }.window-art i { display:block;height:3px;background:var(--ink);margin:3px 0; }.window-art i:nth-child(2){width:65%}.window-art i:nth-child(3){width:82%}.play-art { font:900 25px monospace;transform:rotate(-8deg);text-shadow:3px 3px 0 var(--paper);top:62px; }.code-art { font:800 43px monospace;top:48px; }.spark-art { font-size:58px;line-height:1;top:38px;color:var(--lime); }

.status-strip { min-height:46px;display:flex;align-items:center;justify-content:center;gap:0;background:var(--white);border-block:1px solid var(--ink);font:700 9px monospace;letter-spacing:.06em; }.status-strip span { padding:0 29px;border-right:1px solid var(--line); }.status-strip i { display:inline-block;width:6px;height:6px;border-radius:50%;background:#35ae63;margin-right:7px; }.status-strip .strip-mark { color:var(--blue);border:0; }

.popular { padding:104px 0 118px; }.section-title { display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px; }.section-title p { margin:0 0 12px;color:var(--blue);font:800 10px monospace;letter-spacing:.14em; }.section-title h2 { margin:0;font-size:clamp(33px,4vw,48px);letter-spacing:-.065em; }.tabs { display:flex; }.tabs button { padding:8px 15px;border:1px solid var(--ink);border-right:0;background:transparent;font-size:10px; }.tabs button:last-child{border-right:1px solid var(--ink)}.tabs button.on,.tabs button:hover{background:var(--ink);color:white}.ranking-grid { display:grid;grid-template-columns:1fr 1.35fr;border:1px solid var(--ink);background:var(--white); }.feature-item { min-height:520px;padding:19px;position:relative;display:flex;flex-direction:column;border-right:1px solid var(--ink); }.feature-item>a,.rank-item>a { position:absolute;inset:0;z-index:1; }.rank-head { display:flex;justify-content:space-between;font:700 9px monospace; }.type-stage { height:240px;position:relative;display:grid;place-items:center;margin-top:14px;background:var(--blue);border:1px solid var(--ink);overflow:hidden; }.type-stage span { position:absolute;font-size:108px;font-weight:900;line-height:1;color:white; }.type-a { left:18%;top:28px;transform:rotate(-8deg); }.type-b { right:15%;bottom:17px;color:var(--lime)!important;transform:rotate(8deg); }.type-stage i { position:relative;z-index:2;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);font:900 25px monospace; }.item-copy { margin-top:22px; }.pill { display:inline-block;padding:4px 7px;background:var(--lime);font-size:9px;font-weight:800; }.item-copy h3 { margin:10px 0 6px;font-size:27px;letter-spacing:-.055em; }.item-copy p { margin:0;color:var(--muted);font-size:11px; }.metrics { margin-top:auto;padding-top:13px;border-top:1px solid var(--line);display:flex;justify-content:space-between;position:relative;z-index:2;font:600 10px monospace; }.heart { border:0;background:transparent;padding:0 2px;position:relative;z-index:3;font:600 10px monospace; }.heart.liked { color:#e24234; }.heart b { font-weight:500; }
.ranking-list { display:grid;grid-template-rows:repeat(3,1fr); }.rank-item { min-height:173px;position:relative;padding:18px;display:grid;grid-template-columns:30px 86px 1fr auto;align-items:center;gap:17px;border-bottom:1px solid var(--ink);transition:background .2s; }.rank-item:last-child { border:0; }.rank-item:hover { background:var(--paper); }.rank { align-self:start;font:700 9px monospace; }.rank-icon { width:76px;height:76px;display:grid;place-items:center;border:1.5px solid var(--ink);border-radius:50%;box-shadow:4px 4px 0 var(--ink);font-weight:850; }.rank-icon.coral{background:var(--coral);font-size:19px}.rank-icon.lime{background:var(--lime);font:800 15px monospace}.rank-icon.violet{background:var(--violet);font-size:22px}.rank-copy small { color:var(--blue);font:800 8px monospace;letter-spacing:.12em; }.rank-copy h3 { margin:6px 0 5px;font-size:18px;letter-spacing:-.04em; }.rank-copy p { margin:0;color:var(--muted);font-size:10px; }.rank-metrics { align-self:stretch;display:flex;flex-direction:column;align-items:end;justify-content:space-between;position:relative;z-index:2;font:500 9px monospace;color:var(--muted); }.more-button { display:block;width:fit-content;margin:30px auto 0;padding:12px 17px;border:1px solid var(--ink);background:var(--white);box-shadow:4px 4px 0 var(--ink);font-size:11px;font-weight:800;transition:transform .18s,box-shadow .18s; }.more-button:hover { transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--blue); }.more-button span { margin-left:18px; }

.lab-story { padding:104px 0;background:var(--ink);color:white; }.lab-layout { display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center; }.lab-visual { min-height:430px;position:relative;display:grid;place-items:center;background:var(--coral);border:1.5px solid white;overflow:hidden; }.lab-orbit { position:absolute;border:1px solid rgba(24,24,25,.55);border-radius:50%; }.lab-orbit.one { width:320px;height:320px; }.lab-orbit.two { width:240px;height:390px;transform:rotate(58deg); }.lab-core { position:relative;z-index:2;width:205px;height:205px;border-radius:50%;background:var(--paper);color:var(--ink);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center; }.lab-core span { font:800 10px monospace;letter-spacing:.18em; }.lab-core strong { font-size:59px;line-height:.95;letter-spacing:-.08em; }.lab-core small { margin-top:8px;font:700 7px monospace; }.stamp { position:absolute;top:14px;left:15px;z-index:3;display:flex;gap:8px;align-items:center;font:700 8px monospace; }.stamp strong { font-size:17px; }.spark { position:absolute;z-index:3;color:var(--lime);font-style:normal; }.s-one { top:40px;right:37px;font-size:38px; }.s-two { bottom:30px;left:34px;font-size:23px; }.lab-copy .micro i { background:var(--lime);box-shadow:none; }.lab-copy h2 { margin:0 0 25px;font-size:clamp(37px,4.5vw,55px);line-height:1.1;letter-spacing:-.065em; }.lab-copy>p:not(.micro) { margin:0;color:#bbb9b2;font-size:13px;line-height:1.85; }.lab-principles { margin:27px 0 30px;border-top:1px solid #454545; }.lab-principles span { display:block;padding:12px 0;border-bottom:1px solid #454545;font-size:11px; }.lab-principles b { display:inline-block;width:35px;color:var(--lime);font:700 9px monospace; }.lab-copy>a { display:inline-block;padding:11px 15px;background:var(--lime);color:var(--ink);font-size:10px;font-weight:800; }.lab-copy>a span { margin-left:20px; }

.stories { padding:108px 0 120px; }.section-title>a { padding-bottom:4px;border-bottom:1px solid var(--ink);font-size:11px;font-weight:800; }.section-title>a span { margin-left:17px; }.section-title>a.section-all { padding:12px 16px;border:1px solid var(--ink);background:var(--ink);color:white;box-shadow:4px 4px 0 var(--lime);transition:transform .18s,box-shadow .18s; }.section-title>a.section-all:hover { transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--lime); }.story-grid { display:grid;grid-template-columns:1.25fr 1fr 1fr;border-top:1px solid var(--ink);border-left:1px solid var(--ink); }.story-card { min-height:355px;padding:18px;position:relative;display:flex;flex-direction:column;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transition:transform .2s,box-shadow .2s; }.story-card:hover { transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--ink);z-index:2;background:var(--white); }.main-story { background:var(--lime); }.story-no { align-self:end;font:700 9px monospace; }.story-code { margin:18px 0 auto;height:105px;display:flex;align-items:center;justify-content:center;gap:8px;font:850 30px monospace; }.story-code i { color:var(--blue);font-style:normal; }.story-code b { display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:var(--coral);border:1px solid var(--ink);box-shadow:3px 3px 0 var(--ink); }.story-info { margin-top:auto; }.story-info small { color:var(--blue);font:800 8px monospace;letter-spacing:.1em; }.story-info h3 { margin:10px 0 9px;font-size:20px;line-height:1.35;letter-spacing:-.045em; }.story-info p { margin:0 35px 0 0;color:var(--muted);font-size:10px;line-height:1.6; }.go { position:absolute;right:18px;bottom:17px;font-size:20px; }
.start-banner { min-height:210px;margin-bottom:95px;padding:40px 49px;display:grid;grid-template-columns:1fr auto;align-items:center;position:relative;overflow:hidden;background:var(--blue);color:white;border:1.5px solid var(--ink);box-shadow:8px 8px 0 var(--ink); }.start-banner p { margin:0 0 9px;color:var(--lime);font:800 9px monospace;letter-spacing:.14em; }.start-banner h2 { margin:0;font-size:clamp(29px,4vw,45px);letter-spacing:-.06em; }.start-banner a { position:relative;z-index:2;padding:13px 17px;background:var(--white);color:var(--ink);font-size:11px;font-weight:800; }.start-banner a span { margin-left:23px; }.start-banner>i { position:absolute;right:22%;font-style:normal;color:var(--lime);font-size:160px;opacity:.25; }

footer { padding:65px 0 25px;background:var(--ink);color:white; }.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px; }.footer-logo strong { font-size:29px;letter-spacing:-.05em; }.footer-logo p { color:#9a9995;font-size:11px;line-height:1.7; }.footer-grid>div:not(.footer-logo) { display:flex;flex-direction:column;align-items:flex-start;gap:10px; }.footer-grid>div>b { margin-bottom:7px;color:var(--lime);font:700 9px monospace;letter-spacing:.12em; }.footer-grid>div>a { color:#c3c2be;font-size:11px; }.copyright { grid-column:1/-1;margin:30px 0 0;padding-top:18px;border-top:1px solid #373737;display:flex;justify-content:space-between;color:#777;font:500 8px monospace;letter-spacing:.08em; }
.notice { position:fixed;z-index:50;bottom:24px;left:50%;padding:11px 17px;background:var(--ink);color:white;font-size:11px;box-shadow:4px 4px 0 var(--coral);transform:translate(-50%,130px);transition:.22s; }.notice.show { transform:translate(-50%,0); }
.item.hidden { display:none; }
.story-code b { font-size:17px; }

/* Desktop readability: 작은 보조 문구도 선명하게 읽히도록 조정합니다. */
@media(min-width:901px){
  .hero-search input{font-size:14px}.hero-search button{font-size:12px}.search-hints,.search-hints button{font-size:12px}
  .status-strip{min-height:50px;font-size:11px}
  .section-title p{font-size:11px}.tabs button{padding:10px 17px;font-size:12px}
  .rank-head,.rank{font-size:11px}.pill{font-size:10px}.item-copy p{font-size:13px;line-height:1.55}.metrics,.heart{font-size:12px}
  .rank-copy small{font-size:10px}.rank-copy p{font-size:12px;line-height:1.5}.rank-metrics{font-size:11px}
}

@media(max-width:900px){ :root{--wrap:min(100% - 34px,720px)}.topbar{grid-template-columns:1fr auto;padding-inline:17px}.topbar nav,.all-link{display:none}.menu{display:block;min-width:48px;min-height:44px;border:1px solid var(--ink);background:transparent;padding:8px 10px;font:700 9px monospace}.topbar nav.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:0;padding:10px 17px 17px;background:var(--paper);border-bottom:1px solid var(--ink)}.topbar nav.open a{display:flex;align-items:center;min-height:44px;padding:11px 4px;border-bottom:1px solid var(--line)}.quick-hero{grid-template-columns:1fr;padding-top:52px;gap:55px}.category-panel{width:min(100%,580px);justify-self:center}.status-strip{justify-content:flex-start;overflow:hidden}.status-strip span{white-space:nowrap}.ranking-grid{grid-template-columns:1fr}.feature-item{border-right:0;border-bottom:1px solid var(--ink)}.lab-layout{grid-template-columns:1fr;gap:60px}.lab-visual{width:min(100%,560px);justify-self:center}.story-grid{grid-template-columns:1fr 1fr}.main-story{grid-column:span 2}.start-banner>i{right:12%}}
@media(max-width:620px){ :root{--wrap:calc(100% - 28px)}.topbar{height:66px}.logo small{display:none}.topbar nav.open{top:66px}.quick-hero{padding:45px 0 52px}.hero-intro h1{font-size:clamp(42px,12vw,58px)}.intro-text br{display:none}.hero-search{grid-template-columns:auto 1fr;box-shadow:4px 4px 0 var(--ink)}.hero-search button{grid-column:1/-1;min-height:44px}.search-hints button{min-height:34px}.category-links{grid-template-columns:1fr 1fr}.quick-card{min-height:170px;padding:12px}.mini-art{transform:scale(.8);transform-origin:top right}.quick-card h2{font-size:22px}.status-strip span{padding-inline:16px}.popular,.stories{padding:78px 0 85px}.section-title{align-items:flex-start;flex-direction:column}.tabs button{min-height:40px}.ranking-grid{border:0;background:transparent}.feature-item{border:1px solid var(--ink);min-height:475px}.ranking-list{margin-top:13px;border:1px solid var(--ink)}.rank-item{grid-template-columns:24px 60px 1fr;gap:11px;min-height:145px;padding:13px}.rank-icon{width:55px;height:55px}.rank-metrics{display:none}.heart{min-width:44px;min-height:44px;margin-block:-12px}.lab-story{padding:78px 0}.lab-visual{min-height:340px}.lab-orbit.one{width:255px;height:255px}.lab-orbit.two{width:190px;height:310px}.lab-core{width:165px;height:165px}.lab-core strong{font-size:47px}.story-grid{grid-template-columns:1fr}.main-story{grid-column:span 1}.story-card{min-height:300px}.start-banner{min-height:300px;padding:30px;grid-template-columns:1fr;align-content:center;gap:35px}.start-banner a{display:flex;align-items:center;min-height:44px;width:max-content}.start-banner>i{right:-5%;font-size:130px}.footer-grid{grid-template-columns:1fr 1fr;gap:38px}.footer-logo{grid-column:span 2}.copyright{flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}
