:root{--ps1-red:#ED1C24;--ps1-orange:#F47D2B;--ps1-yellow:#FBC134;--ps1-green:#89C64D;--ps1-lightblue:#2AC5F4;--ps1-blue:#4884C4;--ps1-purple:#7161AA;--ps1-gray:#989898;--tint-blue:#EBF3FC;--tint-orange:#FEF2E8;--tint-green:#F3FAE9;--tint-purple:#F2F0F8;--event-official:var(--ps1-purple);--event-official-tint:var(--tint-purple);--event-guild:#5C9A1A;--event-guild-tint:var(--tint-green);--event-birthday:var(--ps1-red);--event-birthday-tint:#FDEAEB;--ink-900:#1C1C1E;--ink-700:#3A3A3C;--ink-500:#6E6E73;--ink-300:#AEAEB2;--ink-100:#E5E5EA;--bg-warm:#F7F6F4;--bg-card:#fafafa;--font-serif:'Roboto Slab', Georgia, serif;--font-sans:'Montserrat', system-ui, sans-serif;--page-max:1180px;--page-pad:24px;--shadow-card:0 1px 3px rgba(0,0,0,0.06), 0 4px 14px rgba(0,0,0,0.07);--shadow-lift:0 6px 20px rgba(0,0,0,0.11), 0 2px 6px rgba(0,0,0,0.07);--ease:cubic-bezier(0.16, 1, 0.3, 1)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--ink-700);background:var(--bg-warm);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;padding-top:5px}*{-webkit-touch-callout:none}p,li,h1,h2,h3,h4,h5,h6,td,blockquote{-webkit-user-select:text;user-select:text}a{color:var(--ps1-blue);text-decoration:none}a:hover{text-decoration:underline;color:var(--ps1-blue)}#pwa-install-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--ps1-blue);color:#fff;font-size:14px;box-shadow:0 -2px 8px rgba(0,0,0,.18)}#pwa-install-banner button{flex-shrink:0;background:0 0;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}a:focus-visible{outline:3px solid var(--ps1-yellow);outline-offset:2px;border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.cms-nav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid #dedede}.cms-nav-inner{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad);height:52px;display:flex;align-items:center;gap:14px}.cms-logo{display:flex;align-items:center;gap:7px;flex-shrink:0;text-decoration:none}.cms-logo-wordmark{display:flex;flex-direction:column;line-height:1.15}.cms-logo-ps1{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--ps1-blue);letter-spacing:.01em}.cms-logo-full{font-family:var(--font-sans);font-size:8.5px;font-weight:600;color:var(--ps1-gray);text-transform:uppercase;letter-spacing:.09em}.cms-tabs{display:flex;align-items:center;gap:3px;flex:1;overflow-x:auto;scrollbar-width:none}.cms-tabs::-webkit-scrollbar{display:none}.cms-tab{display:inline-flex;align-items:center;padding:4px 11px;border:1px solid #d2d2d2;border-radius:99px;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--ink-700);white-space:nowrap;text-decoration:none;transition:background .1s}.cms-tab:hover{background:var(--bg-warm);text-decoration:none;color:var(--ink-700)}.cms-tab[aria-current=page]{border-color:var(--ps1-blue);color:var(--ps1-blue);font-weight:600}.cms-account{display:flex;align-items:center;gap:5px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--ink-700);padding:4px 9px;border-radius:6px;cursor:pointer;text-decoration:none}.cms-account:hover{background:var(--bg-warm);text-decoration:none;color:var(--ink-700)}.cms-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#7BAFD4,var(--ps1-blue));color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.cms-caret{font-size:9px;color:var(--ink-300);margin-left:1px}.cms-lock-bar{background:#f4f4f4;border-bottom:1px solid #e8e8e8;padding:4px 0;text-align:center}.cms-lock-bar span{font-family:var(--font-sans);font-size:10.5px;color:#ababab;font-style:italic;letter-spacing:.01em}.page{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad)72px}.rainbow{position:fixed;top:0;left:0;right:0;height:5px;z-index:1000;background:linear-gradient( to right,var(--ps1-red) 0% 14.28%,var(--ps1-orange) 14.28% 28.57%,var(--ps1-yellow) 28.57% 42.85%,var(--ps1-green) 42.85% 57.14%,var(--ps1-lightblue) 57.14% 71.42%,var(--ps1-blue) 71.42% 85.71%,var(--ps1-purple) 85.71% 100% )}.greeting{margin-bottom:26px;animation:fadeUp .5s var(--ease).05s both}.greeting h1{font-family:var(--font-serif);font-size:clamp(22px,4vw,32px);font-weight:600;color:var(--ink-900);line-height:1.25}.greeting h1 em{color:var(--ps1-blue);font-style:normal}.greeting p{font-size:15px;color:var(--ink-500);margin-top:5px;font-weight:400}.ask-section{background:var(--bg-card);box-shadow:var(--shadow-card);border-radius:10px;padding:16px 16px 20px;margin-bottom:24px;animation:fadeUp .48s var(--ease).08s both}.ask-section__header{font-size:13px;font-weight:700;color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.ask-carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.ask-carousel::-webkit-scrollbar{display:none}.ask-card{flex-shrink:0;width:240px;scroll-snap-align:start;background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);border-left:4px solid var(--ps1-blue);padding:14px 16px;display:flex;flex-direction:column;gap:6px;text-decoration:none;transition:box-shadow .15s,transform .15s}.ask-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.ask-card--official{border-left-color:var(--event-official)}.ask-card--guild{border-left-color:var(--event-guild)}.ask-card__title{font-size:14px;font-weight:700;color:var(--ink-900);line-height:1.3}.ask-card__desc{font-size:12.5px;color:var(--ink-500);line-height:1.45;flex:1}.ask-card__link{font-size:12px;font-weight:600;color:var(--ps1-blue);margin-top:2px}.ask-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:560px){.ask-grid{grid-template-columns:1fr 1fr}}.ask-grid .ask-card{width:auto}@media(max-width:559px){.ask-section{margin-left:-24px;margin-right:-24px;border-radius:0;padding:16px 0 20px}.ask-section__header{padding-left:24px}.ask-carousel{padding-left:24px;padding-right:24px}}.quick-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:34px}@media(min-width:560px){.quick-grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.quick-grid{grid-template-columns:repeat(4,1fr)}}.qcard{background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);padding:18px 20px 20px;border-left:4px solid transparent;display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit;transition:box-shadow .22s var(--ease),transform .22s var(--ease)}.qcard:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px);text-decoration:none;color:inherit}.qcard:nth-child(1){animation:fadeUp .48s var(--ease).12s both}.qcard:nth-child(2){animation:fadeUp .48s var(--ease).2s both}.qcard:nth-child(3){animation:fadeUp .48s var(--ease).28s both}.qcard:nth-child(4){animation:fadeUp .48s var(--ease).36s both}.qcard--blue{background:var(--tint-blue);border-left-color:var(--ps1-blue)}.qcard--orange{background:var(--tint-orange);border-left-color:var(--ps1-orange)}.qcard--green{border-left-color:var(--ps1-green)}.qcard--purple{border-left-color:var(--ps1-purple)}.qcard__icon{font-size:22px;line-height:1;margin-bottom:3px}.qcard__label{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.qcard--blue .qcard__label{color:var(--ps1-blue)}.qcard--orange .qcard__label{color:var(--ps1-orange)}.qcard--green .qcard__label{color:#5c9a1a}.qcard--purple .qcard__label{color:var(--ps1-purple)}.qcard__title{font-family:var(--font-serif);font-size:15px;font-weight:600;color:var(--ink-900);line-height:1.35}.qcard__cta{font-size:13px;font-weight:600;margin-top:6px}.qcard--blue .qcard__cta{color:var(--ps1-blue)}.qcard--orange .qcard__cta{color:var(--ps1-orange)}.qcard--green .qcard__cta{color:#5c9a1a}.qcard--purple .qcard__cta{color:var(--ps1-purple)}.content-grid{display:grid;grid-template-columns:1fr;gap:24px;animation:fadeIn .55s var(--ease).45s both}@media(min-width:768px){.content-grid{grid-template-columns:1fr 310px;gap:28px}}.sec-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.sec-title{font-family:var(--font-serif);font-size:17px;font-weight:600;color:var(--ink-900);padding-bottom:9px;position:relative}.sec-title::after{content:'';position:absolute;bottom:0;left:0;width:28px;height:2.5px;background:var(--ps1-blue);border-radius:2px}.sec-link{font-size:12.5px;font-weight:600;color:var(--ps1-blue)}.sec-link:hover{color:var(--ps1-blue)}.events-tabs{display:flex;gap:20px}.events-tab{font-family:var(--font-serif);font-size:17px;font-weight:600;color:var(--ink-300);background:0 0;border:none;padding:0 0 9px;position:relative;cursor:pointer;transition:color .15s}.events-tab::after{content:'';position:absolute;bottom:0;left:0;width:28px;height:2.5px;background:0 0;border-radius:2px;transition:background .15s}.events-tab--active{color:var(--ink-900)}.events-tab--active::after{background:var(--ps1-blue)}.events-tab:hover:not(.events-tab--active){color:var(--ink-700)}.notice-section{margin-bottom:12px}.notice-card{background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .22s var(--ease),transform .22s var(--ease)}.notice-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.notice-photo{width:100%;aspect-ratio:16/6.5;background:linear-gradient(120deg,var(--ps1-lightblue) 0%,var(--ps1-blue) 50%,var(--ps1-green) 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.notice-photo::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 25% 35%,rgba(255,255,255,.18) 0%,transparent 55%),radial-gradient(ellipse at 75% 65%,rgba(0,0,0,.12) 0%,transparent 50%)}.notice-photo__label{position:relative;z-index:1;color:rgba(255,255,255,.9);font-size:12px;font-weight:500;font-style:italic;background:rgba(0,0,0,.22);padding:5px 14px;border-radius:99px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);letter-spacing:.01em}.notice-body{padding:22px 24px 24px}.tag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:3px 9px;border-radius:4px;margin-bottom:12px}.tag--green{background:#4e8c1a;color:#fff}.tag--blue{background:var(--ps1-blue);color:#fff}.tag--orange{background:#b84e00;color:#fff}.tag--red{background:var(--ps1-red);color:#fff}.notice-headline{font-family:var(--font-serif);font-size:clamp(17px,2.5vw,21px);font-weight:600;color:var(--ink-900);line-height:1.3;margin-bottom:8px}.notice-dateline{font-size:13px;font-weight:600;color:var(--ps1-blue);margin-bottom:12px}.notice-body p{font-size:15px;color:var(--ink-700);line-height:1.68;margin-bottom:20px;max-width:62ch}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;background:var(--ps1-blue);color:#fff;font-family:var(--font-sans);font-size:14px;font-weight:600;padding:10px 20px;border-radius:8px;transition:background .15s,transform .15s}.btn-primary:hover{background:#3570b8;transform:translateY(-1px);text-decoration:none;color:#fff}.btn-secondary{display:inline-flex;align-items:center;background:0 0;color:var(--ps1-blue);font-family:var(--font-sans);font-size:14px;font-weight:600;padding:10px 20px;border-radius:8px;border:2px solid var(--ps1-blue);transition:background .15s,transform .15s}.btn-secondary:hover{background:var(--tint-blue);transform:translateY(-1px);text-decoration:none;color:var(--ps1-blue)}.notice-full-link{display:inline-block;margin-top:14px;font-size:13px;font-weight:500;color:var(--ink-300)}.notice-full-link:hover{color:var(--ps1-blue)}.secondary-section{margin-bottom:18px}.secondary-card{background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);padding:16px 20px 18px;margin-bottom:10px;border-left:3px solid var(--ink-100);transition:box-shadow .2s var(--ease),border-left-color .2s}.secondary-card:hover{box-shadow:var(--shadow-lift);border-left-color:var(--ps1-blue)}.secondary-title{font-family:var(--font-serif);font-size:15px;font-weight:600;color:var(--ink-900);margin-bottom:6px}.secondary-body{font-size:14px;color:var(--ink-700);line-height:1.6;margin-bottom:8px}.secondary-link{font-size:13px;font-weight:600;color:var(--ps1-blue)}.dates-section{margin-bottom:0}.dates-card{background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);overflow:hidden}.date-group-label{padding:8px 18px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-300);border-bottom:1px solid var(--ink-100)}.date-group-label--featured{color:var(--ps1-blue);background:var(--tint-blue)}.date-allday-tag{display:inline-block;margin-left:8px;padding:1px 6px;background:var(--ps1-blue);color:#fff;border-radius:3px;font-size:10px;font-weight:600;text-transform:none;letter-spacing:0;vertical-align:middle}.date-allday-tag--official{background:var(--event-official)}.date-allday-tag--guild{background:var(--event-guild)}.date-allday-tag--birthday{background:var(--event-birthday)}.event-cat{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:3px;margin-bottom:8px}.event-cat--official{background:var(--event-official-tint);color:var(--event-official)}.event-cat--guild{background:var(--event-guild-tint);color:var(--event-guild)}.event-cat--birthday{background:var(--event-birthday-tint);color:var(--event-birthday)}.date-row{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--ink-100);transition:background .12s}.date-row:last-child{border-bottom:none}.date-row:hover{background:#fafaf9}.date-row--official{background:var(--event-official-tint)}.date-row--official:hover{background:var(--event-official-tint);filter:brightness(.97)}.date-row--guild{background:var(--event-guild-tint)}.date-row--guild:hover{background:var(--event-guild-tint);filter:brightness(.97)}.date-row--birthday{background:var(--event-birthday-tint)}.date-row--birthday:hover{background:var(--event-birthday-tint);filter:brightness(.97)}.date-pill{flex-shrink:0;background:var(--ps1-blue);color:#fff;border-radius:8px;padding:7px 10px;text-align:center;min-width:50px}.date-pill__month{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8;line-height:1}.date-pill__day{font-family:var(--font-serif);font-size:22px;font-weight:700;line-height:1.1}.date-pill--official{background:var(--event-official)}.date-pill--guild{background:var(--event-guild)}.date-pill--birthday{background:var(--event-birthday)}.date-info{flex:1}.date-name{font-size:14.5px;font-weight:600;color:var(--ink-900);line-height:1.35;margin-bottom:3px}.date-detail{font-size:12.5px;color:var(--ink-500)}.date-body{font-size:13px;color:var(--ink-700);margin-top:6px;line-height:1.5}.date-body p{margin:0 0 4px}.date-body p:last-child{margin-bottom:0}.date-body img{max-width:100%;height:auto;display:block}.dates-event--hidden{display:none}.dates-more-trigger{display:block;width:100%;padding:12px 18px;text-align:center;font-size:12px;font-weight:600;color:var(--ps1-blue);background:0 0;border:none;border-top:1px solid var(--ink-100);cursor:pointer;transition:background .12s}.dates-more-trigger:hover{background:#fafaf9}.event-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.event-filters__cats{display:flex;flex-wrap:wrap;gap:6px}.filter-cats-toggle{display:none;align-items:center;height:30px;padding:0 10px;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--ink-700);background:var(--bg-card);border:1.5px solid var(--ink-100);border-radius:99px;cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s,background .12s}.filter-cats-toggle--active{border-color:var(--ps1-blue);background:var(--tint-blue);color:var(--ps1-blue)}.filter-cats-panel{display:flex;flex-wrap:wrap;gap:6px}@media(min-width:561px){.filter-cats-panel{display:flex!important}}.event-filters__inputs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-width:0}.filter-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:99px;border:1.5px solid var(--ink-100);background:var(--bg-card);color:var(--ink-500);font-family:var(--font-sans);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s;white-space:nowrap}.filter-chip:hover{border-color:var(--ps1-blue);color:var(--ps1-blue)}.filter-chip--active{border-color:var(--ps1-blue);background:var(--tint-blue);color:var(--ps1-blue)}.filter-input{padding:4px 10px;border:1.5px solid var(--ink-100);border-radius:6px;background:var(--bg-card);color:var(--ink-900);font-family:var(--font-sans);font-size:12.5px;transition:border-color .12s;height:30px}.filter-input:focus{outline:none;border-color:var(--ps1-blue)}.filter-input[type=search]{flex:1;min-width:120px}.filter-input--date{flex:1;max-width:130px;min-width:80px}.filter-dates{display:flex;align-items:center;gap:4px;min-width:220px}.filter-dates__sep{color:var(--ink-300);font-size:12px;flex-shrink:0}.filter-clear{background:0 0;border:none;padding:4px 6px;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--ink-300);cursor:pointer;transition:color .12s;white-space:nowrap}.filter-clear:hover{color:var(--ps1-blue)}.filter-no-results{padding:24px 18px;text-align:center;color:var(--ink-500);font-size:14px}@media(max-width:560px){.event-filters{flex-wrap:nowrap;align-items:center;gap:6px;position:sticky;top:5px;z-index:100;background:var(--bg-warm);padding:8px 0 6px;margin-bottom:4px;box-shadow:0 2px 6px rgba(0,0,0,6%);overflow:hidden}.event-filters__cats{flex-shrink:0}.filter-cats-toggle{display:flex}.filter-cats-panel{position:fixed;top:0;left:0;z-index:1000;background:var(--bg-card);border:1.5px solid var(--ink-100);border-radius:10px;padding:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);min-width:180px}.filter-cats-panel[hidden]{display:none}.event-filters__inputs{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;flex:1;min-width:0}.filter-input[type=search]{min-width:0;width:100%}.filter-input{font-size:16px}.filter-dates{min-width:0;gap:2px;flex-shrink:0}.filter-input--date{width:72px;min-width:0;max-width:72px;padding:2px 4px;font-size:16px;overflow:hidden}.filter-clear{font-size:0;width:28px;padding:0;flex-shrink:0}.filter-clear::after{content:'\00D7';font-size:16px}}.badge{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:4px;vertical-align:middle;margin-left:6px}.badge--urgent{background:var(--ps1-orange);color:#fff}.badge--info{background:var(--tint-blue);color:var(--ps1-blue)}.sidebar{display:flex;flex-direction:column;gap:14px}.resource-group{background:var(--bg-card);border-radius:10px;box-shadow:var(--shadow-card);overflow:hidden}.resource-group__header{padding:9px 15px;background:var(--bg-warm);border-bottom:1px solid var(--ink-100);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-300)}.resource-list{list-style:none}.resource-list li{border-bottom:1px solid var(--ink-100)}.resource-list li:last-child{border-bottom:none}.resource-list a{display:flex;align-items:center;gap:9px;padding:10px 15px;font-size:13.5px;font-weight:500;color:var(--ink-700);text-decoration:none;transition:background .1s,color .1s}.resource-list a:hover{background:var(--tint-blue);color:var(--ps1-blue)}.r-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}.r-name{flex:1}.r-badge{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:99px;white-space:nowrap}.r-badge--orange{background:var(--tint-orange);color:#b84e00}.r-badge--green{background:#4e8c1a;color:#fff}.howto{background:var(--ps1-blue);border-radius:10px;padding:20px;color:#fff}.howto__title{font-family:var(--font-serif);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;opacity:.7}.howto__links{display:flex;flex-direction:column;gap:10px}.howto__links a{color:#fff;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;align-items:center;gap:8px;opacity:.88;transition:opacity .12s}.howto__links a:hover{opacity:1;text-decoration:underline;color:#fff}.skeleton{background:linear-gradient(90deg,var(--ink-100) 25%,#F0F0F0 50%,var(--ink-100) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.skeleton-block{height:200px;border-radius:10px}.skeleton-line{height:14px;margin-bottom:10px}.skeleton-line.short{width:60%}.cal-live{display:none;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#5c9a1a}.cal-live::before{content:'●';font-size:7px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}