body:is([data-page="galaxy-test"],[data-page="fan-letters"]) main{background:#0c1026;color:#eeeaf6;min-height:100vh}body:is([data-page="galaxy-test"],[data-page="fan-letters"]) main>.footer{display:none}
.gl{--ink:#f6edf4;--soft:#bdbbd1;max-width:1500px;margin:auto;padding:24px 44px 40px;background:radial-gradient(ellipse at 76% 20%,#28233b66,transparent 48%);font-family:"Gowun Dodum",sans-serif}.gl *{box-sizing:border-box}.gl [hidden]{display:none!important}.gl button{font:inherit;cursor:pointer}.gl button:focus-visible,.gl input:focus-visible,.gl textarea:focus-visible,.gl select:focus-visible{outline:2px solid #efbfda;outline-offset:5px}.gl-preview{font-size:12px;color:#c2bfd2;border-bottom:1px solid #ffffff14;padding-bottom:17px;line-height:1.7}.gl-hero{padding:52px 12px 48px;position:relative}.gl-eyebrow{font:11px sans-serif;letter-spacing:.25em;color:#bcb3d4;margin:0 0 20px}.gl h1{font:400 clamp(40px,5vw,68px)/1.3 "Gowun Batang",serif;letter-spacing:-.04em;color:#fff7f1;margin:0}.gl h1 em{font-style:normal;color:#efc4d8}.gl-intro{font-size:17px;line-height:1.9;color:#cfccdc;margin:20px 0 26px}.gl-primary{border:1px solid #edc3d7;border-radius:30px;padding:14px 26px;background:#edc3d7;color:#35263d;font-weight:700!important;box-shadow:0 5px 35px #d48eb51a}.gl-primary:hover{background:#ffdeec}.gl-hero:after{content:"✧";position:absolute;right:14%;top:65px;font:180px/1 serif;color:#e5d3ea99;text-shadow:0 0 90px #bba3ff;pointer-events:none}.gl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff1c;padding:20px 0}.gl-filters{display:flex;gap:7px;flex-wrap:wrap}.gl-toolbar button,.gl-bottom button{background:transparent;border:1px solid #ffffff25;color:#ccc9dd;padding:9px 15px;border-radius:24px;font-size:13px}.gl-filters button[aria-pressed="true"]{background:#e7bfd31e;color:#ffdaeb;border-color:#bb8eac}.gl-toolbar #glView{border:0;border-radius:4px;text-decoration:underline;text-underline-offset:5px;white-space:nowrap}.gl-sky{height:570px;position:relative;isolation:isolate;overflow:hidden;border:1px solid #ffffff1a;border-radius:24px;background:radial-gradient(ellipse at 55% 45%,#282441 0,#11172e 45%,#090f21 100%)}.gl-sky canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gl-mist{position:absolute;left:-20%;top:21%;width:140%;height:50%;background:radial-gradient(ellipse,#bc9ec32b,transparent 65%);transform:rotate(-23deg);filter:blur(24px);pointer-events:none}.gl-orbit{position:absolute;width:110%;height:36%;border:1px solid #e0c1e80c;transform:rotate(-23deg);top:30%;left:-5%;border-radius:50%;pointer-events:none}.gl-sky-caption{position:absolute;top:22px;left:0;right:0;text-align:center;font-size:13px;color:#c8c5db;pointer-events:none}.gl-sky-bottom{position:absolute;bottom:20px;left:26px;right:26px;display:flex;justify-content:space-between;color:#a6a4bb;font-size:11px;pointer-events:none}.gl-star{position:absolute;width:48px;height:48px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--star);transform:translate(-50%,-50%);z-index:2}.gl-star i{font-style:normal;font-size:22px;text-shadow:0 0 12px var(--star),0 0 28px var(--star);transition:transform .2s}.gl-star:hover i,.gl-star:focus-visible i{transform:scale(1.45)}.gl-star span{position:absolute;top:45px;white-space:nowrap;font-size:11px;color:#fff2f7;opacity:0;background:#14172be8;border-radius:8px;padding:4px 8px;pointer-events:none}.gl-star:hover span,.gl-star:focus-visible span{opacity:1}.gl-star.gl-new{animation:gl-arrive 1.4s ease-out}.gl-star.gl-own:after{content:"";position:absolute;inset:8px;border:1px solid #ecc2db88;border-radius:50%}@keyframes gl-arrive{from{opacity:0;filter:brightness(4);scale:2}to{opacity:1;scale:1}}.gl-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:18px;color:#c6c2d7;font-size:13px}.gl-bottom>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gl-bottom button:disabled{opacity:.3;cursor:default}.gl-notice{font-size:13px;color:#f1cbdd;min-height:20px}.gl-foot{padding:36px 0 6px;text-align:center;font-family:"Gowun Batang",serif;font-size:18px;line-height:2;color:#d5c9dd}.gl-foot span{font:12px "Gowun Dodum",sans-serif;color:#a5a3ba}.gl-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;min-height:350px}.gl-card{text-align:left;padding:24px;background:#1a1d34;border:1px solid #ffffff20;border-radius:16px;color:#e9e2f0}.gl-card strong{font:700 19px "Gowun Batang",serif;display:block;margin:12px 0}.gl-card p{line-height:1.8;color:#c5c2d4;font-size:14px}.gl-card small{color:#cda9c0}.gl-card:hover{border-color:#d6b3ce}.gl-empty{padding:80px 15px;text-align:center;color:#c6c2d7}.gl-dialog{width:min(600px,calc(100% - 32px));max-height:88dvh;border:1px solid #dfd2d9;border-radius:22px;padding:40px;background:#fff9f2;color:#44323d;box-shadow:0 24px 120px #0008;overflow:auto;font:15px/1.8 "Gowun Dodum",sans-serif}.gl-dialog::backdrop{background:#060a1cbb;backdrop-filter:blur(8px)}.gl-dialog .gl-close{position:absolute;right:14px;top:10px;background:none;border:0;font:30px sans-serif;color:#796271;width:44px;height:44px}.gl-dialog h2{font:700 27px/1.5 "Gowun Batang",serif;margin:12px 0 24px;color:#583b50}.gl-dialog .gl-eyebrow{color:#956880;margin-top:8px}.gl-letter{background:linear-gradient(125deg,#fffaf3,#f9eef0)}.gl-letter-body{font:18px/2.1 "Gowun Batang",serif;white-space:pre-wrap;overflow-wrap:anywhere;min-height:130px;margin:24px 0 38px}.gl-sign{border-top:1px solid #dbcbd2;padding-top:20px;display:flex;justify-content:space-between;gap:15px;color:#856877;font-size:13px}.gl-letter-note{font-size:12px;color:#94778b;margin-top:24px}.gl-letter-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.gl-letter-actions button{background:transparent;border:1px solid #dcc4d1;border-radius:20px;padding:8px 12px;color:#79526c;font-size:12px}.gl-dialog label{display:block;margin:17px 0;font-size:14px;font-weight:700}.gl-dialog label span{font-weight:400;font-size:12px;color:#947e88}.gl-dialog input,.gl-dialog textarea,.gl-dialog select{display:block;width:100%;margin-top:7px;padding:12px;background:#fffefd;border:1px solid #d8c5cf;border-radius:10px;color:#44323d;font:16px/1.6 "Gowun Dodum",sans-serif}.gl-dialog textarea{resize:vertical}.gl-form-note{font-size:13px;color:#806777}.gl-counter{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:#886d7f}.gl-counter span:last-child{white-space:nowrap}.gl-dialog #glError{color:#a12f52;font-size:13px}.gl-dialog .gl-primary{width:100%}body:has(.gl-dialog[open]){overflow:hidden}
@media(min-width:1100px){.gl-hero{padding-left:30px}.gl-hero h1 br{display:none}.gl-hero:after{right:11%;top:27px}.gl-hero .gl-primary{position:absolute;right:5%;bottom:55px}}
@media(max-width:600px){.gl{padding:18px 18px 30px}.gl-preview{font-size:11px}.gl-hero{padding:34px 4px 32px}.gl-hero:after{font-size:95px;right:6%;top:55px}.gl-intro{font-size:15px}.gl-toolbar{display:block;padding:16px 0}.gl-filters{gap:6px}.gl-toolbar button{font-size:12px;padding:8px 11px}.gl-toolbar #glView{display:block;margin:12px 0 0 auto;padding-right:0}.gl-sky{height:570px;border-radius:18px}.gl-sky-bottom{left:16px;right:16px;font-size:10px}.gl-sky-bottom span:last-child{display:none}.gl-bottom{align-items:flex-start;flex-direction:column;gap:0}.gl-bottom button{font-size:12px;padding:7px 12px}.gl-list{grid-template-columns:1fr}.gl-dialog{padding:35px 24px 26px}.gl-letter-body{font-size:17px}.gl-sign{flex-direction:column;gap:4px}.gl-dialog h2{font-size:24px}.gl-foot{font-size:16px}.gl-counter{display:block}.gl-counter span{display:block}}
@media(prefers-reduced-motion:reduce){.gl *{animation:none!important;transition:none!important}}

/* The galaxy follows a diffuse cloud, without a drawn oval boundary. */
.gl-orbit{display:none}

/* Letter lights belong to one continuous, explorable sky. */
.gl-sky{touch-action:none;cursor:grab;user-select:none;overscroll-behavior:contain}
.gl-sky:active{cursor:grabbing}.gl-scene{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.gl-star{width:12px;height:12px;cursor:pointer}
.gl-star i{display:block;border-radius:50%;background:#fff5ed;box-shadow:0 0 3px 1px var(--star),0 0 9px 2px var(--star);text-shadow:none}
.gl-star:hover i,.gl-star:focus-visible i{transform:scale(1.3);box-shadow:0 0 4px 2px white,0 0 13px 3px var(--star)}
.gl-star span{top:15px;font-size:7px;padding:2px 4px}.gl-star.gl-own:after{inset:-3px;border-color:#ecc2db66}
.gl-sky-caption{z-index:3;font-size:12px;text-shadow:0 1px 6px #000}
.gl-controls{position:absolute;right:16px;bottom:18px;display:flex;align-items:center;gap:3px;z-index:4;background:#11172ee8;border:1px solid #ffffff30;border-radius:14px;padding:4px;cursor:default;touch-action:manipulation}
.gl-controls button{min-width:38px;height:38px;padding:0 9px;border:0;border-radius:9px;background:transparent;color:#f4e5f2;font-size:20px}.gl-controls button:hover{background:#ffffff14}.gl-controls button:disabled{opacity:.3;cursor:default}.gl-controls #glZoomReset{font-size:12px;border-left:1px solid #ffffff20;border-radius:0 9px 9px 0}.gl-controls output{font:11px sans-serif;color:#c6bdd8;min-width:38px;text-align:center}.gl-sky-bottom{bottom:31px;right:240px}.gl-sky-bottom span:last-child{display:none}
@media(max-width:600px){.gl-controls{right:12px;bottom:12px}.gl-sky-bottom{left:16px;right:16px;bottom:65px;font-size:10px}.gl-sky-caption{padding:0 20px}}

.gl-hero:after{content:"";width:8px;height:8px;border-radius:50%;background:#fff4ed;box-shadow:0 0 14px 5px #ecd4ec99,0 0 70px 25px #afa2e744;top:100px;right:16%}
.gl-trial{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:12px 0;color:#c6c2d7;font-size:13px}.gl-trial select,.gl-trial button{font:inherit;border:1px solid #ffffff38;border-radius:18px;background:#202338;color:#f2e3ef;padding:8px 14px}.gl-trial select{margin-left:6px}.gl #glMatches{display:grid;gap:8px}.gl #glMatches button{text-align:left;border:1px solid #ddc7d0;border-radius:12px;background:#fffdfa;padding:12px;color:#614b58;overflow-wrap:anywhere}.gl #glMatches strong,.gl #glMatches span{display:block}.gl #glMatches span{font-size:13px;margin-top:5px}.gl #glRemoveError{color:#963f58}
.gl-hero:after{width:65px;height:82px;right:12%;top:57px;border-radius:0;background:radial-gradient(ellipse,#fff 4%,#ffebdc 25%,#c7a3e9 72%);clip-path:polygon(50% 0,55% 39%,68% 29%,61% 44%,100% 50%,61% 55%,68% 69%,55% 61%,50% 100%,45% 61%,31% 70%,39% 55%,0 50%,39% 44%,31% 30%,45% 39%);box-shadow:none}.gl-hero:before{content:"";position:absolute;pointer-events:none;width:110px;height:110px;right:calc(12% - 22px);top:42px;background:radial-gradient(ellipse,#e8bee947,transparent 67%)}@media(max-width:600px){.gl-hero:after{right:4%;top:58px;width:36px;height:52px}.gl-hero:before{right:0;top:44px;width:65px;height:80px}.gl-hero h1{font-size:clamp(31px,8.5vw,42px)}}
.gl-dense .gl-star{transform:translate(-50%,-50%) scale(var(--gl-marker-scale,1))}
.gl .gl-cluster{width:22px;height:22px}
.gl .gl-cluster i{width:var(--cluster-size);height:var(--cluster-size);background:radial-gradient(circle at 35% 32%,#fff 0 7%,transparent 13%),radial-gradient(circle at 63% 66%,#fff1e4 0 6%,transparent 14%),radial-gradient(circle at 72% 21%,#dddcff 0 4%,transparent 12%),radial-gradient(ellipse,#c3ade3a3,transparent 71%);box-shadow:0 0 9px 2px #c2a9de35}
.gl .gl-cluster span{top:23px;font-size:10px}
.gl .gl-hero::before,.gl .gl-hero::after{display:none}

.gl-cluster-hit{position:absolute;border:0;padding:0;background:transparent;cursor:zoom-in;border-radius:9px}
.gl-cluster-hit:focus-visible{outline:1px solid #ead5ff;background:#efe0ff0e}
.gl #glStars .gl-star i{background:radial-gradient(circle,#fffaf7 7%,var(--star) 70%)}
.gl-design{margin:18px 0;padding:12px 16px 18px;border:1px solid #dccbd4;border-radius:13px}.gl-design legend{padding:0 6px;font-weight:700}
.gl-palette{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 18px}.gl-palette button{height:27px;width:27px;border:2px solid #fff;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #b4a8b1}.gl-palette button[aria-pressed=true]{box-shadow:0 0 0 2px #5c4659}


.gl-preview:empty{display:none}
.gl .gl-hero{container-type:inline-size;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:18px}
.gl-hero>.gl-eyebrow,.gl-hero>h1{grid-column:1/-1}
.gl .gl-hero h1{white-space:nowrap;font-size:min(6.4cqi,clamp(24px,5vw,68px))}
.gl-hero .gl-wordmark{grid-column:2;grid-row:3/5;display:block;width:clamp(195px,33.8vw,416px);height:auto;align-self:center;margin:15px 0 0}
.gl-hero>.gl-intro{grid-column:1;grid-row:3}
.gl .gl-hero>.gl-primary{grid-column:1;grid-row:4;position:static;justify-self:start}
@media(max-width:600px){
 .gl .gl-hero h1{font-size:min(6.4cqi,clamp(23px,7.6vw,42px))}
 .gl .gl-hero{column-gap:8px}
 .gl .gl-hero>.gl-primary{grid-column:1/-1}
 .gl-hero>.gl-intro{word-break:keep-all}
 .gl-hero .gl-wordmark{width:clamp(130px,37.7vw,201.5px);grid-row:3;margin:8px 0 0}
 .gl-hero>.gl-intro{font-size:clamp(13px,3.4vw,16px)}
}

#glWriteTitle{margin-bottom:6px}
#glWriteSubtitle{margin:0 0 18px;color:#70556a;font:400 16px/1.65 "Gowun Batang",serif;word-break:keep-all}
