/* moonshort — casual desktop concept (2026-11-14) */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:Pretendard,-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;background:#0b0f14;color:#fff;overflow:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.bg{position:fixed;inset:-4%;background-size:cover;background-position:40% 50%;filter:saturate(.9) brightness(.55);animation:drift 30s ease-in-out infinite alternate}
.bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 0,rgba(5,8,12,.55) 70%),linear-gradient(transparent 60%,rgba(5,8,12,.8))}
@keyframes drift{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.1) translate(-1.5%,1%)}}

.bar{position:fixed;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;z-index:50;pointer-events:none}
.pill{pointer-events:auto;display:flex;background:#fff;color:#111;border-radius:6px;padding:3px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.pill a,.pill button{padding:7px 12px;font-size:13px;font-weight:600;border-radius:4px}
.pill a:hover,.pill button:hover{background:#f0f0f0}

.desk{position:fixed;inset:0}
.icon{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;
  animation:pop .6s cubic-bezier(.3,1.5,.5,1) both;animation-delay:var(--d,0s)}
.icon:active{cursor:grabbing}
.icon img{display:block;border-radius:6px;box-shadow:0 10px 26px rgba(0,0,0,.45);pointer-events:none;transition:transform .25s}
.icon:hover img{transform:translateY(-4px) rotate(-1.5deg)}
.icon:focus-visible{outline:2px dashed #fff;outline-offset:6px}
.icon .label{font-size:12px;font-weight:600;padding:2px 7px;border-radius:4px;text-shadow:0 1px 3px rgba(0,0,0,.8);white-space:nowrap}
.icon.sel .label{background:#2f6bff;text-shadow:none}
@keyframes pop{from{opacity:0;transform:translate(-50%,-30%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

.icon.moon img{width:min(23vw,240px,30vh);border:6px solid #fff;border-bottom-width:30px;border-radius:3px;transform:rotate(-3deg)}
.icon.moon:hover img{transform:rotate(1deg) scale(1.03)}
.icon.moon .label{margin-top:-30px;color:#222;text-shadow:none;font-size:13px}
.icon.photo img{width:min(13vw,140px,17vh);border:4px solid #fff;border-radius:3px;transform:rotate(4deg)}
.icon.prod img{width:min(11vw,118px,15vh);aspect-ratio:1;object-fit:cover;background:#fff;padding:5px}
.icon .sticker{position:absolute;top:-8px;right:-14px;background:#ff4fa3;color:#fff;font-size:11px;font-weight:800;padding:3px 8px;border-radius:20px;transform:rotate(8deg);box-shadow:0 3px 10px rgba(255,79,163,.5);animation:wob 2.4s ease-in-out infinite}
.icon[data-href] .sticker{background:#ffde21;color:#111;box-shadow:0 3px 12px rgba(255,222,33,.5)}
@keyframes wob{50%{transform:rotate(-6deg) scale(1.08)}}
.icon.folder svg{width:64px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}

.bubble{position:absolute;left:calc(50% + min(13vw,135px));top:calc(46% - min(17vw,175px));max-width:260px;background:#fff;color:#111;padding:12px 15px;border-radius:16px 16px 16px 4px;font-size:14px;line-height:1.5;box-shadow:0 10px 30px rgba(0,0,0,.35);
  animation:bpop .6s .9s cubic-bezier(.3,1.5,.5,1) both;transform-origin:0 100%;z-index:5}
@keyframes bpop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
.bubble b{display:block;font-size:15px;margin-bottom:2px}
.bubble span::after{content:"▍";animation:blink 1s steps(1) infinite;color:#ff4fa3}
@keyframes blink{50%{opacity:0}}

.strip{position:fixed;left:0;right:0;bottom:0;height:86px;overflow:hidden;z-index:4;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;gap:10px;height:100%;padding:10px 0;width:max-content;animation:flow 40s linear infinite}
.track img{height:100%;border-radius:6px;opacity:.9}
.strip:hover .track{animation-play-state:paused}
@keyframes flow{to{transform:translateX(-50%)}}

.info{position:fixed;left:14px;bottom:98px;z-index:6;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);padding:6px 12px;border-radius:5px;font-size:12px;font-weight:600}
.info:hover{background:rgba(255,255,255,.22)}

.win{position:fixed;left:50%;top:50%;width:min(440px,92vw);max-height:80vh;display:flex;flex-direction:column;background:#fbfbfb;color:#151515;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.55);z-index:100;
  transform:translate(-50%,-50%);animation:wopen .35s cubic-bezier(.2,.9,.3,1.2)}
.win[hidden]{display:none}
@keyframes wopen{from{opacity:0;transform:translate(-50%,-46%) scale(.92)}}
.win header{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#ececec;border-radius:10px 10px 0 0;cursor:move;touch-action:none;user-select:none}
.win header i{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.win header i:nth-child(2){background:#febc2e}.win header i:nth-child(3){background:#28c840}
.win header b{flex:1;text-align:center;font-size:13px;color:#555;margin-right:30px}
.win .x{font-size:20px;line-height:1;color:#777;width:26px;height:26px;border-radius:5px}
.win .x:hover{background:#ddd}
.wbody{padding:18px;overflow:auto;font-size:15px;line-height:1.7}
.wbody p{margin-bottom:10px;color:#333}
.wbody .wide{width:100%;border-radius:8px;margin-bottom:12px}
.wbody.about{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start}
.wbody.about img{width:100%;border-radius:8px}
.btn{display:inline-block;margin:6px 6px 0 0;background:#111;color:#fff;padding:9px 14px;border-radius:7px;font-size:14px;font-weight:700}
.btn.ghost{background:#fff;color:#111;border:1px solid #ccc}
.contact .big{font-size:18px;font-weight:800;color:#111}
.contact .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eee}
.contact .row span{color:#888;font-size:13px;white-space:nowrap}
.contact .row b{text-align:right;font-size:14px}
.contact a.row:hover b{color:#2f6bff}

/* mobile: icons flow in a grid like a phone home screen */
@media (max-width:760px){
  body{overflow:auto}
  .desk{position:relative;inset:auto;display:grid;grid-template-columns:1fr 1fr;gap:26px 10px;padding:80px 18px 120px;justify-items:center}
  .icon{position:static;transform:none;animation-name:popm}
  @keyframes popm{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
  .icon.moon{grid-column:1/-1;order:-2}
  .icon.moon img{width:62vw}
  .bubble{position:relative;left:auto;top:auto;grid-column:1/-1;order:-1;margin-top:-6px;max-width:88%;border-radius:16px}
  .icon.prod img{width:36vw}
  .icon.photo img{width:34vw}
  .strip{height:70px}
  .info{bottom:80px}
  .wbody.about{grid-template-columns:1fr}
  .wbody.about img{max-width:160px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

/* PRESS START entry + sound (2026-11-14) */
.start{position:fixed;inset:0;z-index:500;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,rgba(20,30,60,.75),rgba(3,5,10,.96));transition:opacity .6s,visibility .6s}
.start.gone{opacity:0;visibility:hidden}
.start-in{text-align:center;padding:24px}
.s-top{font-size:13px;letter-spacing:.35em;color:#9fb3ff;margin-bottom:10px}
.start h1{font-size:clamp(44px,9vw,110px);font-weight:900;letter-spacing:-.02em;line-height:1;background:linear-gradient(180deg,#fff 0%,#ffd5f0 45%,#ff4fa3 50%,#7a5cff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgba(255,79,163,.45));font-style:italic}
.press{margin-top:34px;font-size:clamp(18px,2.4vw,24px);font-weight:900;letter-spacing:.12em;color:#ffde21;padding:14px 28px;border:2px solid #ffde21;border-radius:6px;animation:blink2 1s steps(1) infinite;text-shadow:0 0 12px rgba(255,222,33,.7)}
.press:hover{background:#ffde21;color:#111;animation:none}
@keyframes blink2{50%{opacity:.25}}
.mute-enter{display:block;margin:18px auto 0;font-size:13px;color:#8a94a8;text-decoration:underline}
body.locked .icon,body.locked .bubble{animation-play-state:paused}
#snd{min-width:38px}
@media (max-width:760px){.pill a,.pill button{padding:7px 9px;font-size:12px;white-space:nowrap}}

/* 2026-11-14 v1.4 — phone: everything on ONE screen (no scroll): 3 icons / Moon / 3 icons */
@media (max-width:760px){
  body{overflow:hidden}
  .desk{position:fixed;inset:58px 0 76px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto 1fr auto;gap:0 6px;padding:6px 10px 4px;justify-items:center;align-items:center}
  .icon{gap:4px}
  .icon .label{font-size:11px}
  .icon.prod img,.icon.photo img{width:min(25vw,12.5svh,112px);aspect-ratio:1;object-fit:cover}
  .icon.photo img{border-width:3px}
  .slot1{grid-row:1;grid-column:1}.slot2{grid-row:1;grid-column:2}.slot3{grid-row:1;grid-column:3}
  .slot4{grid-row:3;grid-column:1}.slot5{grid-row:3;grid-column:2}.slot6{grid-row:3;grid-column:3}
  .icon.moon{grid-row:2;grid-column:1/-1;order:0;align-self:center}
  .icon.moon img{width:auto;height:min(30svh,250px);border-width:5px;border-bottom-width:24px}
  .icon.moon .label{margin-top:-24px;font-size:11px}
  .bubble{position:absolute;grid-row:2;grid-column:1/-1;left:50%;top:auto;bottom:calc(50% - min(15svh,125px) + 6px);transform:translateX(-50%);order:0;margin:0;width:max-content;max-width:86%;font-size:12.5px;padding:8px 12px;border-radius:14px;
    animation-name:bpopm}
  @keyframes bpopm{from{opacity:0;transform:translateX(-50%) scale(.6)}to{opacity:1;transform:translateX(-50%)}}
  .bubble b{font-size:13px}
  .icon.folder svg{width:min(17vw,64px)}
  .icon .sticker{font-size:10px;padding:2px 6px;right:-8px;top:-7px}
  .info{display:none}
}

/* chatbot icon + window (2026-11-14) */
.icon.chatbot .bot{width:min(17vw,70px,12vh);aspect-ratio:1;border-radius:22px;background:linear-gradient(135deg,#2f6bff,#7a5cff);display:grid;place-items:center;box-shadow:0 10px 26px rgba(47,107,255,.5);animation:botbob 2.6s ease-in-out infinite}
.icon.chatbot .bot svg{width:72%}
.icon.chatbot .sticker{background:#2f6bff;right:-22px}
@keyframes botbob{50%{transform:translateY(-5px) rotate(-3deg)}}
.chatwin{width:min(400px,94vw);height:min(560px,80vh)}
.chatlog{flex:1;overflow-y:auto;padding:14px;background:#f2f4f8;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.cm{max-width:86%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.55;white-space:pre-line;word-break:keep-all}
.cm.bot{background:#fff;color:#1a1a1a;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.cm.me{background:#2f6bff;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.cm.wait{color:#999}
.ccard{align-self:flex-start;max-width:90%;display:block;background:#fff;border:1px solid #dfe5f2;border-left:4px solid #2f6bff;border-radius:10px;padding:9px 12px;font-size:13px;color:#222}
.ccard b{display:block;font-size:13.5px;margin-bottom:2px}.ccard em{font-style:normal;font-size:11px;color:#2f6bff;font-weight:800;margin-right:5px}
.ccard span{color:#666;font-size:12.5px}
.ccard:hover{border-color:#2f6bff}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;background:#fff;border-top:1px solid #eee}
.chips button{font-size:12.5px;font-weight:700;color:#2f6bff;background:#eef3ff;border-radius:20px;padding:5px 11px}
.chips button:hover{background:#2f6bff;color:#fff}
.chatform{display:flex;gap:8px;padding:10px;background:#fff;border-radius:0 0 10px 10px}
.chatform input{flex:1;min-width:0;border:1px solid #d5dbe8;border-radius:20px;padding:10px 14px;font:inherit;font-size:16px;color:#111}
.chatform button{width:40px;height:40px;border-radius:50%;background:#2f6bff;color:#fff;font-size:18px;font-weight:900}
@media (max-width:760px){.icon.chatbot .bot{width:min(20vw,11svh,80px)}.chatwin{height:78svh}}

/* long labels wrap to 2 lines (2026-11-14) */
.icon .label.wrap{white-space:normal;text-align:center;max-width:150px;line-height:1.3}
.icon.photo img{aspect-ratio:auto}
@media (max-width:760px){.icon .label.wrap{max-width:30vw;font-size:10.5px}.icon.photo img{width:min(27vw,13svh,120px);aspect-ratio:1;object-fit:cover}}
/* drag feedback (2026-11-14) */
.icon.dragging{cursor:grabbing;transition:none}
.icon.dragging img,.icon.dragging .bot{transform:scale(1.08) rotate(-3deg)!important;box-shadow:0 18px 40px rgba(0,0,0,.6)}
@media (max-width:760px){.icon{-webkit-touch-callout:none}}
