diff options
39 files changed, 57244 insertions, 0 deletions
@@ -0,0 +1,19 @@ +Copyright (C) 2007 J-M Bell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + + * The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1de428e --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +# Toolchain definitions for building on the destination platform +CC := gcc +AR := ar +LD := gcc + +CP := cp +RM := rm +MKDIR := mkdir +MV := mv +ECHO := echo +MAKE := make +PERL := perl +PKGCONFIG := pkg-config +INSTALL := install +SED := sed +LCOV := lcov +GENHTML := genhtml + +# Toolchain flags +WARNFLAGS := -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align \ + -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ + -Wmissing-declarations -Wnested-externs -Werror -pedantic +CFLAGS += -std=c99 -D_BSD_SOURCE -I$(TOP)/include/ $(WARNFLAGS) \ + `$(PKGCONFIG) --cflags libparserutils` +RELEASECFLAGS = $(CFLAGS) -DNDEBUG -O2 +DEBUGCFLAGS = $(CFLAGS) -O0 -g +ARFLAGS := -cru +LDFLAGS += `$(PKGCONFIG) --libs libparserutils` -L$(TOP)/ + +CPFLAGS := +RMFLAGS := -f +MKDIRFLAGS := -p +MVFLAGS := +ECHOFLAGS := +MAKEFLAGS := +PKGCONFIGFLAGS := + +EXEEXT := + +# Default installation prefix +PREFIX ?= /usr/local + + +include build/Makefile.common diff --git a/Makefile-riscos b/Makefile-riscos new file mode 100644 index 0000000..77a5977 --- /dev/null +++ b/Makefile-riscos @@ -0,0 +1,46 @@ +# Toolchain definitions for building for RISC OS using the GCCSDK cross-compiler +GCCSDK_INSTALL_CROSSBIN ?= /home/riscos/cross/bin +GCCSDK_INSTALL_ENV ?= /home/riscos/env + +CC := $(GCCSDK_INSTALL_CROSSBIN)/gcc +AR := $(GCCSDK_INSTALL_CROSSBIN)/ar +LD := $(GCCSDK_INSTALL_CROSSBIN)/gcc + +CP := cp +RM := rm +MKDIR := mkdir +MV := mv +ECHO := echo +MAKE := make +PERL := perl +PKGCONFIG := pkg-config +INSTALL := install +SED := sed +LCOV := echo +GENHTML := echo + +# Toolchain flags +WARNFLAGS := -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align \ + -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ + -Wmissing-declarations -Wnested-externs -Werror -pedantic +CFLAGS += -std=c99 -D_BSD_SOURCE -I$(TOP)/include/ $(WARNFLAGS) \ + -mpoke-function-name `$(PKGCONFIG) --cflags libparserutils` +RELEASECFLAGS = $(CFLAGS) -DNDEBUG -O2 +DEBUGCFLAGS = $(CFLAGS) -O0 -g +ARFLAGS := -cru +LDFLAGS += `$(PKGCONFIG) --libs libparserutils` -L$(TOP)/ + +CPFLAGS := +RMFLAGS := -f +MKDIRFLAGS := -p +MVFLAGS := +ECHOFLAGS := +MAKEFLAGS := +PKGCONFIGFLAGS := + +EXEEXT := ,ff8 + +# Default installation prefix +PREFIX ?= $(GCCSDK_INSTALL_ENV) + +include build/Makefile.common @@ -0,0 +1,45 @@ +LibCSS -- a CSS parser and selection engine +=========================================== + +Overview +-------- + + LibCSS is a CSS parser and selection engine. It aims to parse the forward + compatible CSS grammar. + +Requirements +------------ + + LibCSS requires the following tools: + + + A C99 capable C compiler + + GNU make or compatible + + Perl (for the testcases) + + Pkg-config (for the testcases) + + LibCSS also requires the following libraries to be installed: + + + LibParserUtils + +Compilation +----------- + + If necessary, modify the toolchain settings in the Makefile. + Invoke make: + $ make + +Verification +------------ + + To verify that the parser is working, it is necessary to specify a + different makefile target than that used for normal compilation, thus: + + $ make test + +API documentation +----------------- + + Currently, there is none. However, the code is well commented and the + public API may be found in the "include" directory. The testcase sources + may also be of use in working out how to use it. + diff --git a/build/Makefile.common b/build/Makefile.common new file mode 100644 index 0000000..2e320e6 --- /dev/null +++ b/build/Makefile.common @@ -0,0 +1,119 @@ +# Top-level Makefile fragment + +# Default target +all: release + +# Name of component +COMPONENT := libcss + +# Environment +EXPORT := $(CURDIR)/dist +TOP := $(CURDIR) +RELEASEDIR := build/Release +DEBUGDIR := build/Debug +COVERAGEDIR := build/coverage + +# List of items to delete on clean +ITEMS_CLEAN := +# List of items to delete on distclean +ITEMS_DISTCLEAN := + +# List of targets to run for testing +TARGET_TESTS := + +# Source files +SOURCES := + +# Include Makefile fragments in subdirectories + +define do_include +DIR := $$(dir $(1)) +include $(1) + +endef + +MAKE_INCLUDES := $(wildcard */Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Calculate objects to build +OBJECTS := $(subst /,_,$(subst .c,.o,$(SOURCES))) + +.PHONY: release debug test coverage profile \ + clean distclean setup export install uninstall + +# Rules +release: setup $(addprefix $(RELEASEDIR)/,$(OBJECTS)) + @$(AR) $(ARFLAGS) $(COMPONENT).a $(RELEASEDIR)/* + +debug: setup $(addprefix $(DEBUGDIR)/,$(OBJECTS)) + @$(AR) $(ARFLAGS) $(COMPONENT)-debug.a $(DEBUGDIR)/* + +test: debug $(TARGET_TESTS) + +coverage: clean + @$(LCOV) --directory . --zerocounters + @$(MAKE) test CFLAGS="$(CFLAGS) -fprofile-arcs -ftest-coverage" \ + LDFLAGS="$(LDFLAGS) -lgcov" + @$(LCOV) --directory $(DEBUGDIR) --base-directory $(TOP) \ + --capture --output-file $(COVERAGEDIR)/$(COMPONENT)_tmp.info + @$(LCOV) --extract $(COVERAGEDIR)/$(COMPONENT)_tmp.info "$(TOP)/src*" \ + -o $(COVERAGEDIR)/$(COMPONENT).info + @$(RM) $(RMFLAGS) $(COVERAGEDIR)/$(COMPONENT)_tmp.info + @$(GENHTML) -o $(COVERAGEDIR) --num-spaces 2 \ + $(COVERAGEDIR)/$(COMPONENT).info + +profile: clean + @$(MAKE) test CFLAGS="$(CFLAGS) -pg" LDFLAGS="-pg $(LDFLAGS)" + +clean: + -@$(RM) $(RMFLAGS) $(ITEMS_CLEAN) + -@$(RM) $(RMFLAGS) gmon.out + -@$(RM) $(RMFLAGS) -r $(COVERAGEDIR) + -@$(RM) $(RMFLAGS) -r $(RELEASEDIR) + -@$(RM) $(RMFLAGS) -r $(DEBUGDIR) + -@$(RM) $(RMFLAGS) $(COMPONENT).a + -@$(RM) $(RMFLAGS) $(COMPONENT)-debug.a + -@$(RM) $(RMFLAGS) $(COMPONENT).pc + +distclean: clean + -@$(RM) $(RMFLAGS) $(ITEMS_DISTCLEAN) + -@$(RM) $(RMFLAGS) -r $(TOP)/dist + +setup: + @$(MKDIR) $(MKDIRFLAGS) $(RELEASEDIR) + @$(MKDIR) $(MKDIRFLAGS) $(DEBUGDIR) + @$(MKDIR) $(MKDIRFLAGS) $(COVERAGEDIR) + +export: release + @$(MKDIR) $(MKDIRFLAGS) $(TOP)/dist/lib + @$(CP) $(CPFLAGS) -r include $(EXPORT)/ + @${CP} ${CPFLAGS} $(COMPONENT).a ${EXPORT}/lib/ + +install: release + @$(MKDIR) $(MKDIRFLAGS) -p $(PREFIX)/lib/pkgconfig + @$(MKDIR) $(MKDIRFLAGS) -p $(PREFIX)/include/libcss + @$(SED) -e 's#PREFIX#$(PREFIX)#' $(COMPONENT).pc.in >$(COMPONENT).pc + @$(INSTALL) --mode=644 -t $(PREFIX)/lib $(COMPONENT).a + @$(INSTALL) --mode=644 -t $(PREFIX)/lib/pkgconfig $(COMPONENT).pc + @$(INSTALL) --mode=644 -t $(PREFIX)/include/libcss $(filter %.h, $(wildcard include/libcss/*)) + +uninstall: + @$(RM) $(RMFLAGS) $(PREFIX)/lib/$(COMPONENT).a + @$(RM) $(RMFLAGS) $(PREFIX)/lib/pkgconfig/$(COMPONENT).pc + @$(RM) $(RMFLAGS) -r $(PREFIX)/include/libcss + +# Finally, build rules for compilation +define do_compile +$$(RELEASEDIR)/$(2): $(1) + @$$(ECHO) $$(ECHOFLAGS) "==> $(1)" + @$$(CC) -c $$(RELEASECFLAGS) -o $$@ $(1) + +$$(DEBUGDIR)/$(2): $(1) + @$$(ECHO) $$(ECHOFLAGS) "==> $(1)" + @$$(CC) -c $$(DEBUGCFLAGS) -o $$@ $(1) + +endef + +$(eval $(foreach SOURCE,$(filter %.c,$(SOURCES)), \ + $(call do_compile,$(SOURCE),$(subst /,_,$(SOURCE:.c=.o))))) + diff --git a/docs/Lexer b/docs/Lexer new file mode 100644 index 0000000..8f8e1ea --- /dev/null +++ b/docs/Lexer @@ -0,0 +1,30 @@ +Lexical analyser +================ + +This document contains various snippets of information about the lexer +implementation. + +First sets +---------- + +IDENT [a-zA-Z] | '-' | '_' | [^#x0-#x7F] | '\' +ATKEYWORD '@' +STRING '"' | "'" +HASH '#' +NUMBER [0-9] | '.' +PERCENTAGE [0-9] | '.' +DIMENSION [0-9] | '.' +URI [Uu] +UNICODE-RANGE [Uu] +CDO '<' +CDC '-' +S #x9 | #xA | #xC | #xD | #x20 +COMMENT '/' +FUNCTION [a-zA-Z] | '-' | '_' | [^#x0-#x7F] | '\' +INCLUDES '~' +DASHMATCH '|' +PREFIXMATCH '^' +SUFFIXMATCH '$' +SUBSTRINGMATCH '*' +CHAR anything except " or ' + diff --git a/docs/Tokens b/docs/Tokens new file mode 100644 index 0000000..21e09da --- /dev/null +++ b/docs/Tokens @@ -0,0 +1,65 @@ +Production rules for lexical tokens +=================================== + +This file provides a complete set of production rules for the tokens generated +by the lexer. In case of ambiguity, the longest match wins. + +Components +---------- + +ident ::= '-'? nmstart nmchar* +name ::= nmchar+ +nmstart ::= [a-zA-Z] | '_' | nonascii | escape +nonascii ::= [#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF] +unicode ::= '\' [0-9a-fA-F]{1,6} wc? +escape ::= unicode | '\' [^\n\r\f0-9a-fA-F] +nmchar ::= [a-zA-Z0-9] | '-' | '_' | nonascii | escape +num ::= [0-9]+ | [0-9]* '.' [0-9]+ +string ::= '"' (stringchar | "'")* '"' | "'" (stringchar | '"')* "'" +stringchar ::= urlchar | #x20 | #x29 | '\' nl +urlchar ::= [#x9#x21#x23-#x26#x28#x2A-#x7E] | nonascii | escape +nl ::= #xA | #xD #xA | #xD | #xC +w ::= wc* +wc ::= #x9 | #xA | #xC | #xD | #x20 + +Tokens +------ + +IDENT ::= ident +ATKEYWORD ::= '@' ident +STRING ::= string +HASH ::= '#' name +NUMBER ::= num +PERCENTAGE ::= num '%' +DIMENSION ::= num ident +URI ::= "url(" w (string | urlchar*) w ')' +UNICODE-RANGE ::= [Uu] '+' [0-9a-fA-F?]{1,6} ('-' [0-9a-fA-F]{1,6})? +CDO ::= "<!--" +CDC ::= "-->" +S ::= wc+ +COMMENT ::= "/*" [^*]* '*'+ ([^/] [^*]* '*'+) '/' +FUNCTION ::= ident '(' +INCLUDES ::= "~=" +DASHMATCH ::= "|=" +PREFIXMATCH ::= "^=" +SUFFIXMATCH ::= "$=" +SUBSTRINGMATCH ::= "*=" +CHAR ::= any other character, except " or ' + +Differences from the CSS3 Syntax module specification +----------------------------------------------------- + +1) UNICODE-RANGE is case insensitive (it's uppercase only in the spec) +2) escape follows CSS2.1. CSS3 defines it as: + escape ::= unicode | '\' [#x20-#x7E#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF] +3) urlchar omits ' and ): + a) If ' is permitted verbatim then, as stringchar inherits from urlchar, + single quoted strings may contain verbatim single quotes. This is + clearly nonsense. + b) If ) is permitted verbatim then it becomes impossible to determine the + true end of URI. Thus, for sanity's sake, it's omitted here. +4) stringchar explicitly includes ). See 3(b) for why it won't inherit it + from urlchar as the spec implies. +5) BOM ::= #xFEFF is omitted. It is assumed that any leading BOM will be + stripped from the document before lexing occurs. + diff --git a/include/libcss/errors.h b/include/libcss/errors.h new file mode 100644 index 0000000..f7eeba2 --- /dev/null +++ b/include/libcss/errors.h @@ -0,0 +1,31 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_errors_h_ +#define css_errors_h_ + +#include <stddef.h> + +typedef enum css_error { + CSS_OK = 0, + + CSS_NOMEM = 1, + CSS_BADPARM = 2, + CSS_INVALID = 3, + CSS_FILENOTFOUND = 4, + CSS_NEEDDATA = 5, + CSS_BADCHARSET = 6, + CSS_EOF = 7, +} css_error; + +/* Convert a libcss error value to a string */ +const char *css_error_to_string(css_error error); +/* Convert a string to a libcss error value */ +css_error css_error_from_string(const char *str, size_t len); + +#endif + diff --git a/include/libcss/functypes.h b/include/libcss/functypes.h new file mode 100644 index 0000000..22a48bf --- /dev/null +++ b/include/libcss/functypes.h @@ -0,0 +1,27 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007-8 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_functypes_h_ +#define css_functypes_h_ + +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#include <libcss/types.h> + +/* Type of allocation function for libcss */ +typedef void *(*css_alloc)(void *ptr, size_t size, void *pw); + +/** + * Type of parse error handling function + */ +typedef void (*css_error_handler)(uint32_t line, uint32_t col, + const char *message, void *pw); + +#endif + diff --git a/include/libcss/libcss.h b/include/libcss/libcss.h new file mode 100644 index 0000000..364a3eb --- /dev/null +++ b/include/libcss/libcss.h @@ -0,0 +1,23 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_h_ +#define css_h_ + +#include <libcss/errors.h> +#include <libcss/functypes.h> +#include <libcss/types.h> + +/* Initialise the CSS library for use */ +css_error css_initialise(const char *aliases_file, + css_alloc alloc, void *pw); + +/* Clean up after LibCSS */ +css_error css_finalise(css_alloc alloc, void *pw); + +#endif + diff --git a/include/libcss/types.h b/include/libcss/types.h new file mode 100644 index 0000000..b3e18dc --- /dev/null +++ b/include/libcss/types.h @@ -0,0 +1,33 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_types_h_ +#define css_types_h_ + +#include <stdbool.h> +#include <inttypes.h> + +/** Source of charset information, in order of importance + * A client-dictated charset will override all others. + * A document-specified charset will override autodetection or the default */ +typedef enum css_charset_source { + CSS_CHARSET_DEFAULT = 0, /**< Default setting */ + CSS_CHARSET_REFERRED = 1, /**< From referring document */ + CSS_CHARSET_METADATA = 2, /**< From linking metadata */ + CSS_CHARSET_DOCUMENT = 3, /**< Defined in document */ + CSS_CHARSET_DICTATED = 4, /**< Dictated by client */ +} css_charset_source; + +/** + * String type + */ +typedef struct css_string { + uint8_t *ptr; /**< Pointer to data */ + size_t len; /**< Byte length of string */ +} css_string; + +#endif diff --git a/libcss.pc.in b/libcss.pc.in new file mode 100644 index 0000000..fc45a57 --- /dev/null +++ b/libcss.pc.in @@ -0,0 +1,10 @@ +prefix=PREFIX +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: libcss +Description: CSS parsing and selection library +Version: 0.0.1 +Libs: -L${libdir} -lcharset -lcss +Cflags: -I${includedir} diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..f56a87f --- /dev/null +++ b/src/Makefile @@ -0,0 +1,49 @@ +# Child makefile fragment +# +# Toolchain is provided by top-level makefile +# +# Variables provided by top-level makefile +# +# COMPONENT The name of the component +# EXPORT The location of the export directory +# TOP The location of the source tree root +# RELEASEDIR The place to put release objects +# DEBUGDIR The place to put debug objects +# +# do_include Canned command sequence to include a child makefile +# +# Variables provided by parent makefile: +# +# DIR The name of the directory we're in, relative to $(TOP) +# +# Variables we can manipulate: +# +# ITEMS_CLEAN The list of items to remove for "make clean" +# ITEMS_DISTCLEAN The list of items to remove for "make distclean" +# TARGET_TESTS The list of target names to run for "make test" +# +# SOURCES The list of sources to build for $(COMPONENT) +# +# Plus anything from the toolchain + +# Push parent directory onto the directory stack +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(DIR) + +# Manipulate include paths +CFLAGS := $(CFLAGS) -I$(d) + +# Sources +SRCS_$(d) := libcss.c + +# Append to sources for component +SOURCES += $(addprefix $(d), $(SRCS_$(d))) + +# Now include any children we may have +MAKE_INCLUDES := $(wildcard $(d)*/Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Finally, pop off the directory stack +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/charset/Makefile b/src/charset/Makefile new file mode 100644 index 0000000..dda58c1 --- /dev/null +++ b/src/charset/Makefile @@ -0,0 +1,46 @@ +# Child makefile fragment +# +# Toolchain is provided by top-level makefile +# +# Variables provided by top-level makefile +# +# COMPONENT The name of the component +# EXPORT The location of the export directory +# TOP The location of the source tree root +# RELEASEDIR The place to put release objects +# DEBUGDIR The place to put debug objects +# +# do_include Canned command sequence to include a child makefile +# +# Variables provided by parent makefile: +# +# DIR The name of the directory we're in, relative to $(TOP) +# +# Variables we can manipulate: +# +# ITEMS_CLEAN The list of items to remove for "make clean" +# ITEMS_DISTCLEAN The list of items to remove for "make distclean" +# TARGET_TESTS The list of target names to run for "make test" +# +# SOURCES The list of sources to build for $(COMPONENT) +# +# Plus anything from the toolchain + +# Push parent directory onto the directory stack +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(DIR) + +# Sources +SRCS_$(d) := detect.c + +# Append to sources for component +SOURCES += $(addprefix $(d), $(SRCS_$(d))) + +# Now include any children we may have +MAKE_INCLUDES := $(wildcard $(d)*/Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Finally, pop off the directory stack +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/charset/detect.c b/src/charset/detect.c new file mode 100644 index 0000000..11ee699 --- /dev/null +++ b/src/charset/detect.c @@ -0,0 +1,161 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#include <stdbool.h> +#include <string.h> + +#include <parserutils/charset/mibenum.h> + +#include "charset/detect.h" +#include "utils/utils.h" + +static parserutils_error css_charset_read_bom_or_charset(const uint8_t *data, + size_t len, uint16_t *mibenum); + +/** + * Extract a charset from a chunk of data + * + * \param data Pointer to buffer containing data + * \param len Buffer length + * \param mibenum Pointer to location containing current MIB enum + * \param source Pointer to location containing current charset source + * \return PARSERUTILS_OK on success, appropriate error otherwise + * + * ::mibenum and ::source will be updated on exit + * + * CSS 2.1 $4.4 + */ +parserutils_error css_charset_extract(const uint8_t *data, size_t len, + uint16_t *mibenum, uint32_t *source) +{ + css_error error; + uint16_t charset = 0; + + if (data == NULL || mibenum == NULL || source == NULL) + return PARSERUTILS_BADPARM; + + /* If the charset was dictated by the client, we've nothing to detect */ + if (*source == CSS_CHARSET_DICTATED) + return PARSERUTILS_OK; + + /* We need at least 4 bytes of data */ + if (len < 4) + goto default_encoding; + + /* Look for a BOM and/or @charset */ + error = css_charset_read_bom_or_charset(data, len, &charset); + if (error != PARSERUTILS_OK) + return error; + + if (charset != 0) { + *mibenum = charset; + *source = CSS_CHARSET_DOCUMENT; + + return PARSERUTILS_OK; + } + + /* If we've already got a charset from the linking mechanism or + * referring document, then we've nothing further to do */ + if (*source != CSS_CHARSET_DEFAULT) + return PARSERUTILS_OK; + + /* We've not yet found a charset, so use the default fallback */ +default_encoding: + + charset = parserutils_charset_mibenum_from_name("UTF-8", SLEN("UTF-8")); + + *mibenum = charset; + *source = CSS_CHARSET_DEFAULT; + + return PARSERUTILS_OK; +} + + +/** + * Inspect the beginning of a buffer of data for the presence of a + * UTF Byte Order Mark and/or an @charset rule + * + * \param data Pointer to buffer containing data + * \param len Buffer length + * \param mibenum Pointer to location to receive MIB enum + * \return PARSERUTILS_OK on success, appropriate error otherwise + */ +parserutils_error css_charset_read_bom_or_charset(const uint8_t *data, + size_t len, uint16_t *mibenum) +{ + uint16_t charset = 0; + + if (data == NULL) + return PARSERUTILS_BADPARM; + + /* We require at least 4 bytes of data */ + if (len < 4) + return PARSERUTILS_NEEDDATA; + + + /* Look for BOM */ + if (data[0] == 0x00 && data[1] == 0x00 && + data[2] == 0xFE && data[3] == 0xFF) { + charset = parserutils_charset_mibenum_from_name("UTF-32BE", + SLEN("UTF-32BE")); + } else if (data[0] == 0xFF && data[1] == 0xFE && + data[2] == 0x00 && data[3] == 0x00) { + charset = parserutils_charset_mibenum_from_name("UTF-32LE", + SLEN("UTF-32LE")); + } else if (data[0] == 0xFE && data[1] == 0xFF) { + charset = parserutils_charset_mibenum_from_name("UTF-16BE", + SLEN("UTF-16BE")); + } else if (data[0] == 0xFF && data[1] == 0xFE) { + charset = parserutils_charset_mibenum_from_name("UTF-16LE", + SLEN("UTF-16LE")); + } else if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) { + charset = parserutils_charset_mibenum_from_name("UTF-8", + SLEN("UTF-8")); + } + + /* BOM beats @charset. + * UAs differ here, but none appear to match the spec. + * The spec indicates that any @charset present in conjunction with a + * BOM, should match the BOM. In reality, it appears UAs just take the + * BOM as gospel and ignore any @charset rule. The w3c CSS validator + * appears to do the same (at the least, it doesn't complain about a + * mismatch). + */ + if (charset != 0) { + *mibenum = charset; + return PARSERUTILS_OK; + } + + /** \todo UTF-32 and UTF-16 @charset support */ + + /* Look for @charset, assuming ASCII-compatible source data */ + if (len > 10 && strncmp((const char *) data, "@charset \"", + SLEN("@charset \"")) == 0) { + const uint8_t *end; + + /* Look for "; at end of charset declaration */ + for (end = data + 10; end < data + len; end++) { + if (*end == '"' && end < data + len - 1 && + *(end + 1) == ';') + break; + } + + if (end == data + len) { + /* Ran out of input */ + return PARSERUTILS_NEEDDATA; + } + + /* Convert to MIB enum */ + charset = parserutils_charset_mibenum_from_name( + (char *) data + 10, end - data - 10); + } + + *mibenum = charset; + + return PARSERUTILS_OK; +} + diff --git a/src/charset/detect.h b/src/charset/detect.h new file mode 100644 index 0000000..d907921 --- /dev/null +++ b/src/charset/detect.h @@ -0,0 +1,24 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_charset_detect_h_ +#define css_charset_detect_h_ + +#include <inttypes.h> + +#include <libcss/errors.h> +#include <libcss/functypes.h> +#include <libcss/types.h> + +#include <parserutils/errors.h> + +/* Extract a charset from a chunk of data */ +parserutils_error css_charset_extract(const uint8_t *data, size_t len, + uint16_t *mibenum, uint32_t *source); + +#endif + diff --git a/src/lex/Makefile b/src/lex/Makefile new file mode 100644 index 0000000..73f8ecf --- /dev/null +++ b/src/lex/Makefile @@ -0,0 +1,49 @@ +# Child makefile fragment +# +# Toolchain is provided by top-level makefile +# +# Variables provided by top-level makefile +# +# COMPONENT The name of the component +# EXPORT The location of the export directory +# TOP The location of the source tree root +# RELEASEDIR The place to put release objects +# DEBUGDIR The place to put debug objects +# +# do_include Canned command sequence to include a child makefile +# +# Variables provided by parent makefile: +# +# DIR The name of the directory we're in, relative to $(TOP) +# +# Variables we can manipulate: +# +# ITEMS_CLEAN The list of items to remove for "make clean" +# ITEMS_DISTCLEAN The list of items to remove for "make distclean" +# TARGET_TESTS The list of target names to run for "make test" +# +# SOURCES The list of sources to build for $(COMPONENT) +# +# Plus anything from the toolchain + +# Push parent directory onto the directory stack +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(DIR) + +# Manipulate include paths +CFLAGS := $(CFLAGS) -I$(d) + +# Sources +SRCS_$(d) := lex.c + +# Append to sources for component +SOURCES += $(addprefix $(d), $(SRCS_$(d))) + +# Now include any children we may have +MAKE_INCLUDES := $(wildcard $(d)*/Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Finally, pop off the directory stack +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/lex/lex.c b/src/lex/lex.c new file mode 100644 index 0000000..4df6cea --- /dev/null +++ b/src/lex/lex.c @@ -0,0 +1,2116 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> + */ + +/** \file CSS lexer + * + * See docs/Tokens for the production rules used by this lexer. + * + * See docs/Lexer for the inferred first characters for each token. + * + * See also CSS3 Syntax module and CSS2.1 $4.1.1 + errata + * + * The lexer assumes that all invalid Unicode codepoints have been converted + * to U+FFFD by the input stream. + * + * The lexer comprises a state machine, the top-level of which is derived from + * the First sets in docs/Lexer. Each top-level state may contain a number of + * sub states. These enable restarting of the parser. + */ + +#include <assert.h> +#include <stdarg.h> +#include <stdbool.h> +#include <stdint.h> + +#include <parserutils/charset/utf8.h> +#include <parserutils/input/inputstream.h> +#include <parserutils/utils/buffer.h> + +#include <libcss/errors.h> + +#include "lex/lex.h" +#include "utils/parserutilserror.h" + +/** \todo Optimisation -- we're currently revisiting a bunch of input + * characters (Currently, we're calling parserutils_inputstream_peek about + * 1.5x the number of characters in the input stream). Ideally, + * we'll visit each character in the input exactly once. In reality, + * the upper bound is twice, due to the need, in some cases, to read + * one character beyond the end of a token's input to detect the end + * of the token. Resumability adds a little overhead here, unless + * we're somewhat more clever when it comes to having support for + * restarting mid-escape sequence. Currently, we rewind back to the + * start of the sequence and process the whole thing again. + */ + +enum { + sSTART = 0, + sATKEYWORD = 1, + sSTRING = 2, + sHASH = 3, + sNUMBER = 4, + sCDO = 5, + sCDC = 6, + sS = 7, + sCOMMENT = 8, + sMATCH = 9, + sURI = 10, + sIDENT = 11, + sESCAPEDIDENT = 12, + sURL = 13, + sUCR = 14 +}; + +/** + * CSS lexer object + */ +struct css_lexer +{ + parserutils_inputstream *input; /**< Inputstream containing CSS */ + + size_t bytesReadForToken; /**< Total bytes read from the + * inputstream for the current token */ + + css_token token; /**< The current token */ + + bool escapeSeen; /**< Whether an escape sequence has + * been seen while processing the input + * for the current token */ + parserutils_buffer *unescapedTokenData; /**< Buffer containing + * unescaped token data + * (used iff escapeSeen == true) + */ + + uint32_t state : 4, /**< Current state */ + substate : 4; /**< Current substate */ + + struct { + uint8_t first; /**< First character read for token */ + size_t origBytes; /**< Storage of current number of + * bytes read, for rewinding */ + bool lastWasStar; /**< Whether the previous character + * was an asterisk */ + bool lastWasCR; /**< Whether the previous character + * was CR */ + size_t bytesForURL; /**< Input bytes read for "url(", for + * rewinding */ + size_t dataLenForURL; /**< Output length for "url(", for + * rewinding */ + int hexCount; /**< Counter for reading hex digits */ + } context; /**< Context for the current state */ + + bool emit_comments; /**< Whether to emit comment tokens */ + + uint32_t currentCol; /**< Current column in source */ + uint32_t currentLine; /**< Current line in source */ + + css_alloc alloc; /**< Memory (de)allocation function */ + void *pw; /**< Pointer to client-specific data */ +}; + +#define APPEND(lexer, data, len) \ +do { \ + css_error error; \ + error = appendToTokenData((lexer), \ + (const uint8_t*) (data), (len)); \ + if (error != CSS_OK) \ + return error; \ + (lexer)->bytesReadForToken += (len); \ + (lexer)->currentCol += (len); \ +} while(0) \ + +static inline css_error appendToTokenData(css_lexer *lexer, + const uint8_t *data, size_t len); +static inline css_error emitToken(css_lexer *lexer, css_token_type type, + const css_token **token); + +static inline css_error AtKeyword(css_lexer *lexer, const css_token **token); +static inline css_error CDCOrIdentOrFunction(css_lexer *lexer, + const css_token **token); +static inline css_error CDO(css_lexer *lexer, const css_token **token); +static inline css_error Comment(css_lexer *lexer, const css_token **token); +static inline css_error EscapedIdentOrFunction(css_lexer *lexer, + const css_token **token); +static inline css_error Hash(css_lexer *lexer, const css_token **token); +static inline css_error IdentOrFunction(css_lexer *lexer, + const css_token **token); +static inline css_error Match(css_lexer *lexer, const css_token **token); +static inline css_error NumberOrPercentageOrDimension(css_lexer *lexer, + const css_token **token); +static inline css_error S(css_lexer *lexer, const css_token **token); +static inline css_error Start(css_lexer *lexer, const css_token **token); +static inline css_error String(css_lexer *lexer, const css_token **token); +static inline css_error URIOrUnicodeRangeOrIdentOrFunction( + css_lexer *lexer, const css_token **token); +static inline css_error URI(css_lexer *lexer, const css_token **token); +static inline css_error UnicodeRange(css_lexer *lexer, const css_token **token); + +static inline css_error consumeDigits(css_lexer *lexer); +static inline css_error consumeEscape(css_lexer *lexer, bool nl); +static inline css_error consumeNMChars(css_lexer *lexer); +static inline css_error consumeString(css_lexer *lexer); +static inline css_error consumeStringChars(css_lexer *lexer); +static inline css_error consumeUnicode(css_lexer *lexer, uint32_t ucs); +static inline css_error consumeURLChars(css_lexer *lexer); +static inline css_error consumeWChars(css_lexer *lexer); + +static inline uint32_t charToHex(uint8_t c); +static inline bool startNMChar(uint8_t c); +static inline bool startNMStart(uint8_t c); +static inline bool startStringChar(uint8_t c); +static inline bool startURLChar(uint8_t c); +static inline bool isDigit(uint8_t c); +static inline bool isHex(uint8_t c); +static inline bool isSpace(uint8_t c); + +/** + * Create a lexer instance + * + * \param input The inputstream to read from + * \param alloc Memory (de)allocation function + * \param pw Pointer to client-specific private data + * \return Pointer to instance, or NULL on memory exhaustion + */ +css_lexer *css_lexer_create(parserutils_inputstream *input, + css_alloc alloc, void *pw) +{ + css_lexer *lex; + + if (input == NULL || alloc == NULL) + return NULL; + + lex = alloc(NULL, sizeof(css_lexer), pw); + if (lex == NULL) + return NULL; + + lex->input = input; + lex->bytesReadForToken = 0; + lex->token.type = CSS_TOKEN_EOF; + lex->token.data.ptr = NULL; + lex->token.data.len = 0; + lex->escapeSeen = false; + lex->unescapedTokenData = NULL; + lex->state = sSTART; + lex->substate = 0; + lex->emit_comments = false; + lex->currentCol = 1; + lex->currentLine = 1; + lex->alloc = alloc; + lex->pw = pw; + + return lex; +} + +/** + * Destroy a lexer instance + * + * \param lexer The instance to destroy + */ +void css_lexer_destroy(css_lexer *lexer) +{ + if (lexer == NULL) + return; + + if (lexer->unescapedTokenData != NULL) + parserutils_buffer_destroy(lexer->unescapedTokenData); + + lexer->alloc(lexer, 0, lexer->pw); +} + +/** + * Configure a lexer instance + * + * \param lexer The lexer to configure + * \param type The option type to modify + * \param params Option-specific parameters + * \return CSS_OK on success, appropriate error otherwise + */ +css_error css_lexer_setopt(css_lexer *lexer, css_lexer_opttype type, + css_lexer_optparams *params) +{ + if (lexer == NULL || params == NULL) + return CSS_BADPARM; + + switch (type) { + case CSS_LEXER_EMIT_COMMENTS: + lexer->emit_comments = params->emit_comments; + break; + default: + return CSS_BADPARM; + } + + return CSS_OK; +} + +/** + * Retrieve a token from a lexer + * + * \param lexer The lexer instance to read from + * \param token Pointer to location to receive pointer to token + * \return CSS_OK on success, appropriate error otherwise + */ +css_error css_lexer_get_token(css_lexer *lexer, const css_token **token) +{ + css_error error; + + if (lexer == NULL || token == NULL) + return CSS_BADPARM; + + switch (lexer->state) + { + case sSTART: + start: + return Start(lexer, token); + case sATKEYWORD: + return AtKeyword(lexer, token); + case sSTRING: + return String(lexer, token); + case sHASH: + return Hash(lexer, token); + case sNUMBER: + return NumberOrPercentageOrDimension(lexer, token); + case sCDO: + return CDO(lexer, token); + case sCDC: + return CDCOrIdentOrFunction(lexer, token); + case sS: + return S(lexer, token); + case sCOMMENT: + error = Comment(lexer, token); + if (!lexer->emit_comments && error == CSS_OK) + goto start; + return error; + case sMATCH: + return Match(lexer, token); + case sURI: + return URI(lexer, token); + case sIDENT: + return IdentOrFunction(lexer, token); + case sESCAPEDIDENT: + return EscapedIdentOrFunction(lexer, token); + case sURL: + return URI(lexer, token); + case sUCR: + return UnicodeRange(lexer, token); + } + + /* Should never be reached */ + assert(0); + + return CSS_OK; +} + +/****************************************************************************** + * Utility routines * + ******************************************************************************/ + +/** + * Append some data to the current token + * + * \param lexer The lexer instance + * \param data Pointer to data to append + * \param len Length, in bytes, of data + * \return CSS_OK on success, appropriate error otherwise + * + * This should not be called directly without good reason. Use the APPEND() + * macro instead. + */ +css_error appendToTokenData(css_lexer *lexer, const uint8_t *data, size_t len) +{ + css_token *token = &lexer->token; + + if (lexer->escapeSeen) { + css_error error = css_error_from_parserutils_error( + parserutils_buffer_append( + lexer->unescapedTokenData, data, len)); + if (error != CSS_OK) + return error; + } + + token->data.len += len; + + return CSS_OK; +} + +/** + * Prepare a token for consumption and emit it to the client + * + * \param lexer The lexer instance + * \param type The type of token to emit + * \param token Pointer to location to receive pointer to token + * \return CSS_OK on success, appropriate error otherwise + */ +css_error emitToken(css_lexer *lexer, css_token_type type, + const css_token **token) +{ + css_token *t = &lexer->token; + + t->type = type; + + /* Calculate token data start pointer. We have to do this here as + * the inputstream's buffer may have moved under us. */ + if (lexer->escapeSeen) { + t->data.ptr = lexer->unescapedTokenData->data; + } else { + size_t clen; + uintptr_t ptr = parserutils_inputstream_peek( + lexer->input, 0, &clen); + + assert(type == CSS_TOKEN_EOF || + (ptr != PARSERUTILS_INPUTSTREAM_EOF && + ptr != PARSERUTILS_INPUTSTREAM_OOD)); + + t->data.ptr = (type == CSS_TOKEN_EOF) ? NULL : (uint8_t *) ptr; + } + + switch (type) { + case CSS_TOKEN_ATKEYWORD: + /* Strip the '@' from the front */ + t->data.ptr += 1; + t->data.len -= 1; + break; + case CSS_TOKEN_STRING: + /* Strip the leading quote */ + t->data.ptr += 1; + t->data.len -= 1; + + /* Strip the trailing quote */ + t->data.len -= 1; + break; + case CSS_TOKEN_HASH: + /* Strip the '#' from the front */ + t->data.ptr += 1; + t->data.len -= 1; + break; + case CSS_TOKEN_PERCENTAGE: + /* Strip the '%' from the end */ + t->data.len -= 1; + break; + case CSS_TOKEN_DIMENSION: + /** \todo Do we want to separate the value from the units? */ + break; + case CSS_TOKEN_URI: + /* Strip the "url(" from the start */ + t->data.ptr += sizeof("url(") - 1; + t->data.len -= sizeof("url(") - 1; + + /* Strip any leading whitespace */ + while (isSpace(t->data.ptr[0])) { + t->data.ptr++; + t->data.len--; + } + + /* Strip any leading quote */ + if (t->data.ptr[0] == '"' || t->data.ptr[0] == '\'') { + t->data.ptr += 1; + t->data.len -= 1; + } + + /* Strip the trailing ')' */ + t->data.len -= 1; + + /* Strip any trailing whitespace */ + while (isSpace(t->data.ptr[t->data.len - 1])) { + t->data.len--; + } + + /* Strip any trailing quote */ + if (t->data.ptr[t->data.len - 1] == '"' || + t->data.ptr[t->data.len - 1] == '\'') { + t->data.len -= 1; + } + break; + case CSS_TOKEN_UNICODE_RANGE: + /* Remove "U+" from the start */ + t->data.ptr += sizeof("U+") - 1; + t->data.len -= sizeof("U+") - 1; + break; + case CSS_TOKEN_COMMENT: + /* Strip the leading '/' and '*' */ + t->data.ptr += sizeof("/*") - 1; + t->data.len -= sizeof("/*") - 1; + + /* Strip the trailing '*' and '/' */ + t->data.len -= sizeof("*/") - 1; + break; + case CSS_TOKEN_FUNCTION: + /* Strip the trailing '(' */ + t->data.len -= 1; + break; + default: + break; + } + + *token = t; + + /* Reset the lexer's state */ + lexer->state = sSTART; + lexer->substate = 0; + + return CSS_OK; +} + +/****************************************************************************** + * State machine components * + ******************************************************************************/ + +css_error AtKeyword(css_lexer *lexer, const css_token **token) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + enum { Initial = 0, Escape = 1, NMChar = 2 }; + + /* ATKEYWORD = '@' ident + * + * The '@' has been consumed. + */ + + switch (lexer->substate) { + case Initial: + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + c = *((uint8_t *) cptr); + + if (!startNMStart(c)) + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + if (c != '\\') { + APPEND(lexer, cptr, clen); + } else { + lexer->bytesReadForToken += clen; + goto escape; + } + + /* Fall through */ + case NMChar: + nmchar: + lexer->substate = NMChar; + error = consumeNMChars(lexer); + if (error != CSS_OK) + return error; + break; + + case Escape: + escape: + lexer->substate = Escape; + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + if (error == CSS_EOF || error == CSS_INVALID) { + /* Rewind the '\\' */ + lexer->bytesReadForToken -= 1; + + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + return error; + } + + goto nmchar; + } + + return emitToken(lexer, CSS_TOKEN_ATKEYWORD, token); +} + +css_error CDCOrIdentOrFunction(css_lexer *lexer, const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + enum { Initial = 0, Escape = 1, Gt = 2 }; + + /* CDC = "-->" + * IDENT = [-]? nmstart nmchar* + * FUNCTION = [-]? nmstart nmchar* '(' + * + * The first dash has been consumed. Thus, we must consume the next + * character in the stream. If it's a dash, then we're dealing with + * CDC. Otherwise, we're dealing with IDENT/FUNCTION. + */ + + switch (lexer->substate) { + case Initial: + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* We can only match char with what we've read so far */ + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + c = *((uint8_t *) cptr); + + if (c != '-' && !startNMStart(c)) { + /* Can only be CHAR */ + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + + if (c != '\\') { + APPEND(lexer, cptr, clen); + } + + if (c != '-') { + if (c == '\\') { + lexer->bytesReadForToken += clen; + goto escape; + } + + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + } + + /* Fall through */ + case Gt: + lexer->substate = Gt; + + /* Ok, so we're dealing with CDC. Expect a '>' */ + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* CHAR is the only match here */ + /* Remove the '-' we read above */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + c = *((uint8_t *) cptr); + + if (c == '>') { + APPEND(lexer, cptr, clen); + + t->type = CSS_TOKEN_CDC; + } else { + /* Remove the '-' we read above */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + t->type = CSS_TOKEN_CHAR; + } + break; + + case Escape: + escape: + lexer->substate = Escape; + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + if (error == CSS_EOF || error == CSS_INVALID) { + /* Rewind the '\\' */ + lexer->bytesReadForToken -= 1; + + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + return error; + } + + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + } + + return emitToken(lexer, t->type, token); +} + +css_error CDO(css_lexer *lexer, const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr; + uint8_t c; + size_t clen; + enum { Initial = 0, Dash1 = 1, Dash2 = 2 }; + + /* CDO = "<!--" + * + * The '<' has been consumed + */ + + switch (lexer->substate) { + case Initial: + /* Expect '!' */ + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* CHAR is the only match here */ + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + c = *((uint8_t *) cptr); + + if (c == '!') { + APPEND(lexer, cptr, clen); + } else { + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + /* Fall Through */ + case Dash1: + lexer->substate = Dash1; + + /* Expect '-' */ + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* CHAR is the only match here */ + /* Remove the '!' we read above */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + c = *((uint8_t *) cptr); + + if (c == '-') { + APPEND(lexer, cptr, clen); + } else { + /* Remove the '!' we read above */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + /* Fall through */ + case Dash2: + lexer->substate = Dash2; + + /* Expect '-' */ + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* CHAR is the only match here */ + /* Remove the '-' and the '!' we read above */ + lexer->bytesReadForToken -= 2; + t->data.len -= 2; + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + c = *((uint8_t *) cptr); + + if (c == '-') { + APPEND(lexer, cptr, clen); + } else { + /* Remove the '-' and the '!' we read above */ + lexer->bytesReadForToken -= 2; + t->data.len -= 2; + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + } + + return emitToken(lexer, CSS_TOKEN_CDO, token); +} + +css_error Comment(css_lexer *lexer, const css_token **token) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + enum { Initial = 0, InComment = 1 }; + + /* COMMENT = '/' '*' [^*]* '*'+ ([^/] [^*]* '*'+)* '/' + * + * The '/' has been consumed. + */ + switch (lexer->substate) { + case Initial: + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + c = *((uint8_t *) cptr); + + if (c != '*') + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + APPEND(lexer, cptr, clen); + + /* Fall through */ + case InComment: + lexer->substate = InComment; + + while (1) { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* As per unterminated strings, + * we ignore unterminated comments. */ + return emitToken(lexer, CSS_TOKEN_EOF, token); + } + + c = *((uint8_t *) cptr); + + APPEND(lexer, cptr, clen); + + if (lexer->context.lastWasStar && c == '/') + break; + + lexer->context.lastWasStar = (c == '*'); + + if (c == '\n' || c == '\f') { + lexer->currentCol = 1; + lexer->currentLine++; + } + + if (lexer->context.lastWasCR && c != '\n') { + lexer->currentCol = 1; + lexer->currentLine++; + } + lexer->context.lastWasCR = (c == '\r'); + } + } + + return emitToken(lexer, CSS_TOKEN_COMMENT, token); +} + +css_error EscapedIdentOrFunction(css_lexer *lexer, const css_token **token) +{ + css_error error; + + /* IDENT = ident = [-]? nmstart nmchar* + * FUNCTION = ident '(' = [-]? nmstart nmchar* '(' + * + * In this case, nmstart is an escape sequence and no '-' is present. + * + * The '\\' has been consumed. + */ + + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + if (error == CSS_EOF || error == CSS_INVALID) { + /* The '\\' is a token of its own */ + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } + + return error; + } + + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); +} + +css_error Hash(css_lexer *lexer, const css_token **token) +{ + css_error error; + + /* HASH = '#' name = '#' nmchar+ + * + * The '#' has been consumed. + */ + + error = consumeNMChars(lexer); + if (error != CSS_OK) + return error; + + /* Require at least one NMChar otherwise, we're just a raw '#' */ + if (lexer->bytesReadForToken - lexer->context.origBytes > 0) + return emitToken(lexer, CSS_TOKEN_HASH, token); + + return emitToken(lexer, CSS_TOKEN_CHAR, token); +} + +css_error IdentOrFunction(css_lexer *lexer, const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + enum { Initial = 0, Bracket = 1 }; + + /* IDENT = ident = [-]? nmstart nmchar* + * FUNCTION = ident '(' = [-]? nmstart nmchar* '(' + * + * The optional dash and nmstart are already consumed + */ + + switch (lexer->substate) { + case Initial: + /* Consume all subsequent nmchars (if any exist) */ + error = consumeNMChars(lexer); + if (error != CSS_OK) + return error; + + /* Fall through */ + case Bracket: + lexer->substate = Bracket; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* IDENT, rather than CHAR */ + return emitToken(lexer, CSS_TOKEN_IDENT, token); + } + + c = *((uint8_t *) cptr); + + if (c == '(') { + APPEND(lexer, cptr, clen); + + t->type = CSS_TOKEN_FUNCTION; + } else { + t->type = CSS_TOKEN_IDENT; + } + } + + return emitToken(lexer, t->type, token); +} + +css_error Match(css_lexer *lexer, const css_token **token) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_token_type type = CSS_TOKEN_EOF; /* GCC's braindead */ + + /* INCLUDES = "~=" + * DASHMATCH = "|=" + * PREFIXMATCH = "^=" + * SUFFIXMATCH = "$=" + * SUBSTRINGMATCH = "*=" + * + * The first character has been consumed. + */ + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + c = *((uint8_t *) cptr); + + if (c != '=') + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + APPEND(lexer, cptr, clen); + + switch (lexer->context.first) { + case '~': + type = CSS_TOKEN_INCLUDES; + break; + case '|': + type = CSS_TOKEN_DASHMATCH; + break; + case '^': + type = CSS_TOKEN_PREFIXMATCH; + break; + case '$': + type = CSS_TOKEN_SUFFIXMATCH; + break; + case '*': + type = CSS_TOKEN_SUBSTRINGMATCH; + break; + default: + assert(0); + } + + return emitToken(lexer, type, token); +} + +css_error NumberOrPercentageOrDimension(css_lexer *lexer, + const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + enum { Initial = 0, Dot = 1, MoreDigits = 2, + Suffix = 3, NMChars = 4, Escape = 5 }; + + /* NUMBER = num = [0-9]+ | [0-9]* '.' [0-9]+ + * PERCENTAGE = num '%' + * DIMENSION = num ident + * + * The first digit, or '.' has been consumed. + */ + + switch (lexer->substate) { + case Initial: + error = consumeDigits(lexer); + if (error != CSS_OK) + return error; + + /* Fall through */ + case Dot: + lexer->substate = Dot; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + if (t->data.len == 1 && lexer->context.first == '.') + return emitToken(lexer, CSS_TOKEN_CHAR, token); + else + return emitToken(lexer, CSS_TOKEN_NUMBER, + token); + } + + c = *((uint8_t *) cptr); + + /* Bail if we've not got a '.' or we've seen one already */ + if (c != '.' || lexer->context.first == '.') + goto suffix; + + /* Save the token length up to the end of the digits */ + lexer->context.origBytes = lexer->bytesReadForToken; + + /* Append the '.' to the token */ + APPEND(lexer, cptr, clen); + + /* Fall through */ + case MoreDigits: + lexer->substate = MoreDigits; + + error = consumeDigits(lexer); + if (error != CSS_OK) + return error; + + if (lexer->bytesReadForToken - lexer->context.origBytes == 1) { + /* No digits after dot => dot isn't part of number */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + } + + /* Fall through */ + case Suffix: + suffix: + lexer->substate = Suffix; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + if (t->data.len == 1 && lexer->context.first == '.') + return emitToken(lexer, CSS_TOKEN_CHAR, token); + else + return emitToken(lexer, CSS_TOKEN_NUMBER, + token); + } + + c = *((uint8_t *) cptr); + + /* A solitary '.' is a CHAR, not numeric */ + if (t->data.len == 1 && lexer->context.first == '.') + return emitToken(lexer, CSS_TOKEN_CHAR, token); + + if (c == '%') { + APPEND(lexer, cptr, clen); + + return emitToken(lexer, CSS_TOKEN_PERCENTAGE, token); + } else if (!startNMStart(c)) { + return emitToken(lexer, CSS_TOKEN_NUMBER, token); + } + + if (c != '\\') { + APPEND(lexer, cptr, clen); + } else { + lexer->bytesReadForToken += clen; + goto escape; + } + + /* Fall through */ + case NMChars: + nmchars: + lexer->substate = NMChars; + + error = consumeNMChars(lexer); + if (error != CSS_OK) + return error; + + break; + case Escape: + escape: + lexer->substate = Escape; + + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + if (error == CSS_EOF || error == CSS_INVALID) { + /* Rewind the '\\' */ + lexer->bytesReadForToken -= 1; + + /* This can only be a number */ + return emitToken(lexer, + CSS_TOKEN_NUMBER, token); + } + + return error; + } + + goto nmchars; + } + + return emitToken(lexer, CSS_TOKEN_DIMENSION, token); +} + +css_error S(css_lexer *lexer, const css_token **token) +{ + css_error error; + + /* S = wc* + * + * The first whitespace character has been consumed. + */ + + error = consumeWChars(lexer); + if (error != CSS_OK) + return error; + + return emitToken(lexer, CSS_TOKEN_S, token); +} + +css_error Start(css_lexer *lexer, const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + +start: + + /* Advance past the input read for the previous token */ + if (lexer->bytesReadForToken > 0) { + parserutils_inputstream_advance( + lexer->input, lexer->bytesReadForToken); + lexer->bytesReadForToken = 0; + } + + /* Reset in preparation for the next token */ + t->type = CSS_TOKEN_EOF; + t->data.ptr = NULL; + t->data.len = 0; + t->col = lexer->currentCol; + t->line = lexer->currentLine; + lexer->escapeSeen = false; + if (lexer->unescapedTokenData != NULL) + lexer->unescapedTokenData->length = 0; + + cptr = parserutils_inputstream_peek(lexer->input, 0, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, CSS_TOKEN_EOF, token); + + APPEND(lexer, cptr, clen); + + c = *((uint8_t *) cptr); + + if (clen > 1 || c >= 0x80) { + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + } + + switch (c) { + case '@': + lexer->state = sATKEYWORD; + lexer->substate = 0; + return AtKeyword(lexer, token); + case '"': case '\'': + lexer->state = sSTRING; + lexer->substate = 0; + lexer->context.first = c; + return String(lexer, token); + case '#': + lexer->state = sHASH; + lexer->substate = 0; + lexer->context.origBytes = lexer->bytesReadForToken; + return Hash(lexer, token); + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + case '.': + lexer->state = sNUMBER; + lexer->substate = 0; + lexer->context.first = c; + return NumberOrPercentageOrDimension(lexer, token); + case '<': + lexer->state = sCDO; + lexer->substate = 0; + return CDO(lexer, token); + case '-': + lexer->state = sCDC; + lexer->substate = 0; + return CDCOrIdentOrFunction(lexer, token); + case ' ': case '\t': case '\r': case '\n': case '\f': + lexer->state = sS; + lexer->substate = 0; + if (c == '\n' || c == '\f') { + lexer->currentCol = 1; + lexer->currentLine++; + } + lexer->context.lastWasCR = (c == '\r'); + return S(lexer, token); + case '/': + lexer->state = sCOMMENT; + lexer->substate = 0; + lexer->context.lastWasStar = false; + lexer->context.lastWasCR = false; + error = Comment(lexer, token); + if (!lexer->emit_comments && error == CSS_OK) + goto start; + return error; + case '~': case '|': case '^': case '$': case '*': + lexer->state = sMATCH; + lexer->substate = 0; + lexer->context.first = c; + return Match(lexer, token); + case 'u': case 'U': + lexer->state = sURI; + lexer->substate = 0; + return URIOrUnicodeRangeOrIdentOrFunction(lexer, token); + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': /* 'u'*/ case 'v': case 'w': case 'x': + case 'y': case 'z': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': /* 'U'*/ case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case '_': + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + case '\\': + lexer->state = sESCAPEDIDENT; + lexer->substate = 0; + return EscapedIdentOrFunction(lexer, token); + default: + return emitToken(lexer, CSS_TOKEN_CHAR, token); + } +} + +css_error String(css_lexer *lexer, const css_token **token) +{ + css_error error; + + /* STRING = string + * + * The open quote has been consumed. + */ + + error = consumeString(lexer); + if (error != CSS_OK && error != CSS_EOF) + return error; + + return emitToken(lexer, + error == CSS_EOF ? CSS_TOKEN_EOF : CSS_TOKEN_STRING, + token); +} + +css_error URIOrUnicodeRangeOrIdentOrFunction(css_lexer *lexer, + const css_token **token) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + + /* URI = "url(" w (string | urlchar*) w ')' + * UNICODE-RANGE = [Uu] '+' [0-9a-fA-F?]{1,6}(-[0-9a-fA-F]{1,6})? + * IDENT = ident = [-]? nmstart nmchar* + * FUNCTION = ident '(' = [-]? nmstart nmchar* '(' + * + * The 'u' (or 'U') has been consumed. + */ + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* IDENT, rather than CHAR */ + return emitToken(lexer, CSS_TOKEN_IDENT, token); + } + + c = *((uint8_t *) cptr); + + if (c == 'r' || c == 'R') { + APPEND(lexer, cptr, clen); + + lexer->state = sURL; + lexer->substate = 0; + return URI(lexer, token); + } else if (c == '+') { + APPEND(lexer, cptr, clen); + + lexer->state = sUCR; + lexer->substate = 0; + lexer->context.hexCount = 0; + return UnicodeRange(lexer, token); + } + + /* Can only be IDENT or FUNCTION. Reprocess current character */ + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); +} + +css_error URI(css_lexer *lexer, const css_token **token) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + enum { Initial = 0, LParen = 1, W1 = 2, Quote = 3, + URL = 4, W2 = 5, RParen = 6, String = 7 }; + + /* URI = "url(" w (string | urlchar*) w ')' + * + * 'u' and 'r' have been consumed. + */ + + switch (lexer->substate) { + case Initial: + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* IDENT */ + return emitToken(lexer, CSS_TOKEN_IDENT, token); + } + + c = *((uint8_t *) cptr); + + if (c == 'l' || c == 'L') { + APPEND(lexer, cptr, clen); + } else { + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + } + + /* Fall through */ + case LParen: + lexer->substate = LParen; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, CSS_TOKEN_IDENT, token); + + c = *((uint8_t *) cptr); + + if (c == '(') { + APPEND(lexer, cptr, clen); + } else { + lexer->state = sIDENT; + lexer->substate = 0; + return IdentOrFunction(lexer, token); + } + + /* Save the number of input bytes read for "url(" */ + lexer->context.bytesForURL = lexer->bytesReadForToken; + /* And the length of the token data at the same point */ + lexer->context.dataLenForURL = lexer->token.data.len; + + lexer->context.lastWasCR = false; + + /* Fall through */ + case W1: + lexer->substate = W1; + + error = consumeWChars(lexer); + if (error != CSS_OK) + return error; + + /* Fall through */ + case Quote: + lexer->substate = Quote; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* Rewind to "url(" */ + lexer->bytesReadForToken = lexer->context.bytesForURL; + lexer->token.data.len = lexer->context.dataLenForURL; + return emitToken(lexer, CSS_TOKEN_FUNCTION, token); + } + + c = *((uint8_t *) cptr); + + if (c == '"' || c == '\'') { + APPEND(lexer, cptr, clen); + + lexer->context.first = c; + + goto string; + } + + /* Potential minor optimisation: If string is more common, + * then fall through to that state and branch for the URL + * state. Need to investigate a reasonably large corpus of + * real-world data to determine if this is worthwhile. */ + + /* Fall through */ + case URL: + lexer->substate = URL; + + error = consumeURLChars(lexer); + if (error != CSS_OK) + return error; + + lexer->context.lastWasCR = false; + + /* Fall through */ + case W2: + w2: + lexer->substate = W2; + + error = consumeWChars(lexer); + if (error != CSS_OK) + return error; + + /* Fall through */ + case RParen: + lexer->substate = RParen; + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + /* Rewind to "url(" */ + lexer->bytesReadForToken = lexer->context.bytesForURL; + lexer->token.data.len = lexer->context.dataLenForURL; + return emitToken(lexer, CSS_TOKEN_FUNCTION, token); + } + + c = *((uint8_t *) cptr); + + if (c != ')') { + /* Rewind to "url(" */ + lexer->bytesReadForToken = lexer->context.bytesForURL; + lexer->token.data.len = lexer->context.dataLenForURL; + return emitToken(lexer, CSS_TOKEN_FUNCTION, token); + } + + APPEND(lexer, cptr, clen); + break; + case String: + string: + lexer->substate = String; + + error = consumeString(lexer); + if (error != CSS_OK && error != CSS_EOF) + return error; + + /* EOF gets handled in RParen */ + + lexer->context.lastWasCR = false; + + goto w2; + } + + return emitToken(lexer, CSS_TOKEN_URI, token); +} + +css_error UnicodeRange(css_lexer *lexer, const css_token **token) +{ + css_token *t = &lexer->token; + uintptr_t cptr = PARSERUTILS_INPUTSTREAM_OOD; /* GCC: shush */ + uint8_t c = 0; /* GCC: shush */ + size_t clen; + enum { Initial = 0, MoreDigits = 1 }; + + /* UNICODE-RANGE = [Uu] '+' [0-9a-fA-F?]{1,6}(-[0-9a-fA-F]{1,6})? + * + * "U+" has been consumed. + */ + + switch (lexer->substate) { + case Initial: + /* Attempt to consume 6 hex digits (or question marks) */ + for (; lexer->context.hexCount < 6; lexer->context.hexCount++) { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + if (lexer->context.hexCount == 0) { + /* Remove '+' */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + /* u == IDENT */ + return emitToken(lexer, + CSS_TOKEN_IDENT, token); + } else { + return emitToken(lexer, + CSS_TOKEN_UNICODE_RANGE, token); + } + } + + c = *((uint8_t *) cptr); + + if (isHex(c) || c == '?') { + APPEND(lexer, cptr, clen); + } else { + break; + } + } + + if (lexer->context.hexCount == 0) { + /* We didn't consume any valid Unicode Range digits */ + /* Remove the '+' */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + /* 'u' == IDENT */ + return emitToken(lexer, CSS_TOKEN_IDENT, token); + } + + if (lexer->context.hexCount == 6) { + /* Consumed 6 valid characters. Look for '-' */ + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return emitToken(lexer, + CSS_TOKEN_UNICODE_RANGE, token); + + c = *((uint8_t *) cptr); + } + + /* If we've got a '-', then we may have a + * second range component */ + if (c != '-') { + /* Reached the end of the range */ + return emitToken(lexer, CSS_TOKEN_UNICODE_RANGE, token); + } + + APPEND(lexer, cptr, clen); + + /* Reset count for next set of digits */ + lexer->context.hexCount = 0; + + /* Fall through */ + case MoreDigits: + lexer->substate = MoreDigits; + + /* Consume up to 6 hex digits */ + for (; lexer->context.hexCount < 6; lexer->context.hexCount++) { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + if (lexer->context.hexCount == 0) { + /* Remove '-' */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + } + + return emitToken(lexer, + CSS_TOKEN_UNICODE_RANGE, token); + } + + c = *((uint8_t *) cptr); + + if (isHex(c)) { + APPEND(lexer, cptr, clen); + } else { + break; + } + } + + if (lexer->context.hexCount == 0) { + /* No hex digits consumed. Remove '-' */ + lexer->bytesReadForToken -= 1; + t->data.len -= 1; + } + } + + return emitToken(lexer, CSS_TOKEN_UNICODE_RANGE, token); +} + +/****************************************************************************** + * Input consumers * + ******************************************************************************/ + +css_error consumeDigits(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + + /* digit = [0-9] */ + + /* Consume all digits */ + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + c = *((uint8_t *) cptr); + + if (isDigit(c)) { + APPEND(lexer, cptr, clen); + } + } while (isDigit(c)); + + return CSS_OK; +} + +css_error consumeEscape(css_lexer *lexer, bool nl) +{ + uintptr_t cptr, sptr; + uint8_t c; + size_t clen, slen; + css_error error; + + /* escape = unicode | '\' [^\n\r\f0-9a-fA-F] + * + * The '\' has been consumed. + */ + + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_EOF; + + c = *((uint8_t *) cptr); + + if (!nl && (c == '\n' || c == '\r' || c == '\f')) { + /* These are not permitted */ + return CSS_INVALID; + } + + /* Create unescaped buffer, if it doesn't already exist */ + if (lexer->unescapedTokenData == NULL) { + lexer->unescapedTokenData = + parserutils_buffer_create(lexer->alloc, lexer->pw); + if (lexer->unescapedTokenData == NULL) + return CSS_NOMEM; + } + + /* If this is the first escaped character we've seen for this token, + * we must copy the characters we've read to the unescaped buffer */ + if (!lexer->escapeSeen) { + if (lexer->bytesReadForToken > 1) { + sptr = parserutils_inputstream_peek( + lexer->input, 0, &slen); + + assert(sptr != PARSERUTILS_INPUTSTREAM_EOF && + sptr != PARSERUTILS_INPUTSTREAM_OOD); + + /* -1 to skip '\\' */ + error = css_error_from_parserutils_error( + parserutils_buffer_append( + lexer->unescapedTokenData, + (const uint8_t *) sptr, + lexer->bytesReadForToken - 1)); + if (error != CSS_OK) + return error; + } + + lexer->token.data.len = lexer->bytesReadForToken - 1; + lexer->escapeSeen = true; + } + + if (isHex(c)) { + lexer->bytesReadForToken += clen; + + error = consumeUnicode(lexer, charToHex(c)); + if (error != CSS_OK) { + /* Rewind for next time */ + lexer->bytesReadForToken -= clen; + } + + return error; + } + + /* If we're handling escaped newlines, convert CR(LF)? to LF */ + if (nl && c == '\r') { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken + clen, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) { + c = '\n'; + APPEND(lexer, &c, 1); + + lexer->currentCol = 1; + lexer->currentLine++; + + return CSS_OK; + } + + c = *((uint8_t *) cptr); + + if (c == '\n') { + APPEND(lexer, &c, 1); + /* And skip the '\r' in the input */ + lexer->bytesReadForToken += clen; + + lexer->currentCol = 1; + lexer->currentLine++; + + return CSS_OK; + } + } else if (nl && (c == '\n' || c == '\f')) { + /* APPEND will increment this appropriately */ + lexer->currentCol = 0; + lexer->currentLine++; + } else if (c != '\n' && c != '\r' && c != '\f') { + lexer->currentCol++; + } + + /* Append the unescaped character */ + APPEND(lexer, cptr, clen); + + return CSS_OK; +} + +css_error consumeNMChars(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + + /* nmchar = [a-zA-Z] | '-' | '_' | nonascii | escape */ + + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + c = *((uint8_t *) cptr); + + if (startNMChar(c) && c != '\\') { + APPEND(lexer, cptr, clen); + } + + if (c == '\\') { + lexer->bytesReadForToken += clen; + + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + /* Rewind '\\', so we do the + * right thing next time */ + lexer->bytesReadForToken -= clen; + + /* Convert either EOF or INVALID into OK. + * This will cause the caller to believe that + * all NMChars in the sequence have been + * processed (and thus proceed to the next + * state). Eventually, the '\\' will be output + * as a CHAR. */ + if (error == CSS_EOF || error == CSS_INVALID) + return CSS_OK; + + return error; + } + } + } while (startNMChar(c)); + + return CSS_OK; +} + +css_error consumeString(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + uint8_t quote = lexer->context.first; + uint8_t permittedquote = (quote == '"') ? '\'' : '"'; + css_error error; + + /* string = '"' (stringchar | "'")* '"' | "'" (stringchar | '"')* "'" + * + * The open quote has been consumed. + */ + + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_EOF; + + c = *((uint8_t *) cptr); + + if (c == permittedquote) { + APPEND(lexer, cptr, clen); + } else if (startStringChar(c)) { + error = consumeStringChars(lexer); + if (error != CSS_OK) + return error; + } else if (c != quote) { + /* Invalid character in string -- skip */ + lexer->bytesReadForToken += clen; + } + } while(c != quote); + + /* Append closing quote to token data */ + APPEND(lexer, cptr, clen); + + return CSS_OK; +} + +css_error consumeStringChars(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + + /* stringchar = urlchar | ' ' | ')' | '\' nl */ + + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + c = *((uint8_t *) cptr); + + if (startStringChar(c) && c != '\\') { + APPEND(lexer, cptr, clen); + } + + if (c == '\\') { + lexer->bytesReadForToken += clen; + + error = consumeEscape(lexer, true); + if (error != CSS_OK) { + /* Rewind '\\', so we do the + * right thing next time. */ + lexer->bytesReadForToken -= clen; + + /* Convert EOF to OK. This causes the caller + * to believe that all StringChars have been + * processed. Eventually, the '\\' will be + * output as a CHAR. */ + if (error == CSS_EOF) + return CSS_OK; + + return error; + } + } + } while (startStringChar(c)); + + return CSS_OK; + +} + +css_error consumeUnicode(css_lexer *lexer, uint32_t ucs) +{ + uintptr_t cptr = PARSERUTILS_INPUTSTREAM_OOD; /* GCC: shush */ + uint8_t c = 0; + size_t clen; + uint8_t utf8[6]; + uint8_t *utf8ptr = utf8; + size_t utf8len = sizeof(utf8); + size_t bytesReadInit = lexer->bytesReadForToken; + int count; + parserutils_error error; + + /* unicode = '\' [0-9a-fA-F]{1,6} wc? + * + * The '\' and the first digit have been consumed. + */ + + /* Attempt to consume a further five hex digits */ + for (count = 0; count < 5; count++) { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) { + /* Rewind what we've read */ + lexer->bytesReadForToken = bytesReadInit; + return CSS_NEEDDATA; + } + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + break; + + c = *((uint8_t *) cptr); + + if (isHex(c)) { + lexer->bytesReadForToken += clen; + + ucs = (ucs << 4) | charToHex(c); + } else { + break; + } + } + + /* Convert our UCS4 character to UTF-8 */ + error = parserutils_charset_utf8_from_ucs4(ucs, &utf8ptr, &utf8len); + assert(error == PARSERUTILS_OK); + + /* Append it to the token data (unescaped buffer already set up) */ + /* We can't use the APPEND() macro here as we want to rewind correctly + * on error. Additionally, lexer->bytesReadForToken has already been + * advanced */ + error = appendToTokenData(lexer, (const uint8_t *) utf8, + sizeof(utf8) - utf8len); + if (error != CSS_OK) { + /* Rewind what we've read */ + lexer->bytesReadForToken = bytesReadInit; + return error; + } + + /* Finally, attempt to skip a whitespace character */ + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + if (isSpace(c)) { + lexer->bytesReadForToken += clen; + } + + /* +2 for '\' and first digit */ + lexer->currentCol += lexer->bytesReadForToken - bytesReadInit + 2; + + return CSS_OK; +} + +css_error consumeURLChars(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + css_error error; + + /* urlchar = [\t!#-&(*-~] | nonascii | escape */ + + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + c = *((uint8_t *) cptr); + + if (startURLChar(c) && c != '\\') { + APPEND(lexer, cptr, clen); + } + + if (c == '\\') { + lexer->bytesReadForToken += clen; + + error = consumeEscape(lexer, false); + if (error != CSS_OK) { + /* Rewind '\\', so we do the + * right thing next time */ + lexer->bytesReadForToken -= clen; + + /* Convert either EOF or INVALID into OK. + * This will cause the caller to believe that + * all URLChars in the sequence have been + * processed (and thus proceed to the next + * state). Eventually, the '\\' will be output + * as a CHAR. */ + if (error == CSS_EOF || error == CSS_INVALID) + return CSS_OK; + + return error; + } + } + } while (startURLChar(c)); + + return CSS_OK; +} + +css_error consumeWChars(css_lexer *lexer) +{ + uintptr_t cptr; + uint8_t c; + size_t clen; + + do { + cptr = parserutils_inputstream_peek(lexer->input, + lexer->bytesReadForToken, &clen); + if (cptr == PARSERUTILS_INPUTSTREAM_OOD) + return CSS_NEEDDATA; + + if (cptr == PARSERUTILS_INPUTSTREAM_EOF) + return CSS_OK; + + c = *((uint8_t *) cptr); + + if (isSpace(c)) { + APPEND(lexer, cptr, clen); + } + + if (c == '\n' || c == '\f') { + lexer->currentCol = 1; + lexer->currentLine++; + } + + if (lexer->context.lastWasCR && c != '\n') { + lexer->currentCol = 1; + lexer->currentLine++; + } + lexer->context.lastWasCR = (c == '\r'); + } while (isSpace(c)); + + if (lexer->context.lastWasCR) { + lexer->currentCol = 1; + lexer->currentLine++; + } + + return CSS_OK; +} + +/****************************************************************************** + * More utility routines * + ******************************************************************************/ + +uint32_t charToHex(uint8_t c) +{ + switch (c) { + case 'a': case 'A': + return 0xa; + case 'b': case 'B': + return 0xb; + case 'c': case 'C': + return 0xc; + case 'd': case 'D': + return 0xd; + case 'e': case 'E': + return 0xe; + case 'f': case 'F': + return 0xf; + case '0': + return 0x0; + case '1': + return 0x1; + case '2': + return 0x2; + case '3': + return 0x3; + case '4': + return 0x4; + case '5': + return 0x5; + case '6': + return 0x6; + case '7': + return 0x7; + case '8': + return 0x8; + case '9': + return 0x9; + } + + return 0; +} + +bool startNMChar(uint8_t c) +{ + return c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || + ('0' <= c && c <= '9') || c == '-' || c >= 0x80 || c == '\\'; +} + +bool startNMStart(uint8_t c) +{ + return c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || + c >= 0x80 || c == '\\'; +} + +bool startStringChar(uint8_t c) +{ + return startURLChar(c) || c == ' ' || c == ')'; +} + +bool startURLChar(uint8_t c) +{ + return c == '\t' || c == '!' || ('#' <= c && c <= '&') || c == '(' || + ('*' <= c && c <= '~') || c >= 0x80 || c == '\\'; +} + +bool isDigit(uint8_t c) +{ + return '0' <= c && c <= '9'; +} + +bool isHex(uint8_t c) +{ + return isDigit(c) || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F'); +} + +bool isSpace(uint8_t c) +{ + return c == ' ' || c == '\r' || c == '\n' || c == '\f' || c == '\t'; +} + diff --git a/src/lex/lex.h b/src/lex/lex.h new file mode 100644 index 0000000..150823e --- /dev/null +++ b/src/lex/lex.h @@ -0,0 +1,67 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_lex_lex_h_ +#define css_lex_lex_h_ + +#include <libcss/functypes.h> +#include <libcss/types.h> + +#include <parserutils/input/inputstream.h> + +typedef struct css_lexer css_lexer; + +/** + * Lexer option types + */ +typedef enum css_lexer_opttype { + CSS_LEXER_EMIT_COMMENTS, +} css_lexer_opttype; + +/** + * Lexer option parameters + */ +typedef union css_lexer_optparams { + bool emit_comments; +} css_lexer_optparams; + +/** + * Token type + */ +typedef enum css_token_type{ + CSS_TOKEN_IDENT, CSS_TOKEN_ATKEYWORD, CSS_TOKEN_STRING, + CSS_TOKEN_HASH, CSS_TOKEN_NUMBER, CSS_TOKEN_PERCENTAGE, + CSS_TOKEN_DIMENSION, CSS_TOKEN_URI, CSS_TOKEN_UNICODE_RANGE, + CSS_TOKEN_CDO, CSS_TOKEN_CDC, CSS_TOKEN_S, CSS_TOKEN_COMMENT, + CSS_TOKEN_FUNCTION, CSS_TOKEN_INCLUDES, CSS_TOKEN_DASHMATCH, + CSS_TOKEN_PREFIXMATCH, CSS_TOKEN_SUFFIXMATCH, CSS_TOKEN_SUBSTRINGMATCH, + CSS_TOKEN_CHAR, CSS_TOKEN_EOF +} css_token_type; + +/** + * Token object + */ +typedef struct css_token { + css_token_type type; + + css_string data; + + uint32_t col; + uint32_t line; +} css_token; + +css_lexer *css_lexer_create(parserutils_inputstream *input, + css_alloc alloc, void *pw); +void css_lexer_destroy(css_lexer *lexer); + +css_error css_lexer_setopt(css_lexer *lexer, css_lexer_opttype type, + css_lexer_optparams *params); + +css_error css_lexer_get_token(css_lexer *lexer, const css_token **token); + +#endif + diff --git a/src/libcss.c b/src/libcss.c new file mode 100644 index 0000000..b5b99c9 --- /dev/null +++ b/src/libcss.c @@ -0,0 +1,50 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#include <parserutils/parserutils.h> + +#include <libcss/libcss.h> + +#include "utils/parserutilserror.h" + +/** + * Initialise the CSS library for use. + * + * This _must_ be called before using any LibCSS functions + * + * \param aliases_file Pointer to name of file containing encoding alias data + * \param alloc Pointer to (de)allocation function + * \param pw Pointer to client-specific private data (may be NULL) + * \return CSS_OK on success, applicable error otherwise. + */ +css_error css_initialise(const char *aliases_file, + css_alloc alloc, void *pw) +{ + if (aliases_file == NULL || alloc == NULL) + return CSS_BADPARM; + + return css_error_from_parserutils_error( + parserutils_initialise(aliases_file, alloc, pw)); +} + +/** + * Clean up after LibCSS + * + * \param alloc Pointer to (de)allocation function + * \param pw Pointer to client-specific private data (may be NULL) + * \return CSS_OK on success, applicable error otherwise. + */ +css_error css_finalise(css_alloc alloc, void *pw) +{ + if (alloc == NULL) + return CSS_BADPARM; + + return css_error_from_parserutils_error( + parserutils_finalise(alloc, pw)); +} + + diff --git a/src/utils/Makefile b/src/utils/Makefile new file mode 100644 index 0000000..912590c --- /dev/null +++ b/src/utils/Makefile @@ -0,0 +1,46 @@ +# Child makefile fragment +# +# Toolchain is provided by top-level makefile +# +# Variables provided by top-level makefile +# +# COMPONENT The name of the component +# EXPORT The location of the export directory +# TOP The location of the source tree root +# RELEASEDIR The place to put release objects +# DEBUGDIR The place to put debug objects +# +# do_include Canned command sequence to include a child makefile +# +# Variables provided by parent makefile: +# +# DIR The name of the directory we're in, relative to $(TOP) +# +# Variables we can manipulate: +# +# ITEMS_CLEAN The list of items to remove for "make clean" +# ITEMS_DISTCLEAN The list of items to remove for "make distclean" +# TARGET_TESTS The list of target names to run for "make test" +# +# SOURCES The list of sources to build for $(COMPONENT) +# +# Plus anything from the toolchain + +# Push parent directory onto the directory stack +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(DIR) + +# Sources +SRCS_$(d) := errors.c + +# Append to sources for component +SOURCES += $(addprefix $(d), $(SRCS_$(d))) + +# Now include any children we may have +MAKE_INCLUDES := $(wildcard $(d)*/Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Finally, pop off the directory stack +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/utils/errors.c b/src/utils/errors.c new file mode 100644 index 0000000..ac7dd42 --- /dev/null +++ b/src/utils/errors.c @@ -0,0 +1,80 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#include <string.h> + +#include <libcss/errors.h> + +/** + * Convert a LibCSS error code to a string + * + * \param error The error code to convert + * \return Pointer to string representation of error, or NULL if unknown. + */ +const char *css_error_to_string(css_error error) +{ + const char *result = NULL; + + switch (error) { + case CSS_OK: + result = "No error"; + break; + case CSS_NOMEM: + result = "Insufficient memory"; + break; + case CSS_BADPARM: + result = "Bad parameter"; + break; + case CSS_INVALID: + result = "Invalid input"; + break; + case CSS_FILENOTFOUND: + result = "File not found"; + break; + case CSS_NEEDDATA: + result = "Insufficient data"; + break; + case CSS_BADCHARSET: + result = "BOM and @charset mismatch"; + break; + case CSS_EOF: + result = "EOF encountered"; + break; + } + + return result; +} + +/** + * Convert a string representation of an error name to a LibCSS error code + * + * \param str String containing error name + * \param len Length of string (bytes) + * \return LibCSS error code, or CSS_OK if unknown + */ +css_error css_error_from_string(const char *str, size_t len) +{ + if (strncmp(str, "CSS_OK", len) == 0) { + return CSS_OK; + } else if (strncmp(str, "CSS_NOMEM", len) == 0) { + return CSS_NOMEM; + } else if (strncmp(str, "CSS_BADPARM", len) == 0) { + return CSS_BADPARM; + } else if (strncmp(str, "CSS_INVALID", len) == 0) { + return CSS_INVALID; + } else if (strncmp(str, "CSS_FILENOTFOUND", len) == 0) { + return CSS_FILENOTFOUND; + } else if (strncmp(str, "CSS_NEEDDATA", len) == 0) { + return CSS_NEEDDATA; + } else if (strncmp(str, "CSS_BADCHARSET", len) == 0) { + return CSS_BADCHARSET; + } else if (strncmp(str, "CSS_EOF", len) == 0) { + return CSS_EOF; + } + + return CSS_OK; +} diff --git a/src/utils/parserutilserror.h b/src/utils/parserutilserror.h new file mode 100644 index 0000000..d2cffb6 --- /dev/null +++ b/src/utils/parserutilserror.h @@ -0,0 +1,29 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_utils_parserutilserror_h_ +#define css_utils_parserutilserror_h_ + +#include <parserutils/errors.h> + +#include <libcss/errors.h> + +/** + * Convert a ParserUtils error into a LibCSS error + * + * \param error The ParserUtils error to convert + * \return The corresponding LibCSS error + */ +static inline css_error css_error_from_parserutils_error( + parserutils_error error) +{ + /* Currently, there's a 1:1 mapping, so we've nothing to do */ + return (css_error) error; +} + +#endif + diff --git a/src/utils/utils.h b/src/utils/utils.h new file mode 100644 index 0000000..ac19e59 --- /dev/null +++ b/src/utils/utils.h @@ -0,0 +1,28 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org> + */ + +#ifndef css_utils_h_ +#define css_utils_h_ + +#ifndef max +#define max(a,b) ((a)>(b)?(a):(b)) +#endif + +#ifndef min +#define min(a,b) ((a)<(b)?(a):(b)) +#endif + +#ifndef SLEN +/* Calculate length of a string constant */ +#define SLEN(s) (sizeof((s)) - 1) /* -1 for '\0' */ +#endif + +#ifndef UNUSED +#define UNUSED(x) ((x)=(x)) +#endif + +#endif diff --git a/test/INDEX b/test/INDEX new file mode 100644 index 0000000..e1896ef --- /dev/null +++ b/test/INDEX @@ -0,0 +1,10 @@ +# Index of testcases +# +# Test Description DataDir + +libcss Library initialisation/finalisation +csdetect Character set detection csdetect +lex Lexing css + +# Regression tests + diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..e904397 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,79 @@ +# Child makefile fragment +# +# Toolchain is provided by top-level makefile +# +# Variables provided by top-level makefile +# +# COMPONENT The name of the component +# EXPORT The location of the export directory +# TOP The location of the source tree root +# RELEASEDIR The place to put release objects +# DEBUGDIR The place to put debug objects +# +# do_include Canned command sequence to include a child makefile +# +# Variables provided by parent makefile: +# +# DIR The name of the directory we're in, relative to $(TOP) +# +# Variables we can manipulate: +# +# ITEMS_CLEAN The list of items to remove for "make clean" +# ITEMS_DISTCLEAN The list of items to remove for "make distclean" +# TARGET_TESTS The list of target names to run for "make test" +# +# SOURCES The list of sources to build for $(COMPONENT) +# +# Plus anything from the toolchain + +# Push parent directory onto the directory stack +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(DIR) + +# Extend toolchain settings +CFLAGS := $(CFLAGS) -I$(TOP)/src/ -I$(d) + +# Tests +TESTS_$(d) := csdetect lex libcss +TESTS_$(d) := $(TESTS_$(d)) + +# Items for top-level makefile to use +ITEMS_CLEAN := $(ITEMS_CLEAN) \ + $(addprefix $(d), $(addsuffix $(EXEEXT), $(TESTS_$(d)))) \ + $(addprefix $(d), $(addsuffix .gcda, $(TESTS_$(d)))) \ + $(addprefix $(d), $(addsuffix .gcno, $(TESTS_$(d)))) +ITEMS_DISTCLEAN := $(ITEMS_DISTCLEAN) $(d)log + +# Targets for top-level makefile to run +TARGET_TESTS := $(TARGET_TESTS) test_$(d) + +# Now we get to hack around so that we know what directory we're in. +# $(d) no longer exists when running the commands for a target, so we can't +# simply use it verbatim. Assigning to a variable doesn't really help, as +# there's no guarantee that someone else hasn't overridden that variable. +# So, what we do is make the target depend on $(d), then pick it out of the +# dependency list when running commands. This isn't pretty, but is effective. +test_$(d): $(d) $(addprefix $(d), $(TESTS_$(d))) + @$(PERL) $(TOP)/$<testrunner.pl $(TOP)/$< $(EXEEXT) + +# Build rules for each test binary -- they all depend on the debug library +define compile_test +$(2): $$(TOP)/$$(COMPONENT)-debug.a $(1) + @$$(ECHO) $$(ECHOFLAGS) "==> $(1)" + @$$(CC) -c -g $$(DEBUGCFLAGS) -o $$@.o $(1) + @$$(LD) -g -o $$@ $$@.o -lcss-debug $$(LDFLAGS) + @$$(RM) $$(RMFLAGS) $$@.o + +endef + +$(eval $(foreach TEST,$(addprefix $(d), $(TESTS_$(d))), \ + $(call compile_test,$(addsuffix .c, $(TEST)),$(TEST)))) + +# Now include any children we may have +MAKE_INCLUDES := $(wildcard $(d)*/Makefile) +$(eval $(foreach INC, $(MAKE_INCLUDES), $(call do_include,$(INC)))) + +# Finally, pop off the directory stack +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/test/README b/test/README new file mode 100644 index 0000000..f408e72 --- /dev/null +++ b/test/README @@ -0,0 +1,84 @@ +LibCSS testcases +=============== + +Testcases for LibCSS are self-contained binaries which test various parts +of the CSS library. These may make use of external data files to drive +the testing. + +Testcase command lines +---------------------- + +Testcase command lines are in a unified format, thus: + + <aliases_file> [ <data_file> ] + +The aliases file parameter will always be specified (as it is required for +the library to work at all). + +The data file parameter is optional and may be provided on a test-by-test +basis. + +Testcase output +--------------- + +Testcases may output anything at all to stdout. The final line of the +output must begin with either PASS or FAIL (case sensitive), indicating +the success status of the test. + +Test Index +---------- + +In the test sources directory, is a file, named INDEX, which provides an +index of all available test binaries. Any new test applications should be +added to this index as they are created. + +The test index file format is as follows: + + file = *line + + line = ( entry / comment / blank ) LF + + entry = testname 1*HTAB description [ 1*HTAB datadir ] + comment = "#" *non-newline + blank = 0<OCTET> + + testname = 1*non-reserved + description = 1*non-reserved + datadir = 1*non-reserved + + non-newline = VCHAR / WSP + non-reserved = VCHAR / SP + +Each entry contains a mandatory binary name and description followed by +an optional data directory specifier. The data directory specifier is +used to state the name of the directory containing data files for the +test name. This directory will be searched for within the "data" +directory in the source tree. + +If a data directory is specified, the test binary will be invoked for +each data file listed within the data directory INDEX, passing the +filename as the second parameter (<data_file>, above). + +Data Index +---------- + +Each test data directory contains a file, named INDEX, which provides an +index of all available test data files. + +The data index file format is as follows: + + file = *line + + line = ( entry / comment / blank ) LF + + entry = dataname 1*HTAB description + comment = "#" *non-newline + blank = 0<OCTET> + + dataname = 1*non-reserved + description = 1*non-reserved + + non-newline = VCHAR / WSP + non-reserved = VCHAR / SP + +Each entry contains a mandatory data file name and description. diff --git a/test/csdetect.c b/test/csdetect.c new file mode 100644 index 0000000..c452b5b --- /dev/null +++ b/test/csdetect.c @@ -0,0 +1,133 @@ +#include <inttypes.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <parserutils/charset/mibenum.h> + +#include <libcss/libcss.h> + +#include "charset/detect.h" +#include "utils/utils.h" + +#include "testutils.h" + +typedef struct line_ctx { + size_t buflen; + size_t bufused; + uint8_t *buf; + char enc[64]; + bool indata; + bool inenc; +} line_ctx; + +static bool handle_line(const char *data, size_t datalen, void *pw); +static void run_test(const uint8_t *data, size_t len, char *expected); + +static void *myrealloc(void *ptr, size_t len, void *pw) +{ + UNUSED(pw); + + return realloc(ptr, len); +} + +int main(int argc, char **argv) +{ + line_ctx ctx; + + if (argc != 3) { + printf("Usage: %s <aliases_file> <filename>\n", argv[0]); + return 1; + } + + assert(css_initialise(argv[1], myrealloc, NULL) == CSS_OK); + + ctx.buflen = parse_filesize(argv[2]); + if (ctx.buflen == 0) + return 1; + + ctx.buf = malloc(ctx.buflen); + if (ctx.buf == NULL) { + printf("Failed allocating %u bytes\n", + (unsigned int) ctx.buflen); + return 1; + } + + ctx.buf[0] = '\0'; + ctx.enc[0] = '\0'; + ctx.bufused = 0; + ctx.indata = false; + ctx.inenc = false; + + assert(parse_testfile(argv[2], handle_line, &ctx) == true); + + /* and run final test */ + if (ctx.bufused > 0 && ctx.buf[ctx.bufused - 1] == '\n') + ctx.bufused -= 1; + + run_test(ctx.buf, ctx.bufused, ctx.enc); + + free(ctx.buf); + + assert(css_finalise(myrealloc, NULL) == CSS_OK); + + printf("PASS\n"); + + return 0; +} + +bool handle_line(const char *data, size_t datalen, void *pw) +{ + line_ctx *ctx = (line_ctx *) pw; + + if (data[0] == '#') { + if (ctx->inenc) { + /* This marks end of testcase, so run it */ + + if (ctx->buf[ctx->bufused - 1] == '\n') + ctx->bufused -= 1; + + run_test(ctx->buf, ctx->bufused, ctx->enc); + + ctx->buf[0] = '\0'; + ctx->enc[0] = '\0'; + ctx->bufused = 0; + } + + ctx->indata = (strncasecmp(data+1, "data", 4) == 0); + ctx->inenc = (strncasecmp(data+1, "encoding", 8) == 0); + } else { + if (ctx->indata) { + memcpy(ctx->buf + ctx->bufused, data, datalen); + ctx->bufused += datalen; + } + if (ctx->inenc) { + strcpy(ctx->enc, data); + if (ctx->enc[strlen(ctx->enc) - 1] == '\n') + ctx->enc[strlen(ctx->enc) - 1] = '\0'; + } + } + + return true; +} + +void run_test(const uint8_t *data, size_t len, char *expected) +{ + uint16_t mibenum = 0; + css_charset_source source = CSS_CHARSET_DEFAULT; + static int testnum; + + assert(css_charset_extract(data, len, &mibenum, &source) == CSS_OK); + + assert(mibenum != 0); + + printf("%d: Detected charset %s (%d) Source %d Expected %s (%d)\n", + ++testnum, parserutils_charset_mibenum_to_name(mibenum), + mibenum, source, expected, + parserutils_charset_mibenum_from_name( + expected, strlen(expected))); + + assert(mibenum == parserutils_charset_mibenum_from_name( + expected, strlen(expected))); +} diff --git a/test/data/Aliases b/test/data/Aliases new file mode 100644 index 0000000..db61ff1 --- /dev/null +++ b/test/data/Aliases @@ -0,0 +1,302 @@ +# > Unicode:Files.Aliases +# Mapping of character set encoding names to their canonical form +# +# Lines starting with a '#' are comments, blank lines are ignored. +# +# Based on http://www.iana.org/assignments/character-sets and +# http://www.iana.org/assignments/ianacharset-mib +# +# Canonical Form MIBenum Aliases... +# +US-ASCII 3 iso-ir-6 ANSI_X3.4-1986 ISO_646.irv:1991 ASCII ISO646-US ANSI_X3.4-1968 us IBM367 cp367 csASCII +ISO-10646-UTF-1 27 csISO10646UTF1 +ISO_646.basic:1983 28 ref csISO646basic1983 +INVARIANT 29 csINVARIANT +ISO_646.irv:1983 30 iso-ir-2 irv csISO2IntlRefVersion +BS_4730 20 iso-ir-4 ISO646-GB gb uk csISO4UnitedKingdom +NATS-SEFI 31 iso-ir-8-1 csNATSSEFI +NATS-SEFI-ADD 32 iso-ir-8-2 csNATSSEFIADD +NATS-DANO 33 iso-ir-9-1 csNATSDANO +NATS-DANO-ADD 34 iso-ir-9-2 csNATSDANOADD +SEN_850200_B 35 iso-ir-10 FI ISO646-FI ISO646-SE se csISO10Swedish +SEN_850200_C 21 iso-ir-11 ISO646-SE2 se2 csISO11SwedishForNames +KS_C_5601-1987 36 iso-ir-149 KS_C_5601-1989 KSC_5601 korean csKSC56011987 +ISO-2022-KR 37 csISO2022KR +EUC-KR 38 csEUCKR EUCKR +ISO-2022-JP 39 csISO2022JP +ISO-2022-JP-2 40 csISO2022JP2 +ISO-2022-CN 104 +ISO-2022-CN-EXT 105 +JIS_C6220-1969-jp 41 JIS_C6220-1969 iso-ir-13 katakana x0201-7 csISO13JISC6220jp +JIS_C6220-1969-ro 42 iso-ir-14 jp ISO646-JP csISO14JISC6220ro +IT 22 iso-ir-15 ISO646-IT csISO15Italian +PT 43 iso-ir-16 ISO646-PT csISO16Portuguese +ES 23 iso-ir-17 ISO646-ES csISO17Spanish +greek7-old 44 iso-ir-18 csISO18Greek7Old +latin-greek 45 iso-ir-19 csISO19LatinGreek +DIN_66003 24 iso-ir-21 de ISO646-DE csISO21German +NF_Z_62-010_(1973) 46 iso-ir-25 ISO646-FR1 csISO25French +Latin-greek-1 47 iso-ir-27 csISO27LatinGreek1 +ISO_5427 48 iso-ir-37 csISO5427Cyrillic +JIS_C6226-1978 49 iso-ir-42 csISO42JISC62261978 +BS_viewdata 50 iso-ir-47 csISO47BSViewdata +INIS 51 iso-ir-49 csISO49INIS +INIS-8 52 iso-ir-50 csISO50INIS8 +INIS-cyrillic 53 iso-ir-51 csISO51INISCyrillic +ISO_5427:1981 54 iso-ir-54 ISO5427Cyrillic1981 +ISO_5428:1980 55 iso-ir-55 csISO5428Greek +GB_1988-80 56 iso-ir-57 cn ISO646-CN csISO57GB1988 +GB_2312-80 57 iso-ir-58 chinese csISO58GB231280 +NS_4551-1 25 iso-ir-60 ISO646-NO no csISO60DanishNorwegian csISO60Norwegian1 +NS_4551-2 58 ISO646-NO2 iso-ir-61 no2 csISO61Norwegian2 +NF_Z_62-010 26 iso-ir-69 ISO646-FR fr csISO69French +videotex-suppl 59 iso-ir-70 csISO70VideotexSupp1 +PT2 60 iso-ir-84 ISO646-PT2 csISO84Portuguese2 +ES2 61 iso-ir-85 ISO646-ES2 csISO85Spanish2 +MSZ_7795.3 62 iso-ir-86 ISO646-HU hu csISO86Hungarian +JIS_C6226-1983 63 iso-ir-87 x0208 JIS_X0208-1983 csISO87JISX0208 +greek7 64 iso-ir-88 csISO88Greek7 +ASMO_449 65 ISO_9036 arabic7 iso-ir-89 csISO89ASMO449 +iso-ir-90 66 csISO90 +JIS_C6229-1984-a 67 iso-ir-91 jp-ocr-a csISO91JISC62291984a +JIS_C6229-1984-b 68 iso-ir-92 ISO646-JP-OCR-B jp-ocr-b csISO92JISC62991984b +JIS_C6229-1984-b-add 69 iso-ir-93 jp-ocr-b-add csISO93JIS62291984badd +JIS_C6229-1984-hand 70 iso-ir-94 jp-ocr-hand csISO94JIS62291984hand +JIS_C6229-1984-hand-add 71 iso-ir-95 jp-ocr-hand-add csISO95JIS62291984handadd +JIS_C6229-1984-kana 72 iso-ir-96 csISO96JISC62291984kana +ISO_2033-1983 73 iso-ir-98 e13b csISO2033 +ANSI_X3.110-1983 74 iso-ir-99 CSA_T500-1983 NAPLPS csISO99NAPLPS +ISO-8859-1 4 iso-ir-100 ISO_8859-1 ISO_8859-1:1987 latin1 l1 IBM819 CP819 csISOLatin1 8859_1 ISO8859-1 +ISO-8859-2 5 iso-ir-101 ISO_8859-2 ISO_8859-2:1987 latin2 l2 csISOLatin2 8859_2 ISO8859-2 +T.61-7bit 75 iso-ir-102 csISO102T617bit +T.61-8bit 76 T.61 iso-ir-103 csISO103T618bit +ISO-8859-3 6 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 latin3 l3 csISOLatin3 8859_3 ISO8859-3 +ISO-8859-4 7 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 latin4 l4 csISOLatin4 8859_4 ISO8859-4 +ECMA-cyrillic 77 iso-ir-111 KOI8-E csISO111ECMACyrillic +CSA_Z243.4-1985-1 78 iso-ir-121 ISO646-CA csa7-1 ca csISO121Canadian1 +CSA_Z243.4-1985-2 79 iso-ir-122 ISO646-CA2 csa7-2 csISO122Canadian2 +CSA_Z243.4-1985-gr 80 iso-ir-123 csISO123CSAZ24341985gr +ISO-8859-6 9 iso-ir-127 ISO_8859-6 ISO_8859-6:1987 ECMA-114 ASMO-708 arabic csISOLatinArabic +ISO-8859-6-E 81 csISO88596E ISO_8859-6-E +ISO-8859-6-I 82 csISO88596I ISO_8859-6-I +ISO-8859-7 10 iso-ir-126 ISO_8859-7 ISO_8859-7:1987 ELOT_928 ECMA-118 greek greek8 csISOLatinGreek 8859_7 ISO8859-7 +T.101-G2 83 iso-ir-128 csISO128T101G2 +ISO-8859-8 11 iso-ir-138 ISO_8859-8 ISO_8859-8:1988 hebrew csISOLatinHebrew 8859_8 ISO8859-8 +ISO-8859-8-E 84 csISO88598E ISO_8859-8-E +ISO-8859-8-I 85 csISO88598I ISO_8859-8-I +CSN_369103 86 iso-ir-139 csISO139CSN369103 +JUS_I.B1.002 87 iso-ir-141 ISO646-YU js yu csISO141JUSIB1002 +ISO_6937-2-add 14 iso-ir-142 csISOTextComm +IEC_P27-1 88 iso-ir-143 csISO143IECP271 +ISO-8859-5 8 iso-ir-144 ISO_8859-5 ISO_8859-5:1988 cyrillic csISOLatinCyrillic 8859_5 ISO8859-5 +JUS_I.B1.003-serb 89 iso-ir-146 serbian csISO146Serbian +JUS_I.B1.003-mac 90 macedonian iso-ir-147 csISO147Macedonian +ISO-8859-9 12 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 latin5 l5 csISOLatin5 8859_9 ISO8859-9 +greek-ccitt 91 iso-ir-150 csISO150 csISO150GreekCCITT +NC_NC00-10:81 92 cuba iso-ir-151 ISO646-CU csISO151Cuba +ISO_6937-2-25 93 iso-ir-152 csISO6937Add +GOST_19768-74 94 ST_SEV_358-88 iso-ir-153 csISO153GOST1976874 +ISO_8859-supp 95 iso-ir-154 latin1-2-5 csISO8859Supp +ISO_10367-box 96 iso-ir-155 csISO10367Box +ISO-8859-10 13 iso-ir-157 l6 ISO_8859-10:1992 csISOLatin6 latin6 8859_10 ISO8859-10 +latin-lap 97 lap iso-ir-158 csISO158Lap +JIS_X0212-1990 98 x0212 iso-ir-159 csISO159JISX02121990 +DS_2089 99 DS2089 ISO646-DK dk csISO646Danish +us-dk 100 csUSDK +dk-us 101 csDKUS +JIS_X0201 15 X0201 csHalfWidthKatakana +KSC5636 102 ISO646-KR csKSC5636 +ISO-10646-UCS-2 1000 csUnicode UCS-2 UCS2 +ISO-10646-UCS-4 1001 csUCS4 UCS-4 UCS4 +DEC-MCS 2008 dec csDECMCS +hp-roman8 2004 roman8 r8 csHPRoman8 +macintosh 2027 mac csMacintosh MACROMAN MAC-ROMAN X-MAC-ROMAN +IBM037 2028 cp037 ebcdic-cp-us ebcdic-cp-ca ebcdic-cp-wt ebcdic-cp-nl csIBM037 +IBM038 2029 EBCDIC-INT cp038 csIBM038 +IBM273 2030 CP273 csIBM273 +IBM274 2031 EBCDIC-BE CP274 csIBM274 +IBM275 2032 EBCDIC-BR cp275 csIBM275 +IBM277 2033 EBCDIC-CP-DK EBCDIC-CP-NO csIBM277 +IBM278 2034 CP278 ebcdic-cp-fi ebcdic-cp-se csIBM278 +IBM280 2035 CP280 ebcdic-cp-it csIBM280 +IBM281 2036 EBCDIC-JP-E cp281 csIBM281 +IBM284 2037 CP284 ebcdic-cp-es csIBM284 +IBM285 2038 CP285 ebcdic-cp-gb csIBM285 +IBM290 2039 cp290 EBCDIC-JP-kana csIBM290 +IBM297 2040 cp297 ebcdic-cp-fr csIBM297 +IBM420 2041 cp420 ebcdic-cp-ar1 csIBM420 +IBM423 2042 cp423 ebcdic-cp-gr csIBM423 +IBM424 2043 cp424 ebcdic-cp-he csIBM424 +IBM437 2011 cp437 437 csPC8CodePage437 +IBM500 2044 CP500 ebcdic-cp-be ebcdic-cp-ch csIBM500 +IBM775 2087 cp775 csPC775Baltic +IBM850 2009 cp850 850 csPC850Multilingual +IBM851 2045 cp851 851 csIBM851 +IBM852 2010 cp852 852 csPCp852 +IBM855 2046 cp855 855 csIBM855 +IBM857 2047 cp857 857 csIBM857 +IBM860 2048 cp860 860 csIBM860 +IBM861 2049 cp861 861 cp-is csIBM861 +IBM862 2013 cp862 862 csPC862LatinHebrew +IBM863 2050 cp863 863 csIBM863 +IBM864 2051 cp864 csIBM864 +IBM865 2052 cp865 865 csIBM865 +IBM866 2086 cp866 866 csIBM866 +IBM868 2053 CP868 cp-ar csIBM868 +IBM869 2054 cp869 869 cp-gr csIBM869 +IBM870 2055 CP870 ebcdic-cp-roece ebcdic-cp-yu csIBM870 +IBM871 2056 CP871 ebcdic-cp-is csIBM871 +IBM880 2057 cp880 EBCDIC-Cyrillic csIBM880 +IBM891 2058 cp891 csIBM891 +IBM903 2059 cp903 csIBM903 +IBM904 2060 cp904 904 csIBBM904 +IBM905 2061 CP905 ebcdic-cp-tr csIBM905 +IBM918 2062 CP918 ebcdic-cp-ar2 csIBM918 +IBM1026 2063 CP1026 csIBM1026 +EBCDIC-AT-DE 2064 csIBMEBCDICATDE +EBCDIC-AT-DE-A 2065 csEBCDICATDEA +EBCDIC-CA-FR 2066 csEBCDICCAFR +EBCDIC-DK-NO 2067 csEBCDICDKNO +EBCDIC-DK-NO-A 2068 csEBCDICDKNOA +EBCDIC-FI-SE 2069 csEBCDICFISE +EBCDIC-FI-SE-A 2070 csEBCDICFISEA +EBCDIC-FR 2071 csEBCDICFR +EBCDIC-IT 2072 csEBCDICIT +EBCDIC-PT 2073 csEBCDICPT +EBCDIC-ES 2074 csEBCDICES +EBCDIC-ES-A 2075 csEBCDICESA +EBCDIC-ES-S 2076 csEBCDICESS +EBCDIC-UK 2077 csEBCDICUK +EBCDIC-US 2078 csEBCDICUS +UNKNOWN-8BIT 2079 csUnknown8BiT +MNEMONIC 2080 csMnemonic +MNEM 2081 csMnem +VISCII 2082 csVISCII +VIQR 2083 csVIQR +KOI8-R 2084 csKOI8R +KOI8-U 2088 +IBM00858 2089 CCSID00858 CP00858 PC-Multilingual-850+euro +IBM00924 2090 CCSID00924 CP00924 ebcdic-Latin9--euro +IBM01140 2091 CCSID01140 CP01140 ebcdic-us-37+euro +IBM01141 2092 CCSID01141 CP01141 ebcdic-de-273+euro +IBM01142 2093 CCSID01142 CP01142 ebcdic-dk-277+euro ebcdic-no-277+euro +IBM01143 2094 CCSID01143 CP01143 ebcdic-fi-278+euro ebcdic-se-278+euro +IBM01144 2095 CCSID01144 CP01144 ebcdic-it-280+euro +IBM01145 2096 CCSID01145 CP01145 ebcdic-es-284+euro +IBM01146 2097 CCSID01146 CP01146 ebcdic-gb-285+euro +IBM01147 2098 CCSID01147 CP01147 ebcdic-fr-297+euro +IBM01148 2099 CCSID01148 CP01148 ebcdic-international-500+euro +IBM01149 2100 CCSID01149 CP01149 ebcdic-is-871+euro +Big5-HKSCS 2101 +IBM1047 2102 IBM-1047 +PTCP154 2103 csPTCP154 PT154 CP154 Cyrillic-Asian +Amiga-1251 2104 Ami1251 Amiga1251 Ami-1251 +KOI7-switched 2105 +UNICODE-1-1 1010 csUnicode11 +SCSU 1011 +UTF-7 1012 +UTF-16BE 1013 +UTF-16LE 1014 +UTF-16 1015 +CESU-8 1016 csCESU-8 +UTF-32 1017 +UTF-32BE 1018 +UTF-32LE 1019 +BOCU-1 1020 csBOCU-1 +UNICODE-1-1-UTF-7 103 csUnicode11UTF7 +UTF-8 106 UNICODE-1-1-UTF-8 UNICODE-2-0-UTF-8 utf8 +ISO-8859-13 109 8859_13 ISO8859-13 +ISO-8859-14 110 iso-ir-199 ISO_8859-14:1998 ISO_8859-14 latin8 iso-celtic l8 8859_14 ISO8859-14 +ISO-8859-15 111 ISO_8859-15 Latin-9 8859_15 ISO8859-15 +ISO-8859-16 112 iso-ir-226 ISO_8859-16:2001 ISO_8859-16 latin10 l10 +GBK 113 CP936 MS936 windows-936 +GB18030 114 +OSD_EBCDIC_DF04_15 115 +OSD_EBCDIC_DF03_IRV 116 +OSD_EBCDIC_DF04_1 117 +JIS_Encoding 16 csJISEncoding +Shift_JIS 17 MS_Kanji csShiftJIS X-SJIS Shift-JIS +EUC-JP 18 csEUCPkdFmtJapanese Extended_UNIX_Code_Packed_Format_for_Japanese EUCJP +Extended_UNIX_Code_Fixed_Width_for_Japanese 19 csEUCFixWidJapanese +ISO-10646-UCS-Basic 1002 csUnicodeASCII +ISO-10646-Unicode-Latin1 1003 csUnicodeLatin1 ISO-10646 +ISO-Unicode-IBM-1261 1005 csUnicodeIBM1261 +ISO-Unicode-IBM-1268 1006 csUnicodeIBM1268 +ISO-Unicode-IBM-1276 1007 csUnicodeIBM1276 +ISO-Unicode-IBM-1264 1008 csUnicodeIBM1264 +ISO-Unicode-IBM-1265 1009 csUnicodeIBM1265 +ISO-8859-1-Windows-3.0-Latin-1 2000 csWindows30Latin1 +ISO-8859-1-Windows-3.1-Latin-1 2001 csWindows31Latin1 +ISO-8859-2-Windows-Latin-2 2002 csWindows31Latin2 +ISO-8859-9-Windows-Latin-5 2003 csWindows31Latin5 +Adobe-Standard-Encoding 2005 csAdobeStandardEncoding +Ventura-US 2006 csVenturaUS +Ventura-International 2007 csVenturaInternational +PC8-Danish-Norwegian 2012 csPC8DanishNorwegian +PC8-Turkish 2014 csPC8Turkish +IBM-Symbols 2015 csIBMSymbols +IBM-Thai 2016 csIBMThai +HP-Legal 2017 csHPLegal +HP-Pi-font 2018 csHPPiFont +HP-Math8 2019 csHPMath8 +Adobe-Symbol-Encoding 2020 csHPPSMath +HP-DeskTop 2021 csHPDesktop +Ventura-Math 2022 csVenturaMath +Microsoft-Publishing 2023 csMicrosoftPublishing +Windows-31J 2024 csWindows31J +GB2312 2025 csGB2312 EUC-CN EUCCN CN-GB +Big5 2026 csBig5 BIG-FIVE BIG-5 CN-BIG5 BIG_FIVE +windows-1250 2250 CP1250 MS-EE +windows-1251 2251 CP1251 MS-CYRL +windows-1252 2252 CP1252 MS-ANSI +windows-1253 2253 CP1253 MS-GREEK +windows-1254 2254 CP1254 MS-TURK +windows-1255 2255 +windows-1256 2256 CP1256 MS-ARAB +windows-1257 2257 CP1257 WINBALTRIM +windows-1258 2258 +TIS-620 2259 +HZ-GB-2312 2085 + +# Additional encodings not defined by IANA + +# Arbitrary allocations +#CP737 3001 +#CP853 3002 +#CP856 3003 +CP874 3004 WINDOWS-874 +#CP922 3005 +#CP1046 3006 +#CP1124 3007 +#CP1125 3008 WINDOWS-1125 +#CP1129 3009 +#CP1133 3010 IBM-CP1133 +#CP1161 3011 IBM-1161 IBM1161 CSIBM1161 +#CP1162 3012 IBM-1162 IBM1162 CSIBM1162 +#CP1163 3013 IBM-1163 IBM1163 CSIBM1163 +#GEORGIAN-ACADEMY 3014 +#GEORGIAN-PS 3015 +#KOI8-RU 3016 +#KOI8-T 3017 +#MACARABIC 3018 X-MAC-ARABIC MAC-ARABIC +#MACCROATIAN 3019 X-MAC-CROATIAN MAC-CROATIAN +#MACGREEK 3020 X-MAC-GREEK MAC-GREEK +#MACHEBREW 3021 X-MAC-HEBREW MAC-HEBREW +#MACICELAND 3022 X-MAC-ICELAND MAC-ICELAND +#MACROMANIA 3023 X-MAC-ROMANIA MAC-ROMANIA +#MACTHAI 3024 X-MAC-THAI MAC-THAI +#MACTURKISH 3025 X-MAC-TURKISH MAC-TURKISH +#MULELAO-1 3026 + +# From Unicode Lib +ISO-IR-182 4000 +ISO-IR-197 4002 +ISO-2022-JP-1 4008 +MACCYRILLIC 4009 X-MAC-CYRILLIC MAC-CYRILLIC +MACUKRAINE 4010 X-MAC-UKRAINIAN MAC-UKRAINIAN +MACCENTRALEUROPE 4011 X-MAC-CENTRALEURROMAN MAC-CENTRALEURROMAN +JOHAB 4012 +ISO-8859-11 4014 iso-ir-166 ISO_8859-11 ISO8859-11 8859_11 +X-CURRENT 4999 X-SYSTEM +X-ACORN-LATIN1 5001 +X-ACORN-FUZZY 5002 diff --git a/test/data/csdetect/INDEX b/test/data/csdetect/INDEX new file mode 100644 index 0000000..fba6328 --- /dev/null +++ b/test/data/csdetect/INDEX @@ -0,0 +1,6 @@ +# Index file for charset detection tests +# +# Test Description + +bom.dat UTF Byte Order Mark detection tests +bom-charset.dat BOM + @charset tests diff --git a/test/data/csdetect/bom-charset.dat b/test/data/csdetect/bom-charset.dat new file mode 100644 index 0000000..b6eb9f7 --- /dev/null +++ b/test/data/csdetect/bom-charset.dat @@ -0,0 +1,21 @@ +#data +@charset "UTF-8";html{color:green} +/* starts with utf-8 bom */ +#encoding +utf-8 + +#data +@charset "ISO-8859-1";html{color:green} +/* starts with utf-8 bom, so @charset is ignored */ +#encoding +utf-8 + +#data +@charset "ISO-8859-2";html{color:green} +#encoding +iso-8859-2 + +#data +@charset "IMadeThisUp";html{color:green} +#encoding +utf-8 diff --git a/test/data/csdetect/bom.dat b/test/data/csdetect/bom.dat Binary files differnew file mode 100644 index 0000000..f8c3070 --- /dev/null +++ b/test/data/csdetect/bom.dat diff --git a/test/data/css/INDEX b/test/data/css/INDEX new file mode 100644 index 0000000..531d4a5 --- /dev/null +++ b/test/data/css/INDEX @@ -0,0 +1,6 @@ +# Index file for generic CSS content +# +# Test Description + +simple.css Reasonably simple CSS file (semantically invalid) +allzengarden.css All CSS Zen Garden stylesheets concatenated diff --git a/test/data/css/allzengarden.css b/test/data/css/allzengarden.css new file mode 100644 index 0000000..37a8d5a --- /dev/null +++ b/test/data/css/allzengarden.css @@ -0,0 +1,52816 @@ +/* css Zen Garden default style - 'Tranquille' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Creative Commons License - http://creativecommons.org/licenses/by-nc-sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: May 7th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the
+ designer's written permission. However, feel free to study the CSS and use
+ techniques you learn from it elsewhere. */
+
+
+/* The Zen Garden default was the first I put together, and almost didn't make the cut. I briefly flirted with using
+ 'Salmon Cream Cheese' as the main style for the Garden, but switched back to this one before launch.
+
+ All graphics in this design were illustrated by me in Photoshop. Google Image Search provided inspiration for
+ some of the elements. I did a bit of research on Kanji to come up with the characters on the top left. Anyone who
+ can read that will most likely tell you it makes no sense, but the best I could do was putting together the
+ characters for 'beginning' 'complete' and 'skill' to roughly say something like 'we're breaking fresh ground.'
+
+ It's a stretch. */
+
+
+/* basic elements */
+html {
+ margin: 0;
+ padding: 0;
+ }
+body {
+ font: 75% georgia, sans-serif;
+ line-height: 1.88889;
+ color: #555753;
+ background: #fff url(/001/blossoms.jpg) no-repeat bottom right;
+ margin: 0;
+ padding: 0;
+ }
+p {
+ margin-top: 0;
+ text-align: justify;
+ }
+h3 {
+ font: italic normal 1.4em georgia, sans-serif;
+ letter-spacing: 1px;
+ margin-bottom: 0;
+ color: #7D775C;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #B7A5DF;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #D4CDDC;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ color: #9685BA;
+ }
+acronym {
+ border-bottom: none;
+ }
+
+
+/* specific divs */
+#container {
+ background: url(/001/zen-bg.jpg) no-repeat top left;
+ padding: 0 175px 0 110px;
+ margin: 0;
+ position: relative;
+ }
+
+#intro {
+ min-width: 470px;
+ width: 100%;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: transparent url(/001/h1.gif) no-repeat top left;
+ margin-top: 10px;
+ display: block;
+ width: 219px;
+ height: 87px;
+ float: left;
+ }
+#pageHeader h1 span {
+ display:none
+ }
+#pageHeader h2 {
+ background: transparent url(/001/h2.gif) no-repeat top left;
+ margin-top: 58px;
+ margin-bottom: 40px;
+ width: 200px;
+ height: 18px;
+ float: right;
+ }
+#pageHeader h2 span {
+ display:none
+ }
+#pageHeader {
+ padding-top: 20px;
+ height: 87px;
+}
+
+#quickSummary {
+ clear: both;
+ margin: 20px 20px 20px 10px;
+ width: 160px;
+ float: left;
+ }
+#quickSummary p {
+ font: italic 1.1em/2.2 georgia;
+ text-align: center;
+ }
+
+#preamble {
+ clear: right;
+ padding: 0px 10px 0 10px;
+ }
+#supportingText {
+ padding-left: 10px;
+ margin-bottom: 40px;
+ }
+
+#footer {
+ text-align: center;
+ }
+#footer a:link, #footer a:visited {
+ margin-right: 20px;
+ }
+
+#linkList {
+ margin-left: 600px;
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+#linkList2 {
+ font: 10px verdana, sans-serif;
+ background: transparent url(/001/paper-bg.jpg) top left repeat-y;
+ padding: 10px;
+ margin-top: 150px;
+ width: 130px;
+ }
+#linkList h3.select {
+ background: transparent url(/001/h3.gif) no-repeat top left;
+ margin: 10px 0 5px 0;
+ width: 97px;
+ height: 16px;
+ }
+#linkList h3.select span {
+ display:none
+ }
+#linkList h3.favorites {
+ background: transparent url(/001/h4.gif) no-repeat top left;
+ margin: 25px 0 5px 0;
+ width: 60px;
+ height: 18px;
+ }
+#linkList h3.favorites span {
+ display:none
+ }
+#linkList h3.archives {
+ background: transparent url(/001/h5.gif) no-repeat top left;
+ margin: 25px 0 5px 0;
+ width:57px;
+ height: 14px;
+ }
+#linkList h3.archives span {
+ display:none
+ }
+#linkList h3.resources {
+ background: transparent url(/001/h6.gif) no-repeat top left;
+ margin: 25px 0 5px 0;
+ width:63px;
+ height: 10px;
+ }
+#linkList h3.resources span {
+ display:none
+ }
+
+
+#linkList ul {
+ margin: 0;
+ padding: 0;
+ }
+#linkList li {
+ line-height: 1.3em;
+ background: transparent url(/001/cr1.gif) no-repeat top center;
+ display: block;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ list-style-type: none;
+ }
+#linkList li a:link {
+ color: #988F5E;
+ }
+#linkList li a:visited {
+ color: #B3AE94;
+ }
+
+
+#extraDiv1 {
+ background: transparent url(/001/cr2.gif) top left no-repeat;
+ position: absolute;
+ top: 40px;
+ right: 0;
+ width: 148px;
+ height: 110px;
+ }
+.accesskey {
+ text-decoration: underline;
+ }/* css Zen Garden submission 002 - 'Salmon Cream Cheese' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: May 7th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* If you're familiar with the life cycle of salmon, you'll know that at the end of their lives they fight their way upstream to
+ the rivers where they were born, to spawn and then die. Growing up close to one of these so-called 'salmon runs', I
+ once had a class field trip to the river for the afternoon to learn about the process. The funny thing about a bunch of
+ dead salmon is that they stink. Quite bad. The second worst memory of that day was the smell of the fish.
+
+ The worst memory of the day was opening my lunch to find my considerate mother had packed bagels. With, as you
+ have guessed by now, salmon cream cheese. I rarely hear the word 'salmon' anymore without the 'cream cheese'
+ playing in my head as an afterthought. Hence, this style is Salmon Cream Cheese. */
+
+
+/* basic elements */
+body {
+ font: 11px/14px verdana, sans-serif;
+ color: #AD7C77;
+ background: #FFD7C4 url(/002/bg1.gif) top left repeat-x;
+ padding: 65px 0px 0px 224px;
+ margin: 0px;
+ }
+p {
+ font: 11px/14px verdana, sans-serif;
+ text-align: justify;
+ margin-top: 0px;
+ }
+h3 {
+ font: bold 16px 'arial narrow', sans-serif;
+ text-transform: lowercase;
+ margin-bottom: 0px;
+ }
+acronym {
+ border-bottom: dotted 1px #B27F66;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #E98376;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #AD7C77;
+ }
+a:active, a:hover {
+ text-decoration: underline;
+ }
+
+
+/* specific divs */
+
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 770px;
+ }
+#pageHeader h1 {
+ background: transparent url(/002/h1.gif) no-repeat top left;
+ width: 258px;
+ height: 61px;
+ float: left;
+ margin: 1px 0px 0px 3px;
+ }
+#pageHeader h1 span {
+ display: none;
+ }
+#pageHeader h2 {
+ background: transparent url(/002/h2.gif) no-repeat top left;
+ width: 206px;
+ height: 28px;
+ float: right;
+ margin: 22px 15px 0px 0px;
+ }
+#pageHeader h2 span {
+ display: none;
+ }
+
+/* sets up our floating area on the right. Kind of a hack, since there's a physical separation between
+ two divs, filled in by tricky margins and compensated for with tricky padding, but it seems to hold up okay. */
+#intro {
+ background: #FFC5A9 url(/002/bg2.gif) top left repeat-x;
+ }
+#preamble {
+ padding: 0px 40px 0px 40px;
+ }
+#preamble .p3 {
+ margin-bottom: 0px;
+ }
+#supportingText {
+ background-color: #FFC5A9;
+ margin: 0px;
+ padding: 0px 40px 0px 40px;
+ }
+#supportingText #explanation h3 {
+ margin-top: 0px;
+ padding-top: 20px;
+ }
+
+#quickSummary {
+ padding-top: 47px;
+ }
+
+#quickSummary .p1 {
+ width: 430px;
+ height: 195px;
+ background: transparent url(/002/splash.jpg) top left no-repeat;
+ padding: 182px 0px 0px 10px;
+ position: absolute;
+ top: 93px;
+ left: 244px;
+ }
+#quickSummary .p1 span {
+ display: none;
+ }
+#quickSummary .p2 {
+ font-size: 9px;
+ line-height: 22px;
+ text-align: left;
+ color: #B27F66;
+ background-color: #FFD7C4;
+ display: block;
+ border: solid 1px #FFBEA1;
+ padding: 40px 15px 0px 419px;
+ margin: 0px 10px 0px 40px;
+ height: 140px;
+ }
+#quickSummary .p2 a:link {
+ color: #B27F66;
+ }
+
+#footer {
+ text-align: right;
+ border-top: solid 1px #FFCDB5;
+ padding-top: 10px;
+ }
+#footer a:link, #footer a:visited {
+ padding: 2px 6px 2px 6px;
+ }
+#footer a:hover {
+ background-color: #FFD7BF;
+ text-decoration: none;
+ }
+
+
+#linkList {
+ background: transparent url(/002/cr1.gif) bottom right no-repeat;
+ padding-bottom: 76px;
+ position: absolute;
+ top: 65px;
+ left: 0px;
+ }
+#linkList2 {
+ padding: 40px 0px 10px 0px;
+ width: 200px;
+ }
+#linkList2 h3 span {
+ display: none;
+ }
+#linkList2 h3.select {
+ background: transparent url(/002/h3.gif) no-repeat top left;
+ width: 195px;
+ height: 21px;
+ }
+#linkList2 h3.favorites{
+ background: transparent url(/002/h4.gif) no-repeat top left;
+ width: 195px;
+ height: 21px;
+ }
+#linkList2 h3.archives{
+ background: transparent url(/002/h5.gif) no-repeat top left;
+ width: 195px;
+ height: 21px;
+ }
+#linkList2 h3.resources{
+ background: transparent url(/002/h6.gif) no-repeat top left;
+ width: 195px;
+ height: 21px;
+ }
+#linkList .iL, #linkList li {
+ font-size: 10px;
+ line-height: 2.5ex;
+ display: block;
+ padding: 2px 0px 0px 25px;
+ margin-bottom: 5px;
+ }
+#linkList #lresources li {
+ margin-bottom: 0px;
+ }
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#linkList li {
+ list-style-type: none;
+ }
+/* css Zen Garden submission 003 - 'Stormweather' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: May 7th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* Credit to Phillipe Wittenbergh at http://www.l-c-n.com/ for Mac testing */
+
+/* The photos in this design come from my digital library. All were taken in Vancouver, BC. The car is on the
+ Granville St. Bridge, the leaves are West 6th Ave, and the snow/tree is West 10th Ave. Guess which
+ part of town I live in...
+
+ I'm still rather fond of this design. I'm glad Phillipe was able to iron out the various CSS bugs */
+
+
+/* basic elements */
+body {
+ font: 11px/15px georgia, serif;
+ text-align: center;
+ color: #fff;
+ background: #748A9B url(bg2.gif) 0 0 repeat-y;
+ margin: 0px;
+ }
+p {
+ /*font: 11px/15px georgia, serif;*/
+ text-align: justify;
+ margin-top: 0;
+ }
+h3 {
+ font: bold 14px georgia, serif;
+ text-transform: lowercase;
+ margin-bottom: 0;
+ }
+acronym {
+ border-bottom: dotted 1px #fff;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #A7D3F6;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #D1E9FC;
+ }
+a:active, a:hover {
+ text-decoration: underline;
+ color: #fff;
+ }
+
+
+/* specific divs */
+
+#container {
+ background: #849AA9 url(bg1.gif) top left repeat-y;
+ text-align: left;
+ width: 750px; margin: 0px auto;
+ position: relative;
+ }
+#supportingText {
+ /*position: relative; top: -120px;*/
+ padding: 0px 40px 0px 0;
+ /*clear:right;*/
+ float:right;
+ width:430px;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: transparent url(h1.jpg) no-repeat top left;
+ width: 750px;
+ height: 152px;
+ margin: 0px;
+ }
+#pageHeader h1 span {
+ display: none;
+ }
+#pageHeader h2 span {
+ display: none;
+ }
+
+#quickSummary {
+ width: 685px;
+ margin: 0px auto;
+ position: relative;
+ top: -50px;
+ }
+html>body #quickSummary {
+ margin-top:-50px;
+ top: 0;
+ }
+#quickSummary .p1 {
+ font-size: 1px;
+ color: white;
+ background: transparent url(panel1-2.jpg) no-repeat top left;
+ width: 449px;
+ padding: 10px 0px 0px 5px; float: left;
+ height: 268px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 258px;
+ }
+#quickSummary .p1 span {
+ display: none;
+ }
+#quickSummary .p2 {
+ color: #7593A7;
+ background: transparent url(panel3.jpg) no-repeat 0 0;
+ padding: 90px 45px 0px 45px;
+ float: right;
+ width: 214px;
+ height: 338px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 124px;
+ height: 178px;
+ }
+#quickSummary .p2 span {
+ letter-spacing: -1px;
+ line-height: 26px;
+ display: block;
+ }
+#quickSummary .p2 a:link, #quickSummary .p2 a:visited {
+ color: #7593A7;
+ }
+#quickSummary .p2 a:hover {
+ color: #85ABC5;
+ }
+
+#preamble {
+ /*position: relative; top: -120px; */
+ padding: 0px 0px 70px 33px;
+ margin: 0px 0 20px 0px;
+ width: 210px;
+ float: left;
+ background: transparent url(tag.gif) 50% 100% no-repeat;
+ }
+#preamble h2 {
+ font: bold 14px georgia, serif;
+ margin-top: 0px;
+ padding: 0px;
+ }
+#preamble p {
+ font: italic 12px/20px georgia, serif;
+ }
+
+#footer {
+ text-align: right;
+ clear: both;
+ }
+#footer a {
+ font-weight: normal;
+ text-decoration: none;
+ margin-right: 10px;
+ border: solid 1px #859BAA;
+ padding: 6px;
+ }
+#footer a:hover {
+ color: #7E868D;
+ background-color: #fff;
+ border-right: solid 1px #6F818D;
+ border-bottom: solid 1px #6F818D;
+ }
+
+#lselect {
+ position: absolute;
+ top: 15px;
+ left: 0px;
+ padding-left: 350px;
+ margin: 0px auto;
+ width: 730px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 380px;
+ }
+#linkList h3 {
+ display: inline;
+ margin-right: 5px;
+ }
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li {
+ font-size: 10px;
+ margin-right: 5px;
+ list-style-type: none;
+ display: inline;
+ }
+#linkList li a {
+ font-weight: normal;
+ }
+
+#lselect h3 {
+ font: bold 11px georgia;
+ letter-spacing: -1px;
+ }
+#lselect li {
+ font: 11px/12px georgia;
+ letter-spacing: -1px;
+ color: #758C9B;
+ }
+#lselect li a:link, #lselect li a:visited {
+ font-weight: normal;
+ color: #fff;
+ text-decoration: none;
+ }
+#lselect li a:hover {
+ color: #D1E9FC;
+ text-decoration: underline;
+ }
+
+#lresources, #larchives, #lfavorites {
+ padding: 0px 40px 0px 266px;
+ clear: both;
+ /*position: relative; top: -20px;*/
+ }/* css Zen Garden submission 004 - 'arch4.20' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: May 7th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* The photo was taken inside the Vancouver Public Library. It has been mentioned the colours have a vaguely
+ MetaFilter-like feel. I suppose they do... Unintentional. */
+
+
+/* basic elements */
+body {
+ font: 11px tahoma, verdana, sans-serif;
+ color: #fff;
+ background: #005D87 url(bg1.gif) top left repeat-x;
+ margin: 0px;
+ }
+p {
+ font: 11px/14px verdana, sans-serif;
+ text-align: justify;
+ margin-top: 0px;
+ }
+h3 {
+ font: bold 13px verdana, sans-serif;
+ margin-bottom: 0px;
+ }
+acronym {
+ border-bottom: dotted 1px #fff;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #8AF44F;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #55AB26;
+ }
+a:active, a:hover {
+ color: #8AF44F;
+ text-decoration: underline;
+ }
+
+/* specific divs */
+#preamble {
+ padding: 0px 180px 0px 25px;
+ }
+#supportingText {
+ padding: 0px 180px 0px 25px;
+ }
+
+#pageHeader {
+ width: 100%;
+ height: 217px;
+ background: #fff url(cr1.jpg) top left no-repeat;
+ margin-top: 47px;
+ }
+#pageHeader h1 {
+ background: transparent url(h1.gif) no-repeat top left;
+ width: 296px;
+ height: 46px;
+ position: absolute;
+ top: 185px;
+ right: 10px;
+ }
+#pageHeader h1 span {
+ display: none;
+ }
+#pageHeader h2 {
+ background: transparent url(h2.gif) no-repeat top left;
+ width: 229px;
+ height: 16px;
+ position: absolute;
+ top: 230px;
+ right: 12px;
+ }
+#pageHeader h2 span {
+ display: none;
+ }
+
+#quickSummary .p1 {
+ font: 11px tahoma, verdana, sans-serif;
+ line-height: 18px;
+ color: #7799AC;
+ background-color: #fff;
+ padding: 2px;
+ position: absolute;
+ top: 65px;
+ right: 10px;
+ width: 150px;
+ }
+#quickSummary .p2 {
+ font: 10px tahoma, verdana, sans-serif;
+ color: #7799AC;
+ position: absolute;
+ top: 32px;
+ right: 5px;
+ }
+#quickSummary .p2 a:link, #quickSummary .p2 a:visited {
+ color: #7799AC;
+ text-decoration: underline;
+ }
+#quickSummary .p2 a:active, #quickSummary .p2 a:hover {
+ color: #8AF44F;
+ }
+
+#linkList{
+ font: 11px tahoma, verdana, sans-serif;
+ line-height: 18px;
+ color: #7799AC;
+ position: absolute;
+ top: 285px;
+ right: 0px;
+ width: 150px;
+ }
+#linkList2 h3 span {
+ display: none;
+ }
+#linkList2 h3.select {
+ background: transparent url(h3.gif) no-repeat top left;
+ width: 157px;
+ height: 14px;
+ }
+#linkList2 h3.favorites{
+ background: transparent url(h5.gif) no-repeat top left;
+ width: 157px;
+ height: 14px;
+ }
+#linkList2 h3.archives{
+ background: transparent url(h6.gif) no-repeat top left;
+ width: 157px;
+ height: 14px;
+ }
+#linkList2 h3.resources{
+ background: transparent url(h4.gif) no-repeat top left;
+ width: 157px;
+ height: 14px;
+ }
+#linkList li {
+ font-size: 10px;
+ line-height: 2.5ex;
+ display: block;
+ padding: 2px 10px 0px 0px;
+ margin-bottom: 5px;
+ }
+#linkList #lresources li {
+ margin-bottom: 0px;
+ }
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#linkList li {
+ list-style-type: none;
+ }
+
+
+#footer {
+ text-align: right; border-top: solid 1px #1E5E82;
+ padding-top: 10px;
+ }
+#footer a:link, #footer a:visited {
+ padding: 2px 6px 2px 6px;
+ }
+#footer a:hover {
+ background: transparent url(bg2.gif) top left repeat-x;
+ text-decoration: none;
+ }/* css Zen Garden submission 005 - 'Blood Lust' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: May 7th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* love it or hate it. This one is one of my favourites because I don't generally design this way. It reaches into the past
+ for a vaguely Futurist style, complete with duotone for that screenprint feel, combined with modern GIF
+ patterned-dithering to really mess with tradition.
+
+ You may find it challenging, silly, visually stimulating, or a mess. I didn't do it for you, I did it for me. */
+
+
+/* basic elements */
+body {
+ font: 12px/13px courier, monospace;
+ color: #000;
+ background-color: #fff;
+ margin: 0px;
+ }
+p {
+ font: 12px/13px courier, monospace;
+ text-align: justify;
+ }
+h3 {
+ font:bold 14px courier, monospace;
+ letter-spacing: 1px;
+ margin-bottom: 0px;
+ color: #000;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #FF4F3E;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #FF4F3E;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ color: #000;
+ }
+acronym {
+ border-bottom: none;
+ }
+
+
+/* specific divs */
+#container {
+ background: #fff url(bloodlust.gif) no-repeat top left;
+ margin: 50px 0px 0px 0px;
+ padding: 150px 0px 0px 200px;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: transparent url(h1.gif) no-repeat top left;
+ margin-top: 10px;
+ width: 461px;
+ height: 116px;
+ position: absolute;
+ top: 20px;
+ left: 305px;
+ }
+#pageHeader h1 span {
+ display: none;
+ }
+#pageHeader h2 {
+ background: transparent url(h2.gif) no-repeat top left;
+ width: 253px;
+ height: 34px;
+ position: absolute;
+ top: 150px;
+ left: 216px;
+ }
+#pageHeader h2 span {
+ display: none;
+ }
+
+
+#quickSummary .p1 {
+ font: 400 18px/16px 'arial black', sans-serif;
+ text-align: right;
+ width: 340px;
+ float: left;
+ margin: 40px 20px 20px 0px;
+ }
+#quickSummary .p2 {
+ font: 9px verdana, sans-serif;
+ text-align: left;
+ line-height: 24px;
+ width: 295px;
+ position: absolute;
+ top: 20px;
+ left: 25px;
+ }
+#preamble {
+ width: 170px;
+ float: right;
+ margin-top: 50px;
+ clear: left;
+ position: relative;
+ top: -270px;
+ }
+#preamble h3 {
+ font: bold 12pt/10pt 'trebuchet ms', sans-serif;
+ text-align: right;
+ }
+#preamble p {
+ font: bold 10pt/11pt arial, sans-serif;
+ text-align: right;
+ }
+#supportingText {
+ clear: left;
+ }
+#explanation h3 {
+ font: bold 18px courier, monospace;
+ }
+#explanation .p1 {
+ font: 18px courier, monospace;
+ line-height: 5ex;
+ }
+#explanation .p2 {
+ font: 11px/16px courier, monospace;
+ width: 220px;
+ float: left;
+ margin-right: 10px;
+ }
+#explanation .p3 {
+ font: 14px/14px courier, monospace;
+ margin-top: 30px;
+ }
+
+#participation h3 {
+ background: transparent url(h3.gif) no-repeat top left;
+ width: 174px;
+ height: 66px;
+ margin: 0px;
+ float: left;
+ }
+#participation h3 span {
+ display: none;
+ }
+#participation .p1:first-line {
+ font: 16px 'arial black', sans-serif;
+ }
+#participation .p2 {
+ line-height: 16px;
+ text-align: right;
+ float: left;
+ width: 200px;
+ margin: 0px 5px 15px 0px;
+ }
+#participation .p3 {
+ font-family: arial, sans-serif;
+ }
+
+#benefits h3 {
+ background: transparent url(h4.gif) no-repeat top left;
+ width: 107px;
+ height: 26px;
+ margin: 0px;
+ float: left;
+ }
+#benefits h3 span {
+ display: none;
+ }
+
+
+#requirements h3 {
+ font: bold 18px 'arial black', sans-serif;
+ clear: left;
+ float: right;
+ }
+#requirements .p1 {
+ font: bold 11px/16px trebuchet ms, sans-serif;
+ float: left;
+ width: 300px;
+ margin-right: 10px;
+ }
+#requirements .p3 {
+ font: 12px/11px arial, sans-serif;
+ }
+
+#linkList {
+ position: absolute;
+ top: 0px;
+ left: 20px;
+ }
+#linkList2 {
+ font: 12px courier, monospace;
+ padding: 10px;
+ margin-top: 115px;
+ width: 130px;
+ }
+
+#linkList li {
+ line-height: 2.5ex;
+ display: block;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ list-style-type: none;
+ }
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }/* css Zen Garden submission 006 - 'Wicked Grove' by D. Keith Robinson, http://www.7nights.com/asterisk/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, D. Keith Robinson */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body {
+ font: 10pt/14pt "Trebuchet MS", sans-serif;
+ color: #000033;
+ background: #69f;
+ margin: 0px;
+ }
+p {
+ font: 10pt/16pt "Trebuchet MS", sans-serif;
+ margin-top: 0px;
+ text-align: justify;
+ }
+h3 {
+ font: bold normal 12pt "Trebuchet MS", sans-serif;
+ letter-spacing: 3px;
+ margin-bottom: 2px;
+ color: #333333;
+ text-align: left;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #FF6600;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #CC0000;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ color: #FF6600;
+ }
+
+
+/* specific divs */
+#container {
+ background: #9cf url(trees.jpg) no-repeat left top;
+ padding: 200px 0px 0px 0px;
+ margin: 0px auto;
+ width:800px;
+ border-left: 2px dashed #fff;
+ border-right: 2px dashed #fff;
+ }
+
+#pageHeader {
+ margin-bottom: 10px;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+background: transparent;
+ margin-top: -180px;
+ width: 500px;
+ height: 87px;
+ float: left;
+ color:#fff;
+ }
+#pageHeader h1 span {
+ display:none;
+ }
+#pageHeader h2 {
+ background: transparent url(tag.gif) no-repeat top left;
+ width: 300px;
+ margin-top:-60px;
+ margin-left:-190px;
+ height: 100px;
+ float: right;
+ }
+#pageHeader h2 span {
+ display:none;
+ }
+
+#quickSummary {
+ width: 130px;
+ float: left;
+ padding:5px;
+ margin-right:15px;
+ background:#0099FF;
+
+ }
+#quickSummary p {
+ font: bold 8pt/12pt verdana, sans-serif;
+ text-align:right;
+ color:#fff;
+ }
+
+#quickSummary a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #003;
+ }
+#quickSummary a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #006;
+ }
+#quickSummary a:hover, #quickSummary a:active {
+ text-decoration: underline;
+ color: #FF6600;
+ }
+
+#preamble, #supporting text, #explanation, #participation, #benefits, #requirements {
+ padding: 0px 170px 0px 30px;
+}
+
+#footer {
+ text-align: center;
+ }
+#footer a:link, #footer a:visited {
+ margin-right: 20px;
+ }
+
+#linkList {
+ background: transparent url(menu.gif) top left no-repeat;
+ position: absolute;
+ top: 0px;
+ padding: 15px;
+ margin-top: 200px;
+ margin-left: 650px;
+ width: 130px;
+ }
+
+#linkList2 {
+ font: 10px verdana, sans-serif;
+ padding-top:35px;
+ }
+#linkList h3.select {
+ background: transparent url(select.gif) top left no-repeat;
+ width: 130px;
+ height: 25px;
+ margin-left:-8px;
+ }
+#linkList h3.select span {
+ display:none
+ }
+#linkList h3.favorites {
+ background: transparent url(favorites.gif) top left no-repeat;
+ width: 130px;
+ height: 25px;
+ margin-left:-8px;
+ }
+#linkList h3.favorites span {
+ display:none
+ }
+#linkList h3.archives {
+ background: transparent url(archives.gif) top left no-repeat;
+ width: 130px;
+ height: 25px;
+ margin-left:-8px;
+ }
+#linkList h3.archives span {
+ display:none
+ }
+#linkList h3.resources {
+ background: transparent url(resources.gif) top left no-repeat;
+ width: 130px;
+ height: 25px;
+ margin-left:-8px;
+ }
+#linkList h3.resources span {
+ display:none
+ }
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li {
+ line-height: 2.5ex;
+ background: transparent;
+ display: block;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ list-style-type: none;
+ }
+#linkList li a:link {
+ color: #FF3300;
+ }
+#linkList li a:visited {
+ color: #FF0000;
+ }
+
+#extraDiv1 {
+ background: transparent;
+ position: absolute;
+ top: 40px;
+ right: 0px;
+ width: 148px;
+ height: 110px;
+ }
+/* css Zen Garden submission 007 - 'deep thought' by Jason Estes, http://www.bewb.org/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jason Estes */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body#css-zen-garden {
+ background-color:#424242;
+ font-size:75%;
+ font-family:arial, verdana, sans-serif;
+ margin:0;
+ padding:0;
+ color:#fff;
+ background-image:url(background.jpg);
+ background-repeat:no-repeat;
+ background-position:150px 50px;
+ }
+
+a:link {
+ color:#FF9638;
+ background-color:transparent;
+ }
+a:visited {
+ color:#FF9638;
+ background-color:transparent;
+ }
+a:hover, a:active {
+ color:#FF9638;
+ background-color:transparent;
+ }
+/* specific divs */
+
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ margin:10px 15px;
+ background-image:url(logo.gif);
+ height:83px;
+ background-color:transparent;
+ width:480px;
+ background-repeat:no-repeat;
+ background-position:top right;
+ color:#000;
+ }
+#pageHeader h1 span {
+ display:none
+ }
+#pageHeader h2 {
+ display:none;
+ }
+#pageHeader h2 span {
+ display:none;
+ }
+#quickSummary {
+ display:block;
+ }
+#quickSummary .p1 {
+display:none;
+ }
+#quickSummary .p2 {
+ position:absolute;
+ top:0px;
+ left:300px;
+ padding:0;margin:0;
+ }
+#preamble {
+ border-top:1px solid #fff;
+ background-image:url(halfscreen-gray.gif);
+ width:250px;
+ margin-left:30px;
+ position:absolute;
+ top:18px;
+ right:10px;
+ }
+#preamble p{
+ margin:10px;
+ }
+#preamble h3{
+ font-style:oblique;
+ margin:10px;
+ }
+#supportingText {
+ margin:350px auto 0 auto;
+ width:90%;
+ }
+#supportingText div {
+ /*background-image:url(halfscreen-gray.gif);*/
+ border-top:1px solid #fff;
+ clear:both;
+ }
+
+#supportingText h3 span{
+ display:none;
+ }
+#supportingText p {
+ padding:5px 10px;
+ line-height:150%;
+ }
+#explanation h3{
+ Float:left;
+ background-image:url(about.gif);
+ width:46px;
+ height:234px;
+ padding:0;
+ margin:0 10px 0px 0px;
+ border-right:1px solid white;
+ }
+#explanation p{
+ margin:0px 0px 0px 43px;
+ }
+#supportingText div#explanation {
+ margin:20px 10px 0 200px;
+ background:url(about_background.gif) no-repeat 100% 100%;
+ min-height:234px;
+ height:234px;
+ clear:none;
+ }
+#supportingText #explanation[id] {
+ height:auto;
+ }
+#participation h3{
+ Float:right;
+ background-image:url(participation.gif);
+ width:46px;
+ height:234px;
+ padding:0;
+ margin:0 0px 0px 10px;
+ border-left:1px solid white;
+ }
+#supportingText #participation {
+ margin:20px 200px 0 10px;
+ min-height:234px;
+ height:234px;
+ background:url(participation_back.gif) no-repeat 0 100%;
+ }
+#participation p{
+ margin:0px 43px 0px 0px;
+ }
+#supportingText #participation[id] {
+ height:auto;
+ }
+#benefits h3{
+ Float:left;
+ background-image:url(benefits.gif);
+ width:46px;
+ height:133px;
+ padding:0;
+ margin:0 10px 0px 0px;
+ border-right:1px solid white;
+ }
+#benefits p{
+ margin:0px 0px 0px 43px;
+ }
+#supportingText #benefits {
+margin:20px 10px 0 200px;
+ min-height:133px;
+ height:133px;
+ background:url(benefits_back.gif) no-repeat 100% 100%;
+ }
+#supportingText #benefits[id] {
+ height:auto;
+ }
+#requirements h3{
+ Float:right;
+ background-image:url(Requirements.gif);
+ width:46px;
+ height:234px;
+ padding:0;
+ margin:0 0px 0px 10px;
+ border-left:1px solid white;
+ }
+#requirements p{
+ margin:0px 43px 0px 0px;
+ }
+#supportingText #requirements {
+ margin:20px 200px 30px 10px;
+ min-height:234px;
+ height:234px ;
+ background:url(requirements_back.gif) no-repeat 0 100%;
+ }
+#supportingText #requirements[id] {
+ height:auto;
+ }
+#supportingText #footer {
+ text-align:center;
+ padding-top:3px;
+ }
+#footer a:link, #footer a:visited {
+ font-weight:bold;
+ text-decoration:none;
+ }
+#linkList {
+ position:absolute;
+ top:98px;
+ left:30px;
+ width:198px;
+ }
+
+#linkList h3.select {
+ height:53px;
+ background-image:url(select.gif);
+ margin:0px;
+ padding:0px;
+ }
+#linkList h3.select span {
+ display:none
+ }
+#linkList h3.favorites {
+ height:53px;
+ background-image:url(favorites.gif);
+ margin:0px;
+ padding:0px;
+ }
+#linkList h3.favorites span {
+ display:none
+ }
+#linkList h3.archives {
+ height:53px;
+ background-image:url(archives.gif);
+ margin:0px;
+ padding:0px;
+ }
+#linkList h3.archives span {
+ display:none
+ }
+#linkList h3.resources {
+ height:53px;
+ background-image:url(resources.gif);
+ margin:0px;
+ padding:0px;
+ }
+#linkList h3.resources span {
+ display:none
+ }
+
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li {
+ display:block;
+ background-image:url(halfscreen-gray.gif);
+ padding:3px;
+ margin:1px 0;
+ list-style-type: none;
+ }
+#linkList li a:link, #linkList li a:visited {
+ color:#fff;
+ background-color:transparent;
+ }
+
+#extraDiv1 {
+ clear:both;
+ }
+acronym {
+ color:#FF9638;
+ background-color:transparent;
+ border:0;
+ cursor:help;
+ }/* css Zen Garden submission 008 - 'RPM' by Bruno Cunha, http://www.kaosboy.net/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* Main image from http://www.karborn.com/FinalV6Old/Series/RPM/RPMImages.htm */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body { + background-image:url(bg.jpg); + background-color:#fff; + font-family:arial, sans serif; + font-size:11px; + line-height:15px; + color:#fff; + margin:0px; + } + +#container { + margin-left:0px; + margin-top:0px; + padding:0px; + width:684px; + z-index:1; + } + +#intro { + width:275px; + position:absolute; + left:88px; + top:902px; + z-index:2; + } + +#supportingText { + width:450px; + position:absolute; + left:411px; + top:535px; + z-index:2; + } +#explanation, #participation, #requirements, #benefits, #footer, #quickSummary, #preamble, #lselect, #lfavorites, #lresources, #larchives { + padding:7px; + margin:5px; + border-left:1px solid #aaa; + border-top:1px solid #aaa; + border-right:1px solid #333; + border-bottom:1px solid #333; + background-image:url(transparent.gif); + } + +#linkList2 { + width:275px; + position:absolute; + left:88px; + top:1244px; + z-index:2; + } + +#extraDiv1 { + background-image:url(tunami2.jpg); + position:absolute; + left:0px; + top:0px; + width:684px; + height:1515px; + z-index:1; + } +#pageHeader { + display:none; + } +h3 { + font-family:arial, sans serif; + color:#fff; + font-size:11px; + font-weight:bold; + margin-top:3px; + margin-bottom:0px; + } +p { + margin:6px; + } + +a { + color:#e2e2e2; + text-decoration:underline; + } +a:link { + color:#e2e2e2; + text-decoration:underline; + } +a:hover { + color:#fff; + font-weight:bold; + text-decoration:underline; + } +a:visited { + color:#e2e2e2; + text-decoration:underline; + } + +
#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#linkList li {
+ list-style-type: none;
+ display: inline;
+ }
+/* css Zen Garden submission 009 - 'Dead or Alive' by Michael Pick, http://www.mikepick.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Michael Pick */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body {
+ color: #000;
+ background: #fff url(body-bg.png);
+ margin: 0px auto;
+ }
+
+p {
+ font: 12px/15px georgia, serif;
+ text-align: justify;
+ margin-top: 0;
+ }
+
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ }
+
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+ }
+
+a:hover, a:active {
+ text-decoration: underline;
+ }
+
+/* specific divs */
+
+#container {
+ background: url(frill-bg.png) repeat-x;
+ border-right: 1px solid #333;
+ width: 800px;
+ margin: 0px;
+ }
+
+#intro {
+ min-width: 470px;
+ }
+
+#pageHeader {
+ width: 280px;
+ float: left;
+ margin-top: 40px;
+ }
+
+ #pageHeader h1 {
+ background: transparent url(pageheader-bg.png) no-repeat;
+ margin-left: 40px;
+ width: 240px;
+ height: 220px;
+ }
+
+ #pageHeader h1 span {
+ display:none
+ }
+
+ #pageHeader h2 span {
+ display:none;
+ }
+
+#quickSummary {
+ clear:both;
+ width: 280px;
+ float: left;
+ margin-bottom: 20px;
+ }
+
+ #quickSummary p {
+ font-family: georgia, times, serif;
+ font-size: 10px;
+ text-transform: uppercase;
+ text-align:center;
+ padding-left: 60px;
+ padding-right: 20px;
+ }
+
+#preamble {
+ margin-left: 280px;
+ width: 460px;
+ padding-top: 90px;
+ }
+
+ #preamble h3 {
+ background: transparent url(preamble.png) no-repeat;
+ width: 460px;
+ height: 70px;
+ }
+
+ #preamble h3 span {
+ display: none;
+ }
+
+ #preamble a:link {
+ color: #600;
+ }
+
+ #preamble p {
+ line-height: 150%;
+ }
+
+#supportingText {
+ margin-left: 0px;
+ }
+
+ #supportingText a:link {
+ color: #600;
+ }
+
+#explanation {
+ margin-left: 280px;
+ width: 460px;
+ }
+
+ #explanation h3 {
+ background: transparent url(sowhat.png) no-repeat;
+ width: 460px;
+ height: 50px;
+ margin-bottom: 20px;
+ }
+
+ #explanation h3 span {
+ display: none;
+ }
+
+ #explanation p {
+ line-height: 150%;
+ }
+
+#participation {
+ width: 460px;
+ }
+
+ #participation h3 {
+ background: transparent url(participation.png) no-repeat;
+ width: 460px;
+ height: 50px;
+ margin-bottom: 20px;
+ }
+
+ #participation h3 span {
+ display: none;
+ }
+
+ #participation p {
+ line-height: 150%;
+ }
+
+#benefits {
+ width: 460px;
+ }
+
+ #benefits h3 {
+ background: transparent url(benefits.png) no-repeat;
+ width: 460px;
+ height: 50px;
+ margin-bottom: 20px;
+ }
+
+ #benefits h3 span {
+ display: none;
+ }
+
+ #benefits p {
+ line-height: 140%;
+ }
+
+#requirements {
+ width: 460px;
+ }
+
+ #requirements h3 {
+ background: transparent url(requirements.png) no-repeat;
+ width: 460px;
+ height: 50px;
+ margin-bottom: 20px;
+ }
+
+ #requirements h3 span {
+ display: none;
+ }
+
+ #requirements p {
+ line-height: 140%;
+ }
+
+#footer {
+ margin-top: 40px;
+ background: transparent url(footer.png) repeat-x;
+ height: 58px;
+ width: 800px;
+ text-align: center;
+ margin-left: -280px;
+ }
+
+#linkList {
+ position: absolute;
+ top: 28em;
+ left: 40px;
+ width: 240px;
+ }
+
+#linkList2 {
+ font: 10px georgia, times, serif;
+ text-transform: uppercase;
+ }
+
+ #linkList h3.select {
+ background: transparent url(select.png) no-repeat top left;
+ margin: 10px 0px 5px 0px;
+ width: 240px;
+ height: 50px;
+ margin-bottom: 10px;
+ }
+
+ #lselect {
+ padding-bottom: 20px;
+ }
+
+ #linkList h3.select span {
+ display:none
+ }
+
+ #linkList h3.favorites {
+ background: transparent url(favorites.png) no-repeat top left;
+ width: 240px;
+ height: 50px;
+ margin-bottom: 10px;
+ }
+
+ #linkList h3.favorites span {
+ display:none
+ }
+
+ #linkList h3.archives {
+ background: transparent url(archives.png) no-repeat top left;
+ width: 240px;
+ height: 50px;
+ margin-bottom: 10px;
+ }
+
+ #linkList h3.archives span {
+ display:none
+ }
+
+ #linkList h3.resources {
+ background: transparent url(resources.png) no-repeat top left;
+ width: 250px;
+ height: 50px;
+ margin-bottom: 10px;
+ }
+
+ #linkList h3.resources span {
+ display:none
+ }
+
+
+ #linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+ #linkList li {
+ line-height: 2.5ex;
+ display: block;
+ text-align: center;
+ padding-top: 5px;
+ padding-left: 20px;
+ padding-right: 20px;
+ margin-bottom: 5px;
+ list-style-type: none;
+ }
+
+ #linkList li a:link {
+ color: #000;
+ }
+
+ #linkList li a:visited {
+ color: #333;
+ }
+
+#extraDiv1 {
+ background: transparent url(certified.png) top left no-repeat;
+ position: absolute;
+ top: 160px;
+ left: 0px;
+ width: 100px;
+ height: 110px;
+ z-index: 0;
+ }
+
+/* hidden from IE 5 mac */
+
+@media all {
+ #explanation {
+ margin-left: 280px;
+ }
+
+ #participation {
+ margin-left: 280px;
+ }
+
+ #benefits {
+ margin-left: 280px;
+ }
+
+ #requirements {
+ margin-left: 280px;
+ }
+
+ #footer {
+ margin-left: 0px;
+ }
+}/* css Zen Garden submission 010 - 'A Garden Apart' by Dan Cederholm, http://www.simplebits.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dan Cederholm */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body
+ {
+ font-family: trebuchet ms, verdana, sans-serif;
+ font-size: 12px;
+ line-height: 1.5em;
+ color: #333;
+ background: #cccc99;
+ margin: 0;
+ padding: 0;
+ text-align: center;
+ }
+
+p
+ {
+ margin-top: 0px;
+ }
+
+h3
+ {
+ font: bold 140% trebuchet ms;
+ letter-spacing: -1px;
+ margin-bottom: 0;
+ color: #c96;
+ }
+
+a:link
+ {
+ text-decoration: none;
+ border-bottom: 1px dotted #369;
+ color: #369;
+ }
+
+a:visited
+ {
+ text-decoration: none;
+ border-bottom: 1px dotted #369;
+ color: #369;
+ }
+
+a:hover, a:active
+ {
+ text-decoration: none;
+ border-bottom: 1px solid #036;
+ color: #036;
+ }
+
+/* ---( specific divs )----------------------------- */
+
+#container
+ {
+ position: relative;
+ background: #FFFBDF url(fade.gif) no-repeat 0 92px;
+ margin: 0 auto 10px auto;
+ border-left: 1px solid #000;
+ border-right: 1px solid #000;
+ border-bottom: 1px solid #000;
+ text-align: left;
+ width: 800px;
+ }
+
+#pageHeader
+ {
+ height: 92px;
+ background: url(top.gif) no-repeat top left;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1, #pageHeader h2 span
+ {
+ margin: 0;
+ padding: 0;
+ display: none;
+ }
+
+#pageHeader h2
+ {
+ position: absolute;
+ top: 110px;
+ left: 20px;
+ padding: 0;
+ margin: 0;
+ background: url(tagline.gif) no-repeat top left;
+ width: 528px;
+ height: 74px;
+ }
+
+/* ---( quick summary)---------------------------- */
+
+#quickSummary
+ {
+ position: absolute;
+ top: 92px;
+ right: 0;
+ left: auto;
+ z-index: 2;
+ width: 298px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 300px;
+ }
+
+html>body #quickSummary
+ {
+ width: 300px;
+ }
+
+#quickSummary p
+ {
+ margin: 15px 15px 15px 15px;
+ font-style: italic;
+ font-size: 140%;
+ font-family: "trebuchet ms";
+ font-weight: bold;
+ line-height: 1.5em;
+ color: #444;
+ }
+
+#quickSummary p.p2
+ {
+ font-style: normal;
+ font-weight: normal;
+ font-size: 100%;
+ margin-top: 0;
+ }
+
+#preamble
+ {
+ margin: 104px 340px 0px 20px;
+ }
+
+#supportingText
+ {
+ padding-left: 20px;
+ margin: 0 350px 40px 0;
+ }
+
+#footer
+ {
+ border-top: 1px dotted #CDC4AC;
+ padding-top: 6px;
+ text-align: center;
+ }
+
+#footer a:link, #footer a:visited
+ {
+ margin-right: 6px;
+ }
+
+/* ---( right side nav)----------------------------- */
+
+#linkList
+ {
+ position: absolute;
+ top: 92px;
+ right: 0;
+ left: auto;
+ width: 300px;
+ padding: 0;
+ border-left: 1px solid #CDC4AC;
+ border-bottom: 1px solid #CDC4AC;
+ background: #E5E0D4 url(zen.gif) no-repeat;
+ z-index: 1;
+ }
+
+#linkList2
+ {
+ margin: 190px 15px 15px 15px;
+ }
+
+#linkList h3
+ {
+ color: #635F57;
+ font-family: trebuchet ms;
+ font-size: 120%;
+ margin: 0 0 6px 0;
+ padding: 0;
+ }
+
+#linkList ul
+ {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li
+ {
+ display: block;
+ margin-bottom: 2px;
+ padding-left: 14px;
+ background: url(arrow.gif) no-repeat 0 5px;
+ list-style-type: none;
+ }
+
+#linkList li a:link
+ {
+ color: #c96;
+ border-bottom: none;
+ }
+
+#linkList li a:visited
+ {
+ color: #c96;
+ border-bottom: none;
+ }
+
+#linkList li a:hover
+ {
+ color: #963;
+ }
+
+
+
+
+#lselect
+ {
+ padding: 12px 0 12px 0;
+ border-top: 1px dashed #CDC4AC;
+ border-bottom: 1px dashed #CDC4AC;
+ }
+
+#lresources
+ {
+ margin-top: 12px;
+ }/* css Zen Garden submission 011 - 'meliorism' by Brett J. Gilbert - www.paragraphic.co.uk */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* 'tree' graphic adapted from 'Bending Tree' by Robert Priseman, used with permission */
+/* All other graphics copyright 2003, Brett J. Gilbert */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/*----------------------------------------*
+** Global
+**----------------------------------------*/
+
+body {
+ margin: 0;
+ padding: 0;
+ text-align: center;
+ color: #000;
+ background: #f1f8f3 url(gradSky.jpg) repeat-x;
+ }
+div,p,h1,h2,h3,ul,li {
+ margin: 0;
+ padding: 0;
+ }
+h1 span,h2 span,h3 span {
+ display: none;
+ }
+
+/*----------------------------------------*
+** Layout
+**----------------------------------------*/
+
+#container {
+ position: relative;
+ width: 760px;
+ margin: 0 auto;
+ text-align: left;
+ }
+#intro {
+ position: absolute;
+ top: 28px;
+ left: 0;
+ width: 310px;
+ }
+#supportingText {
+ width: 690px;
+ }
+#linkList {
+ position: absolute;
+ top: 40px;
+ left: 585px;
+ width: 235px;
+ }
+
+/*----------------------------------------*
+** Links
+**----------------------------------------*/
+
+a:link,
+a:visited { color: #49f; background-color: transparent; text-decoration: none; }
+a:hover { color: #f00; background-color: transparent; text-decoration: none; }
+
+#quickSummary p.p2 a:link,
+#quickSummary p.p2 a:visited { color: #348633; background-color: transparent; }
+#quickSummary p.p2 a:hover { color: #f00; background-color: transparent; }
+
+#footer a:link,
+#footer a:visited { color: #348633; background-color: transparent; }
+#footer a:hover { color: #f00; background-color: transparent; }
+
+#linkList a.c:link,
+#linkList a.c:visited { color: #fa5; background-color: transparent; }
+#linkList a.c:hover { color: #f00; background-color: transparent; }
+
+/*----------------------------------------*
+** #intro
+**----------------------------------------*/
+
+#intro {
+ font: italic 11px/150% Georgia, Times, "Times New Roman", serif;
+ color: #888;
+ background-color: transparent;
+ }
+#pageHeader h1 {
+ margin-left: 4px;
+ background: transparent url(introGarden.gif) no-repeat 0 0;
+ width: 115px;
+ height: 12px;
+ }
+#pageHeader h2 {
+ margin-top: 80px;
+ background: transparent url(introBeauty.gif) no-repeat 0 0;
+ width: 195px;
+ height: 73px;
+ }
+#quickSummary p.p1 {
+ margin: 5px 0 55px 4px;
+ color: #fa0;
+ background-color: transparent;
+ line-height: 160%;
+ }
+#quickSummary p.p2 {
+ margin: 0 150px 0 4px;
+ padding: 5px 25px 5px 10px;
+ background: transparent url(gradGreen.jpg) repeat-y;
+ border-left: 1px solid #a7d9a8;
+ color: #888;
+ line-height: 130%;
+ }
+#preamble {
+ margin-left: 4px;
+ padding: 20px 0 0 15px;
+ border-left: 1px solid #a7d9a8;
+ }
+#preamble h3 {
+ background: transparent url(introEnlightenment.gif) no-repeat 0 0;
+ width: 138px;
+ height: 37px;
+ }
+#preamble p {
+ margin: 10px 140px 0 0;
+ }
+
+/*----------------------------------------*
+** #supportingText
+**----------------------------------------*/
+
+#supportingText {
+ padding: 430px 0 40px 0;
+ font: 13px/140% Georgia, Times, "Times New Roman", serif;
+ color: #888;
+ background: transparent url(textBack.jpg) no-repeat 0 40px;
+ }
+#supportingText p {
+ margin: 0 125px 10px 221px;
+ }
+#supportingText h3 {
+ margin: 25px 0 6px 220px;
+ width: 206px;
+ height: 21px;
+ }
+#explanation h3 { background: transparent url(textAbout.gif) no-repeat 0 0; margin-top: 0; }
+#participation h3 { background: transparent url(textParticipation.gif) no-repeat 0 0; }
+#benefits h3 { background: transparent url(textBenefits.gif) no-repeat 0 0; }
+
+/*----------------------------------------*
+** #supportingText > #requirements
+**----------------------------------------*/
+
+#requirements {
+ margin: 30px 0 0 221px;
+ padding: 0 0 15px 0;
+ border-left: 1px solid #a7d9a8;
+ font: italic 11px/150% Georgia, Times, "Times New Roman", serif;
+ color: #888;
+ background-color: transparent;
+ }
+#requirements h3 {
+ margin: 0 0 13px 0;
+ background: transparent url(textRequirements.jpg) no-repeat 0 0;
+ width: 175px;
+ height: 25px;
+ }
+#requirements p {
+ margin: 9px 0 0 15px;
+ }
+
+/*----------------------------------------*
+** #supportingText > #footer
+**----------------------------------------*/
+
+#footer {
+ margin: 0 0 0 221px;
+ padding: 4px 0 5px 15px;
+ background: transparent url(gradGreen.jpg) repeat-y;
+ border-left: 1px solid #a7d9a8;
+ font: italic 11px/140% Georgia, Times, "Times New Roman", serif;
+ }
+
+/*----------------------------------------*
+** #linkList
+**----------------------------------------*/
+
+#linkList {
+ border-left: 1px solid #8bf;
+ font: italic 11px/130% Georgia, Times, "Times New Roman", serif;
+ color: #999;
+ background: transparent url(linksBack.jpg) no-repeat;
+ }
+#lselect h3 {
+ background: transparent url(linksSelect.gif) no-repeat 0 0;
+ margin: 240px 0 10px 14px;
+ width: 118px;
+ height: 73px;
+ }
+div#lselect {
+ margin-bottom: 50px;
+ }
+#linkList ul {
+ margin-left: 15px;
+ }
+#linkList li {
+ list-style-type: none;
+ margin-top: 5px;
+ }
+#lresources h3,
+#lfavorites h3,
+#larchives h3 {
+ margin: 25px 0 8px 0;
+ width: 175px;
+ height: 25px;
+ }
+#lresources h3 { background: transparent url(linksResources.jpg) no-repeat 0 0; }
+#lfavorites h3 { background: transparent url(linksFavorites.jpg) no-repeat 0 0; }
+#larchives h3 { background: transparent url(linksArchives.jpg) no-repeat 0 0; }
+/* css Zen Garden submission 012 - 'TechnOhm' by Joshua Ambrutis - http://www.visualcss.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Joshua Ambrutis */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* I've tried to keep the CSS in the sequence which I built it in... just to give another perspective
+of how others tackle this, you'll see in some spots I'll define an elements main box just to get it
+in the right place etc.. then refine it with specifics later in the stylesheet. I'm not saying this is right,
+just the way I usually go about it. There are also comments thrown in here and there to hopefully
+explain some of the strangeness */
+
+body {
+ margin: 0px;
+ padding: 0px;
+ background: url(to_pageback.gif) repeat fixed;
+ color: #CCCCCC;
+ font: 76% Arial, Helvetica, sans-serif;
+ text-align: center;
+}
+
+div, p, ul, li, h1, h2, h3, h4, h5, h6 { margin: 0px; padding: 0px; }
+/* Why do I do that? ...hmm.. since switching from Tables to CSS, I've learned it is easier
+for MY feeble brain to lay out the design first with just colored boxes THEN paint it in photoshop, this just helps me
+to get the layout of the elements first. Then I refine theses values with more specifics through
+IDs and Classes when the graphics call for it, in my case the barebones basic layout comes
+first with designs in my head BEFORE I open PhotoShop... but that's just me */
+
+h1, h2, h3, h4, h5, h6 { color: #FFAE00; }
+#container {
+ margin: 0px auto 60px;
+ width: 760px;
+ border-top: 0px solid #000000;
+ border-right: 2px solid #000000;
+ border-bottom: 2px solid #000000;
+ border-left: 2px solid #000000;
+ padding: 0px 0px 150px;
+ background: #404040 url(bandwidthkiller.jpg) no-repeat center bottom;
+ text-align: left;
+ position: relative;
+}
+#pageHeader h1 {
+ margin-bottom: 12px;
+ background: url(to_header_01.jpg) no-repeat;
+ height: 186px;
+}
+#pageHeader h1 span { display: none; }
+
+/* Above: That's just for dumping the text allowing the backround image in it's containing element to show through*/
+
+#pageHeader h2 {
+ width: 261px;
+ background: url(to_beauty.gif) no-repeat;
+ position: absolute;
+ height: 17px;
+ top: 2px;
+ right: 5px;
+ cursor: text; /* just goofing off */
+}
+#pageHeader h2 span { display: none; }
+#pageHeader { position: relative; }
+#quickSummary {
+ margin: 0px;
+ border: 0px none;
+ padding: 0px;
+ width: 220px;
+ background: url(to_sumarytop_02.jpg) no-repeat;
+ position: absolute;
+ z-index: 1;
+ left: 0px;
+ height: 266px;
+}
+#preamble {
+ margin: 10px 0px 30px 235px;
+ width: 510px;
+ border: 2px solid #000000;
+ padding: 10px 0px;
+ background: #60676F url(zen-image.jpg) repeat center top;
+ text-align: center;
+ position: relative;
+ top: 0px;
+ left: 0px;
+ z-index: 3;
+}
+#preamble p {
+ padding: 0px 0px 1.3em;
+ margin: 0px auto;
+ width: 320px;
+ color: #F2F2F2;
+ font: bold 1.2em/1em "Trebuchet MS", Arial, Helvetica, sans-serif;
+ letter-spacing: 0.08em;
+ text-align: left;
+}
+#preamble p.p3 { padding-bottom: 0px; }
+div#preamble h3 {
+ width: 400px;
+ margin: 0px;
+ padding: 0px 0px 0px 34px;
+ background: url(to_h3back_04.gif) no-repeat left top;
+ font-size: 16px;
+ line-height: 24px;
+ text-align: left;
+ position: absolute;
+ top: -24px;
+ z-index: 1;
+ left: -3px;
+ height: 23px;
+}
+#supportingText {
+ margin: 0px 0px 0px 235px;
+ width: 510px;
+ padding: 0px;
+ position: relative;
+}
+#linkList {
+ margin: 7em 10px 0px 12px;
+ padding: 0px;
+ width: 200px;
+ background: url(ani2.gif) no-repeat; /* this is just here as a preloader for the nav mouseover to kill the delay when it's first hit.. it can't be seen in this position because of an overlaying background image*/
+ position: absolute;
+ left: 0px;
+ top: 360px;
+ z-index: 2;
+}
+#supportingText p { padding: 5px 12px 1em; }
+#supportingText div {
+ border: 1px solid #000000;
+ padding: 0px;
+ margin: 22px 0px 40px;
+ width: 510px;
+ background: #61605F;
+ position: relative;
+ z-index: 2;
+}
+#supportingText h3 {
+ width: 400px;
+ margin: 0px;
+ padding: 0px 0px 0px 34px;
+ background: url(to_h3back_04.gif) no-repeat left top;
+ font-size: 16px;
+ line-height: 24px;
+ position: absolute;
+ top: -24px;
+ z-index: 1;
+ height: 23px;
+ left: -2px;
+}
+#intro a {
+ color: #FFCC00;
+ font-weight: bold;
+ text-decoration: none;
+}
+#supportingText a {
+ color: #FFAE00;
+ font-weight: bold;
+ text-decoration: none;
+}
+#supportingText a:hover { border-bottom: 2px dashed #FFAE00; color: #CCCCCC; }
+#supportingText a:active { border-bottom: 2px dashed #333333; background: #5A6269; }
+div#supportingText div#requirements {
+ margin-bottom: 0px;
+ background: #61605F url(bandwidthkiller-alpha.jpg) no-repeat center bottom;
+}
+/* the background image above is what gives the transparency effect,
+it's just a carefully cut out chunk of the #container divs background image
+with a semi-transparent overlay on it. Oh... I can't wait for true PNG surrport*/
+
+div#supportingText div#footer {
+ width: 200px;
+ border-top: 0px none #000000;
+ border-right: 0px none #000000;
+ border-bottom: 1px solid #000000;
+ border-left: 0px none #000000;
+ padding-top: 36px;
+ padding-bottom: 12px;
+ margin: 0px;
+ background: transparent url(to_footerback_07.gif) no-repeat left top;
+ text-align: center;
+ position: relative;
+ left: -220px;
+ top: -64px;
+}
+#quickSummary p {
+ margin: 0px 20px 10px 25px;
+ color: #A3A3A3;
+ font: bolder small-caps 1.1em/1em "Trebuchet MS", Arial, Helvetica, sans-serif;
+}
+#quickSummary p.p1 {
+ margin-top: 20px;
+ border: 1px solid #23282C;
+ padding: 10px;
+ color: #FFAE00;
+}
+#quickSummary p.p2 {
+ color: #999999;
+ font-weight: normal;
+ text-align: center;
+}
+#quickSummary p a {
+ color: #CCCCCC;
+ font-weight: normal;
+ text-decoration: none;
+}
+#lselect, #lfavorites, #larchives, #lresources {
+ border: 1px solid #000000;
+ padding: 0px;
+ margin: 0px 0px 60px;
+ background: #60676F;
+ font-size: .9em;
+ position: relative;
+}
+#linkList h3 {
+ width: 200px;
+ border-top: 0px #000000;
+ border-right: 1px solid #000000;
+ border-bottom: 0px #000000;
+ border-left: 0px #000000;
+ margin: 0px;
+ padding: 0px;
+ background: url(to_h3back_04.gif) no-repeat left top;
+ font-size: 16px;
+ line-height: 24px;
+ position: absolute;
+ top: -24px;
+ z-index: 1;
+ left: -2px;
+ height: 23px;
+}
+#linkList h3 span { margin: 0px; padding: 0px 0px 0px 34px; }
+/*#linkList span { margin: 0px; padding: 0px; display: block; }*/
+
+div#lselect a.c {
+ margin: 0px 0px -15px; /* seemed to have to do that because of the extra in each li item */
+ padding: 0px 15px 0px 0px;
+ display: inline;
+ background-image: none;
+ color: #FFCC00;
+ font-weight: normal;
+ font-variant: normal;
+ font-size: 1em;
+ text-decoration: none;
+ text-transform: capitalize;
+ text-align: center;
+}
+/* The following 4 divs all use the same background file...
+ it's larger than it needs to be to allow the text to resize PLUS you can
+ use the background-position to offset it in different divs for the illusion
+ of more than one file without the bandwith loss*/
+
+div#lselect {
+ background: url(to_leftcol_02.jpg) repeat-y -50px -60px;
+ color: #999999;
+}
+div#lresources {
+ background: url(to_leftcol_02.jpg) no-repeat -5px -20px;
+ text-align: left;
+}
+div#larchives {
+ background: url(to_leftcol_02.jpg) no-repeat -40px -220px;
+}
+div#lfavorites {
+ background: url(to_leftcol_02.jpg) no-repeat -60px -20px;
+}
+/* Bahaaa! Somebody switched the menus to an unordered list structure,
+good bye spans! I have to jump back a few
+steps here and do the lists, I'll try to reorder the css later to make incremental sense */
+#linkList ul { list-style: none; text-align: center; }
+#linkList li { margin: 0px; padding: 6px 0px; }
+#linkList a {
+ padding-left: 32px;
+ margin-left: 6px;
+ display: block;
+ background: url(ani1.gif) no-repeat left center;
+ color: #BBBBBB;
+ font-weight: bold;
+ font-size: 1.1em;
+ text-transform: uppercase;
+ text-decoration: none;
+ text-align: left;
+}
+#linkList a:hover {
+ background: url(ani2.gif) no-repeat left center;
+ color: #EBEBEB;
+}
+div#lselect a.c:hover {
+ background: none;
+ color: #CCCCCC;
+ font-style: italic;
+ text-decoration: none;
+}
+div#linkList div#lresources a {
+ margin: 0px 0px -10px;
+ padding: 0px;
+ display: inline;
+ background: url(none);
+ text-transform: capitalize;
+}
+div#linkList div#lresources ul { margin: 0px; padding-left: 15px; text-align: left; }
+/* Stupid IE5, almost made it without a hack, but don't have time figure
+out how to get rid of extra pixels from the border or even if I can without
+resorting to a hack. By the way, this is called the SBMH short for Simple
+Box Model Hack, just Google it for more info if you need*/
+#linkList h3 { \left: -1px; lef\t: -2px; \width: 201px; w\idth: 200px; }
+
+/* css Zen Garden submission 013 - 'Coastal Breeze' by Dave Shea, http://www.mezzoblue.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea*/
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* These illustrations were done by hand in Photoshop. No photos harmed in the
+ making of this design. They were put together about two years ago for a former
+ portfolio site, and luckily I still had the .PSD on hand. It felt like a good
+ idea to convert this into a Zen Garden design.
+
+ It has been said that this particular combination of objects has a west-coast
+ British Columbia feel to it. I'm inclined to agree.
+ */
+
+/* basic elements */
+body {
+ font: 8pt/16pt georgia, serif;
+ text-align: center;
+ color: #464128;
+ background: #fff url(coastal2.jpg) bottom center no-repeat;
+ margin: 0px;
+}
+p {
+ font: 8pt/16pt georgia, serif;
+ color: #464128;
+ background-color: transparent;
+ margin-top: 0px;
+ text-align: right;
+}
+h3 {
+ font: bold 8pt/16pt georgia, serif;
+ text-align: right;
+ margin-bottom: 0px;
+ background: transparent url(futz.gif) center right no-repeat;
+ padding-right: 14px;
+}
+a {
+ color: #464128;
+ background-color: transparent;
+}
+a:visited {
+ color: #000;
+ background-color: transparent;
+}
+a:hover {
+ color: #A29D66;
+ background-color: transparent;
+}
+acronym {
+ border-bottom: none;
+ }
+
+
+/* specific elements */
+#intro {
+ background: transparent url(coastal.jpg) top left no-repeat;
+ width: 700px;
+ margin-left: auto;
+ margin-right: auto;
+}
+#pageHeader {
+ text-align: right;
+ padding: 70px 60px 0px 0px;
+}
+#pageHeader h1 {
+ background: transparent url(papier.jpg) top left no-repeat;
+ width: 192px;
+ height: 70px;
+ margin: 0px 0px 0px 448px;;
+}
+#pageHeader h1 span {
+ display: none;
+}
+#pageHeader h2 {
+ background: transparent url(beauty.gif) top left no-repeat;
+ width: 83px;
+ height: 14px;
+ margin: 0px 90px 0px 477px;
+ position: relative;
+ top: -17px;
+}
+#pageHeader h2 span {
+ display: none;
+}
+
+#preamble {
+ position: relative;
+ top: -80px;
+ padding-right: 250px;
+ padding-left: 140px;
+
+}
+#quickSummary {
+ float: right;
+ text-align: left;
+ padding-right: 70px;
+ width: 230px;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: 160px;
+}
+/* over-clarified to fix IE5/Win */
+#quickSummary p, #quickSummary .p1, #quickSummary .p2 {
+ font: italic 13pt/18pt garamond, serif;
+ text-align: left;
+ color: #A29D66;
+ background-color: transparent;
+}
+#supportingText {
+ margin-left: auto;
+ margin-right: auto;
+ padding-right: 250px;
+ padding-left: 140px;
+ position: relative;
+ top: -70px;
+ width: 700px;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: 310px;
+}
+
+
+
+#linkList {
+ font: italic 9pt/14pt garamond, georgia, serif;
+ text-transform: lowercase;
+ text-align: left;
+ color: #A29D66;
+ background-color: transparent;
+ position: absolute;
+ top: 33em; /*380px;*/
+ left: 0px;
+ width: 100%;
+}
+#linkList2 {
+ padding-left: 470px;
+ padding-right: 70px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 700px;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: 160px;
+}
+#linkList h3 {
+ font: italic 12pt/15pt garamond, georgia, serif;
+ text-transform: capitalize;
+ color: #464128;
+ background-color: transparent;
+ text-align: left;
+ background-image: none;
+}
+#linkList a {
+ font: italic 11pt/14pt garamond, georgia, serif;
+ color: #A29D66;
+ background-color: transparent;
+ text-decoration: none;
+}
+#linkList a:hover {
+ color: #464128;
+ background-color: transparent;
+ text-decoration: underline;
+}
+
+#linkList a.c {
+ font: italic 9pt/14pt garamond, georgia, serif;
+}
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+}
+#linkList li {
+ text-align: left;
+ list-style-type: none;
+}
+
+#linkList h3 {
+ margin-right: auto;
+ margin-left: 0px;
+ margin-top: 25px;
+}
+#linkList h3 span {
+ display: none;
+}
+#linkList h3.select {
+ width: 113px;
+ height: 19px;
+ background: transparent url(h-select.gif) top left no-repeat;
+}
+#linkList h3.archives {
+ width: 134px;
+ height: 17px;
+ background: transparent url(h-archives.gif) top left no-repeat;
+}
+#linkList h3.favorites {
+ width: 76px;
+ height: 23px;
+ background: transparent url(h-favorites.gif) top left no-repeat;
+ position: relative;
+ left: -10px;
+}
+#linkList h3.resources {
+ width: 125px;
+ height: 13px;
+ background: transparent url(h-resources.gif) top left no-repeat;
+ position: relative;
+ left: -10px;
+}
+
+#footer a {
+ font: italic 11pt/14pt garamond, georgia, serif;
+ color: #A29D66;
+ background-color: transparent;
+ text-decoration: none;
+ padding-left: 15px;
+}
+#footer a:hover {
+ color: #464128;
+ background: transparent url(fleurdelis.gif) center left no-repeat;
+ text-decoration: none;
+ border-bottom: dotted 1px #464128;
+}
+
+.accesskey {
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+
+/* extra bits on the last paragraph in each text block */
+#preamble .p3, #explanation .p2, #participation .p3, #benefits .p1, #requirements .p4 {
+ background: transparent url(filler.gif) bottom center no-repeat;
+ padding-bottom: 25px;
+}
+
+#extraDiv1 {
+ text-align: center;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+}
+#extraDiv1 span {
+ display: block;
+ width: 600px;
+ height: 82px;
+ margin-left: auto;
+ margin-right: auto;
+ background: transparent url(fleur.gif) top right no-repeat;
+}/* css Zen Garden submission 014 - 'Samuraai' by Minz Meyer, http://www.minzweb.de/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Minz Meyer */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ background-image: url(background_body.jpg);
+ background-color: #000;
+ color: #D8E0BC;
+ margin-top: 10px;
+ margin-left: 50px;
+ margin-right: 50px;
+ margin-bottom: 10px;
+ padding: 0;
+ font: 12px/1.5 Verdana, sans-serif;
+}
+
+/* Basic styles */
+
+h3 {
+ background-color: #B1AD72;
+ color: inherit;
+ margin-top: 0;
+ border-right: 4px solid #818343;
+ border-bottom: 1px solid #818343;
+ height: 25px;
+}
+
+h3 span {
+ display: none;
+}
+
+div#preamble p.p3 {
+ padding-bottom: 15px;
+}
+
+/* Main div styling */
+div#container {
+ background-color: #2F2F13;
+ color: inherit;
+ background-image: url(container_background.jpg);
+ background-position: right;
+ background-repeat: repeat-y;
+ border-left: 1px solid #8F8C4E;
+ border-bottom: 1px solid #8F8C4E;
+}
+
+div#intro {
+ position: relative;
+ overflow: hidden;
+}
+
+div#pageHeader {
+ background-color: #000;
+ color: inherit;
+ background-image: url(umbrella.jpg);
+ background-repeat: no-repeat;
+ border-top: 1px solid #8F8C4E;
+ border-bottom: 1px solid #8F8C4E;
+ border-right: 1px solid #8F8C4E;
+ height: 50px;
+ margin-bottom: 15px;
+ overflow: hidden;
+}
+
+div#pageHeader h1 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ width: 500px;
+ height: 46px;
+ float: left;
+}
+
+div#pageHeader h1 span {
+ visibility: hidden;
+}
+
+div#pageHeader h2 {
+ background-image: url(beauty_background.gif);
+ background-repeat: no-repeat;
+ margin-top: 5px;
+ margin-left: 0px;
+ width: 348px;
+ height: 39px;
+ float: right;
+}
+
+div#pageHeader h2 span {
+ display: none;
+}
+
+div#quickSummary {
+ position: relative;
+ float:left;
+ width: 150px;
+ margin-top: -10px;
+ padding: 8px;
+ background-color: transparent;
+ color: inherit;
+}
+
+div#quickSummary p {
+ margin-top: 0px;
+ font: italic 14px Verdana, sans-serif;
+ text-align: center;
+}
+
+div#quickSummary p.p2 {
+ font: italic 11px Verdana, sans-serif;
+}
+
+div#preamble {
+ border-bottom: 1px solid #8F8C4E;
+ margin-top: -16px;
+ margin-right: 222px;
+ background-image: url(background-preamble.jpg);
+ background-repeat: no-repeat;
+ background-color: #000;
+ color: inherit;
+
+}
+div#preamble h3 {
+ background-image: url(preamble_h3_background.jpg);
+ background-repeat: no-repeat;
+ margin-top: 0px;
+ margin-left: 170px;
+}
+
+div#preamble p {
+ padding-right: 30px;
+ margin-left: 200px;
+ color: inherit;
+ background-color: transparent;
+ font: 14px/1.6 Verdana, sans-serif;
+ text-align: justify;
+ width: auto;
+}
+
+div#supportingText {
+ margin-top: 0px;
+}
+
+div#explanation, div#participation, div#benefits, div#requirements {
+ margin-right: 222px;
+ margin-bottom: 30px;
+}
+
+
+div#supportingText p {
+ padding-left: 30px;
+ padding-right: 30px;
+}
+
+div#explanation h3 {
+ background-image: url(explanation_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#participation h3 {
+ background-image: url(participation_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#benefits h3 {
+ background-image: url(benefits_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#requirements h3 {
+ background-image: url(requirements_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+
+div#linkList {
+ position: absolute;
+ top: 62px;
+ right: 50px;
+ width: 220px;
+ background-color: transparent;
+ color: inherit;
+ font: 10px/1.5 Verdana, sans-serif;
+}
+
+div#linkList h3.select {
+ background-color: #2F2F13;
+ background-image: url(select_h3_background.jpg);
+ background-repeat: no-repeat;
+ color: inherit;
+ margin-top: 0;
+ border-right: 4px solid #818343;
+ border-bottom: 1px solid #818343;
+ height: 25px;
+
+}
+
+div#linkList h3.resources {
+ background-image: url(resource_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#linkList h3.archives {
+ background-image: url(archives_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#linkList h3.favorites {
+ background-image: url(favorites_h3_background.jpg);
+ background-repeat: no-repeat;
+}
+
+div#linkList h3 {
+ background-color: #2F2F13;
+ color: inherit;
+ margin-top: 20px;
+ border-right: 4px solid #818343;
+ border-bottom: 1px solid #818343;
+ height: 25px;
+
+}
+
+span.iL {
+ display: block;
+ padding-left: 20px;
+ padding-right: 20px;
+ margin-bottom: 10px;
+ line-height: 2;
+}
+
+div#linkList ul {
+ list-style: none;
+}
+
+div#linkList li {
+ margin-left: -15px;
+ margin-bottom: 10px;
+ line-height: 1.5;
+}
+
+a:link {
+ color: #9BB574;
+ background-color: transparent;
+ text-decoration: none;
+ font-weight: bold;
+ padding: 2px;
+ border-bottom: 1px solid;
+ line-height: 1.5;
+}
+
+a:visited {
+ color: #C6D2B3;
+ background-color: transparent;
+ text-decoration: line-through;
+ font-weight: bold;
+ padding: 2px;
+ border-bottom: 1px solid;
+ line-height: 1.5;
+}
+
+a:hover, a:focus {
+ color: #D8E2C7;
+ background-color: #828330;
+ text-decoration: none;
+ font-weight: bold;
+ padding: 2px;
+ border-bottom: 1px solid;
+ line-height: 1.5;
+}
+
+div#footer {
+ clear: both;
+ background-color: #000;
+ color: inherit;
+ background-image: url(umbrella2.jpg);
+ background-repeat: no-repeat;
+ background-position: right;
+ border-top: 1px solid #8F8C4E;
+ border-right: 1px solid #8F8C4E;
+ height: 50px;
+ padding-left: 30px;
+ vertical-align: bottom;
+ overflow: hidden;
+}
+
+div#supportingText div#footer a {
+ line-height: 40px;
+}
+
+acronym {
+ border-bottom: none;
+ cursor: help;
+}/* css Zen Garden submission 015 - 'boddhidarma' by Michael Angeles - http://studioid.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Michael Angeles */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* body and type */ + +html { + background: rgb(93, 105, 40) url(bg_boddhidarma2.gif) no-repeat top left; +} +/* basic elements */ +body { + font: 9pt/16pt verdana, helvetica, sans-serif; + color: #ffc; + margin: 0 0 30px 0; + } +p { + font: 9pt/16pt verdana, helvetica, sans-serif; + padding-bottom: 5px; + } +h3 { + font-size: 16pt; + letter-spacing: 1px; + margin: 0; + padding: 0; + color: #cc9; + } +a:link { + font-weight: bold; + text-decoration: none; + color: #fe9201; + } +a:visited { + font-weight: bold; + text-decoration: none; + color: #fe9201; + border: none; + } +a:hover, a:active { + color: #fe9201; + } + + +/* layout */ + +#container { + text-align: left; + background: url(sig.gif) no-repeat bottom right; +} + +#intro { + min-width: 400px; + } + +/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */ +#pageHeader h1 { + margin: 10px 0 0 410px; + padding: 0 0 0 0; + width: 257px; + height: 18px; + background: transparent url(hd_zengarden.gif) no-repeat 0 0; + } +#pageHeader h1 span { + display:none + } +#pageHeader h2 { + padding: 0; + margin: 210px 0 0 410px; + width: 289px; + height: 70px; + background: transparent url(hd_beauty.gif) no-repeat 0 0; + } +#pageHeader h2 span { + display:none; + } + +#quickSummary p.p1 { + position: absolute; + top: 30px; + left: 410px; + margin: 0; + padding: 0 50px 0 0; + font: 14pt/18pt verdana, helvetica, sans-serif; + text-transform: lowercase; + color: #869152; +} +#quickSummary p.p2 { + position: absolute; + top: 850px; + left: 0; + width: 320px; + margin: 0; + padding: 15px 20px 15px 20px; + text-align: left; + font-size: 1.1em; + font-weight: bold; + background: #677235; +} + +#preamble { + margin: 10px 50px 40px 410px; + padding: 20px 0 40px 0; + border-top: 1px dotted #869152; + background: url(koi.gif) no-repeat bottom center; + } +#preamble h3 { + background: url(hd_enlighten.gif) no-repeat 0 0; + width: 301px; + height: 23px; +} +#preamble h3 span { + display:none; +} + +#supportingText { + margin: 0 50px 0 410px; + } +#explanation { + padding-bottom: 40px; + background: url(koi.gif) no-repeat bottom center; +} +#explanation h3 { + background: url(hd_about.gif) no-repeat 0 0; + width: 302px; + height: 19px; +} +#explanation h3 span { + display:none; +} +#participation { + margin-top: 20px; + padding-bottom: 40px; + background: url(koi.gif) no-repeat bottom center; +} +#participation h3 { + background: transparent url(hd_participation.gif) no-repeat 0 0; + width: 140px; + height: 23px; +} +#participation h3 span { + display:none; +} +#benefits { + margin-top: 20px; + padding-bottom: 40px; + background: url(koi.gif) no-repeat bottom center; +} +#benefits h3 { + background: transparent url(hd_benefits.gif) no-repeat 0 0; + width: 106px; + height: 24px; +} +#benefits h3 span { + display:none; +} +#requirements { + margin-top: 20px; + padding-bottom: 40px; +} +#requirements h3 { + background: transparent url(hd_requirements.gif) no-repeat 0 0; + width: 155px; + height: 23px; +} +#requirements h3 span { + display:none; +} + +#footer { + margin-top: 20px; +} +#footer a:link, #footer a:visited { + margin-right: 20px; + } + +/* navigation / links */ + +#linkList { + position: absolute; + top: 940px; + left: 0; + width: 360px; + text-align: left; + padding: 0; + margin: 0; + font-size: .9em; +} + +/* linklist WITHOUT favorites */ +/* NOTE: keep this linklist CSS if favorites remains hidden */ +#lselect { + clear: none; + float: left; + width: 180px; + padding: 0 19px 0 20px; + margin: 0 0 30px 0; + border-right: 1px solid #677235; + voice-family: "\"}\""; + voice-family: inherit; + width: 140px; + } +html>body #lselect { + width: 140px; + } +#larchives { + float: right; + width: 180px; + padding: 0 0 0 20px; + margin: 0 0 30px 0; + voice-family: "\"}\""; + voice-family: inherit; + width: 160px; + } +html>body #larchives { + width: 160px; + } +#lresources { + float: left; + width: 170px; + padding: 0 0 0 20px; + margin: 0 0 30px 0; + voice-family: "\"}\""; + voice-family: inherit; + width: 160px; + } +html>body #lresources { + width: 160px; + } +/* /end linklist WITHOUT favorites */ + +/* linklist WITH #lfavorites */ +/* NOTE: in case you decide to uncomment #lfavorites div, comment the above link list CSS and uncomment the below +#lselect { + float: left; + width: 150px; + padding: 0 19px 0 20px; + margin: 0 0 30px 0; + border-right: 1px solid #677235; +} +#lfavorites { + float: left; + width: 150px; + padding: 0 0 0 20px; + margin: 0 0 30px 0; +} +#larchives { + float: left; + width: 150px; + padding: 0 19px 0 20px; + margin: 0 0 30px 0; + border-right: 1px solid #677235; +} +#lresources { + float: left; + width: 150px; + padding: 0 0 0 20px; + margin: 0 0 30px 0; +} +end linklist WITH #lfavorites */ + +#linkList h3.select { + background: url(hd_select.gif); + margin: 0; + width: 96px; + height: 12px; + border: 0; +} +#linkList h3.select span { + display:none +} +#linkList h3.favorites { + background: url(hd_favorites.gif); + margin: 0; + width: 58px; + height: 10px; + border: 0; +} +#linkList h3.favorites span { + display:none +} +#linkList h3.archives { + background: url(hd_archives.gif); + margin: 0; + width: 53px; + height: 10px; + border: 0; +} +#linkList h3.archives span { + display:none +} +#linkList h3.resources { + background: url(hd_resources.gif); + margin: 0; + width: 66px; + border: 0; + height: 10px; +} +#linkList h3.resources span { + display:none +} +#linkList ul { + margin: 0px; + padding: 0px; +} +#linkList li { + list-style-type: none; + display: block; + padding-top: 2px; + margin-bottom: 2px; +} +#linkList li a:link { + text-decoration: none; + border: none; +} +#linkList li a:visited { + text-decoration: none; + border: none; +} + +#linkList li a.c { + text-decoration: none; + border: none; +} + +/* extra divs */ +#extraDiv1 { + margin: 10px 0 0 410px; + background: url(sig.gif) no-repeat bottom right; +} + +/* css Zen Garden submission 016 - 'The Garden Beneath' by Minz Meyer - www.minzweb.de */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Minz Meyer */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+body {
+ background-image: url(deepblue.jpg);
+ background-position: top right;
+ background-color: #172E52;
+ background-repeat: no-repeat;
+ margin-top: 20px;
+ padding: 0px;
+ color: #88A3C9;
+ font: 0.8em/1.6 Tahoma, sans-serif;
+ letter-spacing: 0.1em;
+}
+
+#container {
+ background-color: transparent;
+ background-position: bottom left;
+ background-image: url(manta.jpg);
+ background-repeat: no-repeat;
+ width: 99%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+#pageHeader h1 {
+ background-image: url(zengarden.gif);
+ background-repeat: no-repeat;
+ width: 306px;
+ height: 36px;
+ margin: 0;
+}
+
+#pageHeader h1 span {
+ display: none;
+}
+
+#pageHeader h2 {
+ background-image: url(thebeauty.gif);
+ background-repeat: no-repeat;
+ width: 306px;
+ height: 24px;
+ margin: 0px;
+}
+
+#pageHeader h2 span {
+ display: none;
+}
+
+#pageHeader {
+ position: absolute;
+ right: 28px;
+ top: 195px;
+ width: 306px;
+}
+
+#extraDiv3 {
+ position: absolute;
+ right: 30px;
+ top: 280px;
+ background-image: url(preamble.gif);
+ background-repeat: no-repeat;
+ height: 156px;
+ width: 300px;
+ padding-bottom: 20px;
+ overflow: hidden;
+}
+
+#preamble {
+ margin-right: 420px;
+ margin-left: 25px;
+ padding: 5px;
+ border-top: 1px solid;
+ border-right: 1px solid;
+}
+
+#preamble h3 {
+ width: 190px;
+ height: 190px;
+ margin-top: 0;
+ display: inline;
+ float: left;
+ background-image: url(theroad.jpg);
+}
+
+#preamble h3 span {
+ display: none;
+}
+
+#preamble p {
+ margin-left: 25px;
+ margin-right: 15px;
+ font-style: italic;
+ text-align: justify;
+}
+
+#explanation {
+ margin-left: 10px;
+ margin-top: 30px;
+ margin-bottom: 100px;
+ margin-right: 370px;
+ padding: 5px;
+ border-top: 1px solid;
+ border-left: 1px solid;
+}
+
+#explanation h3 {
+ width: 150px;
+ height: 140px;
+ display: inline;
+ float: left;
+ background-image: url(whatabout.jpg);
+}
+
+#explanation h3 span {
+ display: none;
+}
+
+#explanation p {
+ margin-left: 25px;
+ margin-right: 15px;
+ text-align: justify;
+}
+
+#benefits {
+ margin-left: 150px;
+ margin-top: 30px;
+ margin-bottom: 100px;
+ margin-right: 340px;
+ padding: 5px;
+ border-top: 1px solid;
+ border-left: 1px solid;
+}
+
+#benefits h3 {
+ width: 150px;
+ height: 150px;
+ display: inline;
+ float: right;
+ background-image: url(benefits.jpg);
+}
+
+#benefits h3 span {
+ display: none;
+}
+
+#benefits p {
+ margin-left: 15px;
+ margin-right: 25px;
+ text-align: justify;
+}
+
+#participation {
+ margin-top: 30px;
+ margin-bottom: 110px;
+ margin-left: 50px;
+ margin-right: 335px;
+ padding: 5px;
+ border-top: 1px solid;
+ border-right: 1px solid;
+}
+
+#participation h3 {
+ width: 160px;
+ height: 155px;
+ margin-top: 15px;
+ display: inline;
+ float: left;
+ background-image: url(participate.jpg);
+ background-repeat: no-repeat;
+}
+
+#participation h3 span {
+ display: none;
+}
+
+#participation p {
+ margin-left: 25px;
+ margin-right: 15px;
+ text-align: justify;
+}
+
+#requirements {
+ margin-top: 30px;
+ margin-bottom: 100px;
+ margin-left: 130px;
+ margin-right: 150px;
+ padding: 5px;
+ border-top: 1px solid;
+ border-right: 1px solid;
+}
+
+#requirements h3 {
+ margin-top: 15px;
+ width: 160px;
+ height: 160px;
+ display: inline;
+ float: left;
+ background-image: url(requirements.jpg);
+ background-repeat: no-repeat;
+}
+
+#requirements h3 span {
+ display: none;
+}
+
+#requirements p {
+ margin-left: 25px;
+ margin-right: 15px;
+ text-align: justify;
+}
+
+#supportingText {
+ margin-top: 100px;
+
+}
+
+#linkList {
+ position: absolute;
+ color: #425162;
+ background-color: transparent;
+ top: 437px;
+ right: 30px;
+ width: 300px;
+ height: 450px;
+ background-image: url(navigation.gif);
+ background-repeat: no-repeat;
+ background-position: right;
+
+}
+
+#linkList2 {
+ margin-top: 30px;
+ margin-left: 20px;
+ margin-right: 25px;
+ width: 260px;
+ height: 350px;
+ overflow: auto;
+ font: 11px "Courier New", monospace;
+ color: #95A5BB;
+ background-color: transparent;
+}
+
+h3.select {
+ font: bold 12px "Courier New", monospace;
+ border: 1px solid;
+ margin-top: 10px;
+ margin-left: 10px;
+ margin-right: 10px;
+ margin-bottom: 0;
+ padding-left: 5px;
+ padding-right: 5px;
+ color: #1D2139;
+ background-color: #555764;
+}
+
+h3.archives {
+ font: bold 12px "Courier New", monospace;
+ border: 1px solid;
+ margin-top: 10px;
+ margin-left: 10px;
+ margin-right: 10px;
+ margin-bottom: 0;
+ padding-left: 5px;
+ padding-right: 5px;
+ color: #1D2139;
+ background-color: #555764;
+}
+
+h3.resources {
+ font: bold 12px "Courier New", monospace;
+ border: 1px solid;
+ margin-top: 10px;
+ margin-left: 10px;
+ margin-right: 10px;
+ margin-bottom: 0;
+ padding-left: 5px;
+ padding-right: 5px;
+ color: #1D2139;
+ background-color: #555764;
+}
+
+#linkList ul {
+ list-style: none;
+ margin-top: 0;
+}
+
+li {
+ margin-left: -15px;
+ margin-right: 15px;
+ margin-bottom: 0px;
+}
+
+li:hover {
+ margin-left: -15px;
+ margin-right: 15px;
+ background-color: #555764;
+ color: #1D2139;
+}
+
+a:link {
+ color: #C6B768;
+ background-color: transparent;
+ text-decoration: none;
+}
+
+a:visited {
+ color: #867833;
+ background-color: transparent;
+ text-decoration: line-through;
+}
+
+a:hover, a:focus {
+ color: #EBD678;
+ background-color: transparent;
+ text-decoration: underline;
+}
+
+#extraDiv1 {
+ position: absolute;
+ background-image: url(validation.gif);
+ background-repeat: no-repeat;
+ top: 887px;
+ right: 30px;
+ width: 300px;
+ height: 100px;
+ z-index: 1;
+}
+
+* html #footer {
+ width: 260px;
+ w\idth: 228px;
+}
+#footer {
+ font: 11px "Courier New", monospace;
+ position: absolute;
+ top: 922px;
+ right: 50px;
+ z-index: 2;
+ padding: 8px 15px;
+ height: 20px;
+ overflow: auto;
+ width: 228px;
+}
+
+#extraDiv2 {
+ position: absolute;
+ background-image: url(download.gif);
+ background-repeat: no-repeat;
+ top: 987px;
+ right: 30px;
+ width: 300px;
+ height: 100px;
+ z-index: 1;
+}
+* html #quickSummary {
+ width: 260px;
+ w\idth: 228px;
+}
+#quickSummary {
+ width: 228px;
+ position: absolute;
+ top: 1022px;
+ right: 50px;
+ z-index: 2;
+ padding: 0 15px;
+ height: 40px;
+ overflow: auto;
+}
+
+
+#quickSummary p.p1 {
+ display: none;
+}
+
+#quickSummary p.p2 {
+ margin-top: 4px;
+ color: #95A5BB;
+ background-color: transparent;
+ font: 11px "Courier New", monospace;
+}/* css Zen Garden submission 017 - 'Golden Mean' by Douglas Bowman, http://www.stopdesign.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Douglas Bowman*/
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* Design and CSS created by Douglas Bowman */
+/* www.stopdesign.com */
+
+/* structure +--------------------------------- */ +body { + margin:0; + padding:0; + background:#EBE8D0 url("bg_body.gif") repeat-x left top; + color:#333; + text-align:center; + font:x-small Georgia,Serif; + voice-family: "\"}\""; voice-family:inherit; + font-size:small; + } html>body {font-size:small;} +#container { + position:relative; + width:732px; + margin:0 auto; + text-align:left; + } +#intro { + border:1px solid #A79355; + border-width:0 1px; + } + + +/* hidden text +--------------------------------- */ +h1, h2, h3 { + margin:0; + background-repeat:no-repeat; + background-position:left top; + } +h1 span, h2 span, h3 span, #quickSummary p.p1 span {display:none;} + + +/* header and summary +--------------------------------- */ +#pageHeader h1 { + height:71px; + background:url("bg_zengarden.gif") no-repeat 35px 42px; + } +#pageHeader h2 { + height:115px; + background:url("bg_beautyof.jpg") no-repeat left top; + } +#quickSummary p.p1 { + height:76px; + margin:0; + background:url("bg_quicksum.gif") no-repeat 35px 18px; + } +#quickSummary p.p2 { + position:absolute; + top:78px; + right:35px; + width:200px; + margin:0; + font-size:93%; + line-height:1.3em; + text-align:right; + color:#A79355; + background-color:transparent; + } +#quickSummary p.p2 a:link, #quickSummary p.p2 a:visited { + white-space:nowrap; + font:bold 92%/1.3em Verdana,Arial,Sans-serif; + text-transform:uppercase; + } + + +/* preamble +--------------------------------- */ +#preamble { + position:absolute; + top:304px; + right:0; + width:180px; + } +#preamble h3 { + height:44px; + background-image:url("bg_road.gif"); + } +#preamble p { + margin:.5em 0; + font-size:93%; + font-style:italic; + line-height:1.7em; + color:#66472E; + background-color:transparent; + } + + +/* supporting text +--------------------------------- */ +#supportingText { + margin:0 200px; + border:1px solid #A79355; + border-width:0 1px; + padding-bottom:8px; + border-bottom:8px solid #BDAF83; + } +#supportingText p { + margin:.75em 0; + line-height:1.5em; + padding:0 20px; + } +#supportingText h3 { + height:40px; + border:1px solid #A79355; + border-width:1px 0; + margin:1em 0 .5em; + background-color:#D9D98B; + } +#explanation h3 { + height:80px; + background-image:url("bg_what.jpg"); + border-top-width:0; + margin:0 0 10px; + } +#participation h3 {background-image:url("bg_participation.jpg");} +#benefits h3 {background-image:url("bg_benefits.jpg");} +#requirements h3 {background-image:url("bg_requirements.jpg");} + + +/* link list +--------------------------------- */ +#linkList { + position:absolute; + top:306px; + left:0; + width:180px; + } +#linkList h3 {height:23px;} +#lselect h3 { + height:41px; + background-image:url("bg_select.gif"); + } +#larchives h3 {background-image:url("bg_archives.gif");} +#lresources h3 {background-image:url("bg_resources.gif");} +#linkList ul { + margin:1em 0 1.5em; + padding:0; + font-size:93%; + list-style:none; + } +#larchives li, #lresources li {text-transform:lowercase;} +#linkList ul li { + background:url("icon_diamond.gif") no-repeat 2px 50%; + margin:0 0 .5em; + padding:0 0 0 14px; + line-height:1.5em; + } +#linkList li a:link, #linkList li a:visited { + font-family:Verdana,Arial,Sans-serif; + font-weight:bold; + } +#linkList #lselect li { + background:url("icon_pg.gif") no-repeat 0 15%; + color:#A79355; + } +#linkList #lselect a:link, #linkList #lselect a:visited {display:block;} +#linkList #lselect a.c:link, #linkList #lselect a.c:visited { + display:inline; + font-family:Georgia,Serif; + font-weight:normal; + color:#616623; + background-color:transparent; + text-transform:lowercase; + } + + +/* footer +--------------------------------- */ +#footer { + background:#D9D98B url("bg_pattern.gif"); + color:#fff; + margin:1.75em 0 0; + padding:10px 20px; + border:1px solid #A79355; + border-width:1px 0; + font:85% Verdana,Arial,Sans-serif; + text-align:center; + } +#footer a:link, #footer a:visited { + padding:0 5px; + font-weight:normal; + } + + +/* links +--------------------------------- */ +a:link, a:visited { + color:#703F0E; + background-color:transparent; + font-weight:bold; + text-decoration:none; + } +a:hover { + color:#616623; + background-color:transparent; + text-decoration:underline; + } + + +/* misc +--------------------------------- */ +acronym {border-width:0;}/* css Zen Garden submission 018 - 'Wrapped in Burlap' by John Simons, http://www.royalbarrel.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, John Simons*/
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* Top-level stuff
+------------------------------*/
+body {
+ margin:10px 0 0 0;
+ padding:0;
+ font-family:verdana;
+ font-size:85%;
+ background-color:#fff;
+ }
+p {
+ margin-top:0;
+ }
+#container {
+ width:745px;
+ margin-left:30px;
+ position:relative;
+ background-color:#F7F0E9;
+ }
+
+/* Intro section
+------------------------------*/
+#intro {
+ position:relative;
+ background-color:white;
+ }
+#pageHeader {
+ background-image:url("title.gif");
+ background-repeat:no-repeat;
+ height:181px;
+ }
+#pageHeader h1, #pageHeader h2 span {
+ display:none;
+ }
+#pageHeader h2 {
+ width:75px;
+ height:84px;
+ background-image:url("small_tree.gif");
+ background-repeat:no-repeat;
+ position:absolute;
+ top:-10px;
+ left:690px;
+ margin:0;padding:0;
+ }
+
+#quickSummary {
+ text-align:right;
+ position:absolute;
+ top:75px;
+ left:500px;
+ width:245px;
+ font-size:100%;
+ font-style:italic;
+ font-family:times new roman, serif;
+ }
+#quickSummary p {
+ margin-bottom:0px;
+ }
+#quickSummary a {
+ color:#C52E00;
+ }
+
+/* Left-hand column
+------------------------*/
+#supportingText, #preamble {
+ width:505px;
+ background-image:url("burlap.jpg");
+ color:white;
+ line-height:140%;
+ }
+
+#supportingText p, #preamble p {
+ margin:0;
+ padding:4px 10px 10px 10px;
+ }
+#supportingText a, #preamble a {
+ color:#FFAF7F;
+ }
+
+#preamble h3, #supportingText h3 {
+ height:44px;
+ margin:0;
+ padding:0;
+ border-top:1px solid #F7F0E9;
+ border-bottom:1px solid #F7F0E9;
+ border-left:1px solid #735B5A;
+ }
+#preamble h3 { border-top-width:0px; }
+
+#preamble h3 span, #supportingText h3 span { display: none; }
+
+#preamble h3 { background-image:url("enlightenment.gif"); }
+#explanation h3 { background-image:url("whatabout.gif"); }
+#participation h3 { background-image:url("participation.gif"); }
+#benefits h3 { background-image:url("benefits.gif"); }
+#requirements h3 { background-image:url("requirements.gif"); }
+
+/* Footer
+-----------------------------*/
+#footer {
+ text-align:center;
+ background:#F7F0E9 url("footer_bg.jpg");
+ padding:8px 0px;
+ font-size:120%;
+ font-weight:bold;
+ }
+#footer a {
+ color:#583C3B;
+ text-decoration:none;
+ }
+#footer a:hover {
+ color:#D17B00;
+ }
+
+
+/* Link List
+------------------------------------*/
+#linkList {
+ position:absolute;
+ top:181px;
+ left:505px;
+ width:240px;
+ background-image:url("right_bg.jpg");
+ background-repeat:no-repeat;
+ color:#774747;
+ border-top:1px solid #E0D5CA;
+ font-weight:bold;
+ padding-bottom:200px;
+ line-height:140%;
+ }
+#linkList ul {
+ padding-left:30px;
+ margin-left:0px;
+ }
+#linkList li {
+ margin-bottom:15px;
+ }
+#linkList a {
+ color:#686057;
+ text-decoration:none;
+ }
+#linkList a:hover {
+ text-decoration:underline;
+ }
+#linkList a:visited {
+ color:#999189;
+ }
+
+/* To get a linebreak between title and author */
+#linkList #lselect a { display:block; }
+#linkList #lselect a:hover {color:#C52E00; }
+#linkList #lselect a.c { display:inline; }
+#linkList #lselect a.c:hover {color:#686057; }
+
+#linkList h3 {
+ margin:0; padding:0;
+ background-repeat:no-repeat;
+ height:46px;
+ }
+#linkList h3 span { display:none; }
+#linkList h3.select { background-image:url("select.gif"); }
+#linkList h3.archives { background-image:url("archives.gif"); }
+#linkList h3.resources { background-image:url("resources.gif"); }
+
+
+/* css Zen Garden submission 019 - 'What Lies Beneath' v1.01 by Michael Pick, http://www.mikepick.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Mike Pick */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body {
+ font: 11px/18px verdana;
+ color: #ffffff;
+ background: #000000 url(body-background.jpg) repeat-x;
+ margin: 0px;
+ margin-bottom: 20px;
+ width: 2300px;
+ }
+p {
+ font: 11px/18px verdana;
+ margin-top: 0px;
+ text-align: left;
+ }
+h3 {
+ font: 12pt georgia;
+ margin-top: 0px;
+ margin-bottom: 5px;
+ color: #ffffff;
+ }
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #E8AD62;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #E0922F;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ color: #FFCC00;
+ }
+
+
+/* specific divs */
+
+#pageheader {
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+
+#pageHeader h1 {
+ background: transparent url(title.jpg) no-repeat top left;
+ width: 2300px;
+ height: 85px;
+ margin-top: 70px;
+ }
+
+#pageHeader h1 span {
+ display:none
+ }
+
+#pageHeader h2 span {
+ display:none;
+ }
+
+#quickSummary {
+ position: absolute;
+ left: 55px;
+ top: 170px;
+ width: 250px;
+ z-index: 2;
+ }
+
+#quickSummary p {
+ font: italic 10px/16px georgia;
+ text-align: right;
+ }
+
+#preamble {
+ position: absolute;
+ background: transparent url(femur.jpg) no-repeat bottom left;
+ top: 170px;
+ left: 545px;
+ width: 300px;
+ height: 431px;
+ z-index: 2;
+ }
+
+#preamble h3 {
+ background: transparent url(the_road.jpg) no-repeat top left;
+ width: 300px;
+ height: 25px;
+ }
+
+#preamble h3 span {
+ display: none;
+ }
+
+#supportingText {
+ }
+
+#explanation {
+ position: absolute;
+ top: 170px;
+ left: 865px;
+ width: 300px;
+ z-index: 2;
+ }
+
+#explanation h3 {
+ background: transparent url(so_what.jpg) no-repeat top left;
+ width: 300px;
+ height: 25px;
+ }
+
+#explanation h3 span {
+ display: none;
+ }
+
+#participation {
+ position: absolute;
+ background: transparent url(tin_can.jpg) no-repeat top left;
+ top: 170px;
+ left: 1185px;
+ width: 300px;
+ z-index: 2;
+ padding-bottom: 40px;
+ }
+
+#participation h3 {
+ background: transparent url(participation.jpg) no-repeat top left;
+ width: 300px;
+ height: 25px;
+ }
+
+#participation h3 span {
+ display: none;
+ }
+
+#benefits {
+ background: transparent url(ants.jpg) no-repeat top left;
+ position: absolute;
+ top: 170px;
+ height: 450px;
+ left: 1505px;
+ width: 300px;
+ z-index: 2;
+ }
+
+#benefits h3 {
+ background: transparent url(benefits.jpg) no-repeat top left;
+ width: 300px;
+ height: 25px;
+ }
+
+#benefits h3 span {
+ display: none;
+ }
+
+#requirements {
+ position: absolute;
+ top: 170px;
+ left: 1825px;
+ width: 300px;
+ z-index: 2;
+ padding-bottom: 40px;
+ }
+
+#requirements h3 {
+ background: transparent url(requirements.jpg) no-repeat top left;
+ width: 300px;
+ height: 25px;
+ }
+
+#requirements h3 span {
+ display: none;
+ }
+
+#requirements p {
+ font: 9px/15px verdana;
+ }
+
+#footer {
+ position: absolute;
+ background: transparent url(worm.jpg) no-repeat;
+ text-align: right;
+ top: 170px;
+ left: 2145px;
+ width: 100px;
+ height: 325px;
+ z-index: 2;
+ }
+
+#footer a:link, #footer a:visited {
+ display: block;
+ }
+
+#linkList {
+ position: absolute;
+ left: 325px;
+ top: 170px;
+ width: 200px;
+ z-index: 2;
+ }
+
+#linkList2 {
+ font: 9px verdana, sans-serif;
+ }
+
+#linkList h3.select {
+ background: transparent url(select.jpg) no-repeat top left;
+ width: 200px;
+ height: 25px;
+ }
+
+#linkList h3.select span {
+ display:none
+ }
+#linkList h3.favorites {
+ background: transparent url(favorites.jpg) no-repeat top left;
+ margin-top: 15px;
+ width: 200px;
+ height: 25px;
+ }
+#linkList h3.favorites span {
+ display:none
+ }
+#linkList h3.archives {
+ background: transparent url(archives.jpg) no-repeat top left;
+ margin-top: 15px;
+ width: 200px;
+ height: 25px;
+ }
+#linkList h3.archives span {
+ display:none
+ }
+#linkList h3.resources {
+ background: transparent url(resources.jpg) no-repeat top left;
+ margin-top: 15px;
+ width: 200px;
+ height: 25px;
+ }
+#linkList h3.resources span {
+ display:none
+ }
+
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li {
+ line-height: 2.5ex;
+ list-style-type: none;
+ display: block;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ }
+#linkList li a:link {
+ color: #E8AD62;
+ }
+#linkList li a:visited {
+ color: #E0922F;
+ }
+#linklist li a:hover, a:active {
+ color: #00CCFF;
+ }
+
+#extraDiv1 {
+ background: transparent url(mole.jpg) bottom left no-repeat;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 2300px;
+ height: 630px;
+ z-index: 1;
+ }/* css Zen Garden submission 020 - 'Friendly Beaches' by Sophie G - www.sophie-g.net */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Sophie G */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
body { + background-color: #FFF; + margin: 0px; + padding: 10px; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 90%; +}
p { + line-height: 180%; + }
+#container { + background-color: #EDEEF0; + border: 1px solid #DAD5D9; + padding: 0px; + margin: 0px; +} +acronym { + border-bottom: 1px #6BA0D2 dashed; +} +#pageHeader { + font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; + background-color: #A4ACB3; +} +#pageHeader h1 { + height: 190px; + margin: 0px; + background-image: url(headerh1.jpg); + background-repeat: no-repeat; +} +#pageHeader h1 span, #pageHeader h2 span { + display: none; +} +#pageHeader h2 { + background-color: #EDEEF0; + margin: 0px; + height: 24px; + padding: 0px 14px 2px 14px; + background-image: url(headerh2.gif); + background-repeat: no-repeat; +} +#pageHeader h2 acronym { + color: #FFF; + border-bottom: 1px #FFF dashed; +} +#quickSummary p.p1 { + position: absolute; + right: 21px; + top: 21px; + width: 12em; + height: 168px; + padding: 0px; + margin: 0px; + border: 1px solid #0C2953; + text-align: center; + font-size: 90%;
font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; + line-height: 110%;
color: #FFF; + background-image: url(summary.jpg); + background-repeat: no-repeat; + background-position: 50% 100%; + background-color: #0C2953; +} +#quickSummary p.p1 span { + display: block; + padding: 3px; +} +#preamble { + padding: 0px 15em 0px 3em; +} +#preamble h3 { + margin: 15px 0px 0px 0px; + padding: 6px 20px 2px 6px; + text-align: left; + font-size: 180%; + font-variant: small-caps; + color: #6BA0D2; + background-image: url(bordDroitPreambleh3.gif); + background-repeat: no-repeat; + background-position: 100% 0px; + background-color: #F6F7F7; +} +#preamble h3 span { + display: block; + padding: 20px 0px 15px 48px; + background-image: url(preambleShell.jpg); + background-repeat: no-repeat; + background-position: 0px 50%; +} +#preamble p { + text-align: justify; +} +#preamble p.p1, #preamble p.p2 { + margin: 0px; + padding: 10px 20px 2px 6px; + background-image: url(bordDroitPreamble.gif); + background-repeat: repeat-y; + background-position: 100% 0px; + background-color: #F6F7F7; +} +#preamble p.p3 { + margin: 0px; + padding: 0px; + background-image: url(bordBasPreamble.gif); + background-repeat: no-repeat; + background-position: 100% 100%; + background-color: #F6F7F7; +} +#preamble p.p1 span, #preamble p.p2 span, #preamble p.p3 span { + display: block; +} +#preamble p.p3 span { + margin: 0px; + padding: 10px 20px 20px 6px; + background-image: url(bordBasPreambleGauche.gif); + background-repeat: no-repeat; + background-position: 0% 100%; +} +#preamble p:first-letter, #preamble p span:first-letter { + color: #6BA0D2; + font-size: 140%; + font-weight: bold; + margin: 0px 2px 0px 0px; +} +#supportingText { + margin: 0px; + padding: 10px 16em 0px 1em; + font-size: 90%; +} +#explanation, #participation, #benefits, #requirements { + border: 2px solid #FFF; + padding: 0px; +} +#explanation { + margin: 0px 0px 10px 0px; +} +#participation { + margin: 0px 0px 10px 0px; + float: left; + width: 30%; +} +#benefits { + margin: 0px 0px 10px 32%; +} +#requirements { + margin: 0px 0px 10px 32%; +} +#supportingText h3 { + margin: 0px; + padding: 5px 30px 1px 2px; + text-align: left; + font-size: 120%; + font-variant: small-caps; + color: #6BA0D2; + border-bottom: 1px solid #6BA0D2; + background-color: #F6F7F7; + background-repeat: no-repeat; + background-position: 100% 50%; +} +#explanation h3 { + background-image: url(explanationShell.jpg); +} +#participation h3 { + background-image: url(participationShell.jpg); +} +#benefits h3 { + background-image: url(benefitsShell.jpg); +} +#requirements h3 { + background-image: url(requirementsRock.jpg); +} +#supportingText p { + text-align: justify; + margin: 10px 0px 0px 0px; + padding: 1px 3px 2px 3px; +} +#supportingText p:first-letter, #supportingText p span:first-letter { + font-weight: bold; +} +#supportingText a:link { + color: #0083FF; + font-weight: bold; +} +#supportingText a:visited { + color: #204160; + font-weight: bold; +} +#supportingText a:hover, #supportingText a:active { + color: #8C0000; + font-weight: bold; + text-decoration: none; +} +#linkList, #quickSummary p.p2 { + font-size: 90%; + font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; + position: absolute; + right: 21px; + width: 12em; + border: 1px solid #0C2953; + padding: 0px; + margin: 0px; + background-color: #A4ACB3; +} +#quickSummary p.p2 { + height: 50px; + text-align: center; + top: 217px; +} + +#quickSummary p.p2 span { + font-size: 90%; + display: block; + padding: 3px; + color: #FFF; +} +#linkList { + top: 266px; +} +#linkList h3 { + background-color: #0C2953; + color: #FFF; + margin: 0px; + padding: 30px 1px 1px 1px; + background-repeat: no-repeat; +} +#linkList h3.select { + background-image: url(selecth3.jpg); + background-position: 50% 0%; +} +#linkList h3.favorites { + border-top: 1px solid #0C2953; + background-image: url(favoritesh3.jpg); + background-position: 40% 100%; +} +#linkList h3.archives { + border-top: 1px solid #0C2953; + background-image: url(archivesh3.jpg); + background-position: 40% 100%; +} +#linkList h3.resources { + border-top: 1px solid #0C2953; + background-image: url(resourcesh3.jpg); + background-position: 50% 30%; +} +#linkList h3:first-letter, #linkList h3 span:first-letter { + color: #FFF; + font-size: 160%; +} +#linkList ul { + list-style-type: none; + font-size: 90%; + color: #FFF; + margin: 0px; + padding: 0px; + background-color: #A4ACB3; +} +#linkList li { + padding: 3px 2px 3px 2px; + margin-bottom: 4px; +} +#linkList li:hover { + padding: 2px 1px 2px 1px; + border: 1px dotted #0C2953; + background-color: #6BA0D2; +} +#quickSummary p.p2 span a:link { + color: #FFF; + font-weight: bold; +} +#quickSummary p.p2 span a:visited { + color: #204160; +} +#quickSummary p.p2 span a:hover, #quickSummary p.p2 span a:active { + color: #FFD800; + font-weight: bold; + text-decoration: none; +} +#linkList a:link, #linkList a:visited { + border-left: 6px solid #FFF; + padding-left: 2px; + font-weight: bold; + color: #FFF; +} +#linkList a:visited { + color: #204160; +} +#linkList a:hover, #linkList a:active { + border-left: 6px solid #FFD800; + padding-left: 2px; + color: #FFD800; + text-decoration: none; + font-weight: bold; +} +#linkList a.c:link, #linkList a.c:visited { + border-left: none; + padding-left: 0px; + font-weight: normal; + color: #FFF; +} +#linkList a.c:hover, #linkList a.c:active { + border-left: none; + padding-left: 0px; + color: #FFD800; + text-decoration: none; +} +#linkList acronym { + border-bottom: 1px #FFF dashed; +} +#footer { + clear: both; + text-align: right; + margin: 0px -16em 0px 0px; + padding: 25px 0px 0px 0px; + background-repeat: no-repeat; + background-image: url(signSoph.gif); + background-position: 0% 95%; +} +#footer a { + font-size: 70%; + font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; +}/* css Zen Garden submission 021 - 'Calm & Smooth' by Cornelia Lange - http://www.clkm.de/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Cornelia Lange */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+ +/* elements */ +body { +color: #000; +background: #F1ECE3 url(topbg.gif) repeat-x; +font: 90% Verdana, Arial, Helvetica, sans-serif; +} +body, html, h1, h2, h3, p, ul, li, div { +margin: 0; +padding: 0; +} +p { +font-size: .82em; +line-height: 140% +} +a { +color: #069; +font-weight: bold; +text-decoration: none; +background: transparent; +} +a:visited { +color: #000; +background: transparent; +} +a:hover { +text-decoration: underline; +color: #900; +background: transparent; +} +ul, li { +display: block; +list-style: none; +} +acronym { +border: 0 none; +} + +/* divs and related classes */ +#pageHeader h1 { +font: bold 3.2em Arial, Helvetica, sans-serif; +color: #8ab; +background: transparent; +position: absolute; +top: 340px; +left: 256px; +z-index: 5; +text-transform: lowercase; +} +#pageHeader h2 { +position: absolute; +left: 20px; +top: 68px; +display: block; +width: 138px; +height: 88px; +font: bold 1em Arial, Helvetica, sans-serif; +color: #449498; +background: transparent url(cssdesign.gif) top left no-repeat; +} +#pageHeader h2 span { +display: none; +} + +#quickSummary { +width: 200px; +margin: 235px 0 20px 15px; +padding: 20px 0 0 0; +font-size: 0.92em; +} +#quickSummary .p2 { +padding-top: 10px; +} + +#preamble { +margin: 0 0 0 13.5em; +color: #000; +background: transparent url(enlightenment.gif) top left no-repeat; +height: 6em; +clear: both; +padding: 5.8em 0 0 4.7em; +} +#preamble h3 span { +display: none; +} +#preamble .p1, #preamble .p2, #preamble .p3 { +display: block; +float: left; +} +#preamble .p1 { +margin: 10px 20px 15px 0; +width: 160px; +} +#preamble .p2 { +margin: 10px 20px 15px 0; +width: 230px; +} +#preamble .p3 { +margin: 10px 15px 15px 0; +width: 270px; +} +#preamble p:first-letter { +font: bold 1.2em Tahoma, 'Trebuchet MS', Arial, Helvetica, sans-serif; +color: #900; +background: transparent; +} + +/* supportingText */ +#supportingText { +margin: 0 0 0 13.5em; +clear: both; +} +#supportingText .p1, #supportingText .p2, #supportingText .p3, #supportingText .p4, #supportingText .p5 { +display: block; +float: left; +} +#supportingText p:first-letter { +font: bold 1.2em Tahoma, 'Trebuchet MS', Arial, Helvetica, sans-serif; +color: #900; +background: transparent; +text-transform: capitalize; +} + +#explanation { +display: block; +color: #000; +background: transparent url(buddha.gif) top left no-repeat; +height: 4em; +clear: both; +padding: 6.5em 0 0 4.7em; +} +#explanation h3 span { +display: none; +} +#explanation .p1 { +width: 320px; +margin: 10px 20px 15px 0; +} +#explanation .p2 { +width: 360px; +margin: 10px 20px 15px 0; +} + +#participation { +display: block; +height: 4em; +color: #000; +background: transparent url(participation.gif) top left no-repeat; +clear: both; +padding: 6em 0 0 4.7em; +} +#participation h3 span, #benefits h3 span { +display: none; +} +#participation .p1 { +width: 390px; +margin: 10px 20px 15px 0; +} +#participation .p2 { +width: 290px; +margin: 10px 20px 15px 0; +} +#participation .p3 { +width: 390px; +margin: 10px 20px 15px 0; +clear: left; +} +#participation .p4 { +width: 290px; +margin: 10px 20px 15px 0; +} + +#benefits { +display: block; +height: 4em; +margin: 30px 0 0 0; +color: #000; +background: transparent url(benefits.gif) top left no-repeat; +clear: both; +padding: 6.2em 0 0 4.7em; +} +#benefits p { +width: 460px; +margin: 10px 20px 15px 0; +} + +#requirements { +display: block; +height: 4em; +margin: 30px 0 0 0; +color: #000; +background: transparent url(requirements.gif) top left no-repeat; +clear: both; +padding: 7.3em 0 0 4.7em; +} +#requirements h3 span { +display: none; +} +#requirements .p1 { +width: 230px; +margin: 10px 20px 15px 0; +} +#requirements .p2 { +width: 450px; +margin: 10px 20px 15px 0; +} +#requirements .p3 { +width: 230px; +margin: 10px 20px 15px 0; +clear: left; +} +#requirements .p4 { +width: 450px; +margin: 10px 20px 15px 0; +} +#requirements .p5 { +width: 450px; +margin: 10px 20px 15px 0; +clear: left; +} + +#footer { +border-top: 1px dashed #999; +padding-top: 5px; +margin: 20px 30px 20px 5em; +clear: both; +font-size: .82em; +padding-left: 0.7em; +} +#footer a { +padding: 0 10px 0 15px; +color: #069; +background: transparent url(link.gif) left no-repeat; +} +#footer a:link, #footer a:visited { +color: #069; +background: transparent url(link.gif) left no-repeat; +} +#footer a:hover, #footer a:active { +color: #900; +background: transparent url(linkhover.gif) left no-repeat; +} + +/* left Menu */ +#linkList { +font-size: .82em; +position: absolute; +top: 33.6em; +left: 15px; +float: left; +width: 18em; +} +#linkList h3 { +color: #900; +background: transparent; +font-size: 1.2em; +padding: 1em 0 0.4em 0; +margin: 10px 0 0 0; +} + +#linkList ul { +margin-top: 0.5em; +} +#lselect li { +display: block; +height: 2.5em; +margin-top: 0.5em; +padding: 0 0 3px 20px; +background: transparent url(css.gif) 0 3px no-repeat; +} +#lselect a { +display: block; +} +#lselect a.c { +display: inline; +font-weight: normal; +} +#lselect a:hover.c { +display: inline; +font-weight: normal; +} + +#larchives li { +padding: 0 0 10px 0; +text-transform: lowercase; +color: #069; +background: transparent url(linkhover.gif) 0 3px no-repeat; /* preload hoverimage */ +} +#larchives a { +padding: 0 0 10px 20px; +} +#larchives a:link { +color: #069; +background: #F1ECE3 url(link.gif) 0 3px no-repeat; +} +#larchives a:visited { +color: #000; +background: #F1ECE3 url(link.gif) 0 3px no-repeat; +} +#larchives a:hover, #larchives a:active { +color: #900; +background: #F1ECE3 url(linkhover.gif) 0 3px no-repeat; +text-decoration: none; +} + +#lresources li { +padding: 0 0 10px 0; +text-transform: lowercase; +color: #069; +background: transparent url(linkhover.gif) 0 3px no-repeat; /* preload hoverimage */ +} +#lresources a { +padding: 0 0 10px 20px; +} +#lresources a:link { +color: #069; +background: #F1ECE3 url(link.gif) 0 3px no-repeat; +} +#lresources a:visited { +color: #000; +background: #F1ECE3 url(link.gif) 0 3px no-repeat; +} +#lresources a:hover, #lresources a:active { +color: #900; +background: #F1ECE3 url(linkhover.gif) 0 3px no-repeat; +text-decoration: none; +} + + +/* images */ + +#extraDiv1 { +position: absolute; +top: 0; +left: 150px; +width: 412px; +height: 218px; +color: #000; +background: transparent url(beauty.gif) top left no-repeat; +z-index: 5; +} +#extraDiv2 { +position: absolute; +top: 218px; +left: 139px; +width: 582px; +height: 17px; +color: #fff; +background: transparent url(streifen.gif) top left no-repeat; +} +#extraDiv3 { +position: absolute; +top: 0; +right: 0; +width: 199px; +height: 218px; +color: #000; +background: transparent url(graeser.gif) top right no-repeat; +z-index: 2; +} +#extraDiv4 { +position: absolute; +top: 235px; +left: 244px; +width: 350px; +height: 175px; +color: #000; +background: transparent url(seerosen.gif) top left no-repeat; +} + + + + +/* css Zen Garden submission 022 - 'viridity' by Laura MacArthur - http://www.tunnel-vision.org/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Laura MacArthur */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+ +
/* based once upon a time on the css Zen Garden default style v1.01 Dave Shea*/ +
/* basic stuff */ +html>body, html>body td, html>body th { + font-size: small; +} +body { + font: 10px/16px Arial, Helvetica, sans-serif; + color: #330033; + background: #669999 url(z_bgrnd.gif) repeat-x 0px 1px; + margin: 0px; + } +/*rinse and repeat*/ +div, p, th, td, li, dd, dl, dt { + font-family: Arial, Helvetica, sans-serif; +} +p { + font: 10px/18px Arial, Helvetica, sans-serif; + margin-right: 15px; + margin-left: 20px; + margin-top: 5px; + margin-bottom: 5px; + padding-right: 15px; + padding-left: 20px; + padding-top: 5px; + padding-bottom: 5px; + letter-spacing: 1px; + text-align: justify; + } +h3 { + color: #336666; + background-color: transparent; + font: bold 14px "Trebuchet MS", Arial, Helvetica, sans-serif; + letter-spacing: 4px; + text-transform: lowercase; + } +a:link { + color: #CCFFFF; + background-color: transparent; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + font-weight: bold; + text-decoration: none; + } +a:visited { + color: #003333; + background-color: #669999; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + font-weight: bold; + text-decoration: none; + } +a:hover, a:active { + color: #006666; + background-color: #CCFFFF; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + font-weight: bold; + text-decoration: none; + } +/* specific divs */ +/*outermost div*/ +#container { + position: absolute; + margin-top: 0px; + top: 0px; + left: 0px; + width: 75%; + height: auto; + z-index: 2; + padding-left: 130px; + } +/* where the logos are */ +#pageHeader { + width: 575px; + height: 65px; + position: absolute; + left: 0px; + top: 0px; + padding-top: 31px; + } +/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */ +/*and this trick totally rocks*/ +#pageHeader h1 { + background: transparent url(zh1_combo.gif) no-repeat 0px 0px; + width: 575px; + height: 65px; + float: left; + top: 0px; + margin-top: 0px; + } +#pageHeader h1 span { + display:none; + } +#pageHeader h2 span { + display:none; + } +#preamble h3 { + background: #CCFFFF url(h3_preamble.gif) no-repeat left top; + color: #003333; + margin-top:0px; + margin-bottom:0px; + height: 25px; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: #003333; +} +#preamble h3 span{ + display:none; + } +#explanation h3 { + background: #CCFFFF url(h3_support1.gif) no-repeat left top; + color: #003333; + margin-top:0px; + margin-bottom:0px; + height: 25px; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: #003333; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #003333; + } +#explanation h3 span{ + display:none; + } +#participation h3 { + background: #CCFFFF url(h3_support2.gif) no-repeat left top; + color: #003333; + margin-top:0px; + margin-bottom:0px; + height: 25px; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: #003333; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #003333; + } +#participation h3 span{ + display:none; + } +#benefits h3 { + background: #CCFFFF url(h3_support3.gif) no-repeat left top; + color: #003333; + margin-top:0px; + margin-bottom:0px; + height: 25px; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: #003333; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #003333; + } +#benefits h3 span{ + display:none; + } +#requirements h3 { + background: #CCFFFF url(h3_support4.gif) no-repeat left top; + color: #003333; + margin-top:0px; + margin-bottom:0px; + height: 25px; + border-bottom-width: 3px; + border-bottom-style: solid; + border-bottom-color: #003333; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #003333; + } +#requirements h3 span{ + display:none; + } +/* blurb */ +#quickSummary { + color: #CCCCCC; + background-color: transparent; + width: 75%; + height: auto; + display: block; + padding-top: 125px; + } +#quickSummary p { + font: italic normal 10px/16px "Trebuchet MS", Arial, Helvetica, sans-serif; + text-align:left; + padding-top: 5px; + } +/* written intro - first paragraph */ +#preamble { + color: #333333; + background-color: #99CCCC; + width: 70%; + clear: right; + margin-bottom: 10px; + padding-bottom: 10px; + border: 1px solid #003333; + } +#preamble a:link { + color: #CCFFFF; + background-color: #669999; +} +#preamble a:hover, a:active { + color: #006666; + background-color: #CCFFFF; + } +/* the rest */ +#supportingText { + color: #333333; + background-color: #99CCCC; + width: 70%; + clear: right; + height: auto; + border: 1px solid #003333; + background-image: url(z_twig.gif); + background-repeat: no-repeat; + background-position: right bottom; + } +#supportingText a:link { + color: #CCFFFF; + background-color: #669999; +} +#supportingText a:hover, a:active { + color: #006666; + background-color: #CCFFFF; + } +#footer { + color: #CCCCCC; + background-color: #006666; + text-align: center; + border: 1px solid #003333; + background-image: url(z_trim.png); + background-repeat: repeat-x; + background-position: 0px 0px; + height: 32px; + } +/* link-tastic */ +#linkList { + position: absolute; + top: 114px; + left: 0px; + z-index: auto; + } +#linkList2 { + color: #333333; + background-color: transparent; + font: 10px "Trebuchet MS", Arial, Helvetica, sans-serif; + width: 130px; + height: auto; + padding: 0px 0px 10px; + margin-top: 0px; + text-align: right; + margin-right: 0px; + margin-bottom: 10px; + margin-left: 0px; + border-right-width: 1px; + border-right-style: solid; + border-right-color: #003333; + } +#linkList h3.select { + background: transparent url(zh3_select.gif) no-repeat 0px 0px; + margin: 0px 0px 5px; + width: 130px; + height: 100px; + } +#linkList h3.select span { + display:none; + } +#linkList h3.favorites { + background: transparent url(zh3_favs.gif) no-repeat left top; + margin: 25px 0px 5px; + width: 130px; + height: 50px; + } +#linkList h3.favorites span { + display:none; + } +#linkList h3.archives { + background: transparent url(zh3_arch.gif) no-repeat left top; + margin: 25px 0px 5px; + width:130px; + height: 50px; + } +#linkList h3.archives span { + display:none; + } +#linkList h3.resources { + background: transparent url(zh3_res.gif) no-repeat left top; + margin: 25px 0px 5px; + width:130px; + height: 50px; + } +#linkList h3.resources span { + display:none; + } +#linkList ul { + margin: 0px 5px; + padding: 0px 5px; + } +#linkList li { + line-height: 2.5ex; + list-style-type: none; + display: block; + padding-top: 5px; + margin-bottom: 5px; + } +/* leaf */ +#extraDiv1 { + background-image: url(z_cont.gif); + background-repeat: no-repeat; + position: absolute; + z-index: 1; + left: 315px; + top: 114px; + height: 299px; + width: 330px; +} +/* css Zen Garden submission 023 - 'fleur de l'avant-garde' by Michael Switzer, http://propagandabydesign.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Michael Switzer */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body { + margin: 0; + padding: 0; + border: 0; + text-align: center; + vertical-align: top; + overflow: visible; + background: #fff url(bg.gif) repeat-x; + font: x-small Verdana,sans-serif; + color: #333; + } + + + +p, h3 { + margin: 0; + padding: 0 0px 5px 0; + } + +ul { + margin: 0; + padding: 2px 0 5px 0; + } + +acronym { + border-bottom: 1px dashed #4C83AE; + } + +a acronym { + border-bottom: 0; + } + +a:link { + font-weight: 900; + color: #4C83AE; + text-decoration: none; + } + +a:visited { + font-weight: 900; + color: #999; + text-decoration: none; + } + +a:hover, +a:active { + font-weight: 900; + color: #9B3F17; + } + +#container { + position: relative; + top: 0; + margin: 0 auto; + text-align: left; + border-left: 1px dashed #666; + border-right: 1px dashed #666; + background: #FFF url(mainbg.jpg) no-repeat; + width: 770px; + height: 720px; + padding: 0; + display: block; + } + +/* page intro and subsections */ +#pageHeader { + position: absolute; + top: 30px; + left: 520px; + display: block; + margin: 0; + padding: 0; + width: 245px; + height: 30px; + background: transparent url(logo.gif) no-repeat; + border: 0; + } + +#quickSummary p.p1 { + position: absolute; + top: 293px; + left:640px; + width: 122px; + margin: 0; + padding: 0; + display: block; + text-align: right; + font: italic 14px/12px Garamond, Times, serif; + color: #9B3F17; + line-height: 1.2; + } + +#quickSummary p.p2 { + position: absolute; + top: 72px; + left: 0px; + width:760px; + text-align: right; + font: 9px Verdana, sans-serif; + color: #999999; + z-index: 2; + } + +#preamble { + position: absolute; + top: 97px; + left: 230px; + width: 540px; + height: 173px; + padding: 0; + margin: 0 10 0 0; + display: block; + overflow: auto; + } + +#preamble h3 { + background: transparent url(roadtoenlightenment.gif) no-repeat top left; + width: 257px; + height: 27px; + margin: 5px 0px 0px 5px; + } + +#preamble p { + margin: -2px 88px 7px 18px; + font: 11px/7px Tahoma,sans-serif; + line-height: 1.2; + color: #fff; + } + +/* main text and subsections */ +#supportingText { + position: absolute; + top: 290px; + left: 180px; + width: 440px; + margin: 0; + padding: 0; + display: block; + } + +#supportingText p { + font: x-small Verdana,sans-serif; + color: #333; + text-align: justify; + } + +#explanation { + position: relative; + top: 0; + left: 0; + display: block; + width: 440px; + } + +#explanation h3 { + width: 258px; + height: 21px; + margin: 0; + padding: 0; + display: block; + background: transparent url(sowhatisthisabout.gif) no-repeat; + } + +#participation { + float: left; + width: 210px; + padding: 0; + margin: 10px 0; + } + +#participation h3 { + width: 210px; + height: 21px; + margin: 0; + padding: 0; + display: block; + background: transparent url(participation.gif) no-repeat; + } + +#benefits { + float: right; + width: 210px; + padding: 0; + margin: 10px 0; + } + +#benefits h3 { + width: 210px; + height: 21px; + margin: 0; + padding: 0; + display: block; + background: transparent url(benefits_old.gif) no-repeat; + } + +#requirements { + float: right; + width: 210px; + padding:0; + margin: 10px 0; + } + +#requirements h3 { + width: 210px; + height: 21px; + margin: 0; + padding: 0; + display: block; + background: transparent url(requirements.gif) no-repeat; + } + +#footer { + width: 210px; + display: block; + text-align: right; + } + +#footer a { + display: block; + font: 9px Verdana, sans-serif; + font-weight: 900; + } + +/* links and subsections */ +#linkList { + position: absolute; + top: 321px; + left: 6px; + width: 150px; + height: 66%; +} + +#linkList div { + padding-bottom: 10px; + } + +#linkList ul { + margin-left: 5px; + list-style: none; + color: #fff; + } + +#linkList ul li a { + display: block; + } + +#linkList ul li a:link { + font-weight: 900; + color: #4C83AE; + } + +#linkList ul li a:visited { + font-weight: 900; + color: #999999; + } + +#linkList ul li a:hover, +#linkList ul li a:active { + font-weight: 900; + color: #9B3F17; + } + +#linkList ul li a.c { + display: inline; + } + +#linkList ul li a.c:link { + font-weight: 500; + color: #4C83AE; + } + +#linkList ul li a.c:visited { + font-weight: 500; + color: #999; + } + +#linkList ul li a.c:hover, +#linkList ul li a.c:active { + font-weight: 500; + color: #9B3F17; + } + +#lselect h3 { + width: 139px; + height: 19px; + background: transparent url(selectdesign.gif) no-repeat; + } + +#larchives h3 { + width: 75px; + height: 16px; + background: transparent url(archives.gif) no-repeat; + } + +#lfavorites h3 { + width: 89px; + height: 19px; + background: transparent url(favorites.gif) no-repeat; + } + +#lresources h3 { + width: 91px; + height: 19px; + background: transparent url(resources.gif) no-repeat; + } + +#pageHeader h1, +#pageHeader h2, +#preamble h3 span, +#supportingText h3 span, +#linkList h3 span { + display: none; + }/* css Zen Garden submission 024 - 'Not So Minimal' by Daniel Rubin, http://www.superfluousbanter.org// */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Daniel Rubin */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+ +
/* global
----------------------------------------------- */
body {
background: #fff url(bg.gif) no-repeat fixed top left;
font-family: verdana, helvetica, arial, sans-serif;
margin: 0 20px 0 20px;
color: #333;
}
/* layout
----------------------------------------------- */
#container {
position: relative;
background: url(header.jpg) no-repeat top left;
margin: 0 auto -1px auto;
padding-top: 144px;
width: 710px;
border-bottom: 5px solid #09345f;
}
#pageHeader {
display: none;
}
#quickSummary {
width: 100%;
text-align: right;
}
#quickSummary p.p1 {
display: none;
}
#quickSummary p.p2 {
margin-top: 0;
padding-right: 5px;
}
#preamble {
margin: 22px 0 0 176px;
width: 529px;
}
#explanation, #participation, #benefits, #requirements {
margin: 25px 0 0 176px;
width: 529px;
}
#footer {
margin: 0 0 5px 0;
padding: 10px 0 0 0;
width: 100%;
text-align: center;
}
#linkList {
position: absolute;
width: 150px;
top: 166px;
left: 5px;
}
/* text
----------------------------------------------- */
p {
font-size: 12px;
}
#preamble p.p1, #supportingText p.p1 {
margin-top: 10px;
}
#preamble p, #supportingText p {
line-height: 18px;
}
#quickSummary p.p2 {
font-size: 9px;
color: #999;
}
#footer {
font-size: 9px;
}
/* lists
----------------------------------------------- */
#linkList ul {
font-size: 10px;
list-style:none;
margin: 5px 0 0 0;
padding: 0 0 0 0;
}
#linkList ul li {
background: url(bullet_single.gif) no-repeat 7px 4px;
margin: 0;
padding: 0 0 0 17px;
line-height: 14px;
color: #ccc;
}
#linkList #lselect li {
background: url(bullet_double.gif) no-repeat 5px 2px;
font-size: 9px;
}
#linkList #lselect a:link, #linkList #lselect a:visited { display: block; }
#linkList #lselect a.c:link, #linkList #lselect a.c:visited { display:inline; }
#larchives li, #lresources li { text-transform: lowercase; }
/* links
----------------------------------------------- */
a, a:link, a:visited {
color: #999;
}
a:hover {
color: #333;
}
#quickSummary a, #quickSummary a:link, #quickSummary a:visited {
font-weight: bold;
text-transform: uppercase;
text-decoration: none;
}
#quickSummary a:hover {
text-decoration: underline;
}
#linkList a, #linkList a:link, #linkList a:visited {
color: #666;
text-decoration: none;
}
#linkList a:hover {
text-decoration: underline;
color: #333;
}
#linkList a.c, #linkList a.c:link, #linkList a.c:visited {
color: #999;
text-decoration: none;
}
#linkList a.c:hover {
text-decoration: underline;
color: #333;
}
#linkList #lselect a {
font-size: 10px;
}
#linkList #lselect a.c {
font-size: 9px;
text-transform: lowercase;
}
#footer a, #footer a:link, #footer a:visited {
font-weight: bold;
text-transform: uppercase;
text-decoration: none;
}
#footer a:hover {
text-decoration: underline;
}
/* headings
----------------------------------------------- */
h3 { margin-bottom: 0px; }
h3 span { display: none; }
#supportingText h3 {
width: 529px;
height: 15px;
}
#linkList h3 {
width: 150px;
height: 20px;
margin-top: 20px;
}
#preamble h3 {
background: transparent url(h3_theroadtoenlightenment.gif) no-repeat top left;
width: 529px;
height: 26px;
}
#explanation h3 {
background: transparent url(h3_sowhatisthisabout.gif) no-repeat top left;
}
#participation h3 {
background: transparent url(h3_participation.gif) no-repeat top left;
}
#benefits h3 {
background: transparent url(h3_benefits.gif) no-repeat top left;
}
#requirements h3 {
background: transparent url(h3_requirements.gif) no-repeat top left;
}
#lselect h3 {
background: transparent url(h3_selectadesign.gif) no-repeat top left;
margin-top: 10px;
}
#lfavorites h3 {
background: transparent url(h3_favorites.gif) no-repeat top left;
}
#larchives h3 {
background: transparent url(h3_archives.gif) no-repeat top left;
}
#lresources h3 {
background: transparent url(h3_resources.gif) no-repeat top left;
}
/* misc
--------------------------------- */
acronym { border-width: 0; }/* css Zen Garden submission 025 - 'mnemonic', by Dave Shea, http://www.mezzoblue.com/ */
+/* css released under Creative Commons License - http://creativecommons.org/licenses/by-nc-sa/1.0/ */
+/* All associated graphics copyright 2003, Dave Shea */
+/* Added: July, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the
+ designer's written permission. However, feel free to study the CSS and use
+ techniques you learn from it elsewhere. */
+
+
+/* Built in Nick Bradbury's wonderful TopStyle Pro - http://www.bradsoft.com/topstyle/ */
+/* See http://www.csszengarden.com/025/025-comments.css for the fully commented version of this file. */
+/* See the last section, MOS Enhancements, on why some things look different between IE and the rest */
+
+
+/* Basic HTML Elements */
+html {
+ margin: 0px;
+ padding: 0px;
+}
+body {
+ font-size: small;
+ font-family: arial, sans-serif;
+ background: #B0A40B url(bg-1.gif) top left repeat-x;
+ margin: 0px;
+ padding: 0px;
+}
+
+acronym {
+ border-bottom: none;
+}
+ul {
+ list-style-type: none;
+ margin: 0px;
+ padding: 0px;
+}
+
+a:link {
+ color: #DF0245;
+ font-weight: bold;
+ text-decoration: none;
+}
+a:visited {
+ color: #6F4600;
+ font-weight: normal;
+ text-decoration: underline;
+}
+a:hover, a:active {
+ text-decoration: underline;
+}
+
+
+
+/*Structural Elements */
+#container {
+ background: transparent url(bg-2.gif) top right repeat-y;
+}
+#intro {
+ padding: 0px;
+ margin: 0px;
+}
+
+#pageHeader {
+ height: 171px;
+ padding: 0px;
+ background: transparent url(bg-4.gif) top left repeat-x;
+}
+
+#pageHeader h1 {
+ padding: 0px;
+ margin: 0px;
+ float: left;
+ width: 396px;
+ height: 171px;
+ background: transparent url(cr-tl.jpg) top right no-repeat;
+}
+#pageHeader h1 span {
+ display: none;
+}
+#pageHeader h2 {
+ padding: 0px;
+ margin: 0px;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ width: 350px;
+ height: 171px;
+ background: transparent url(cr-tr.gif) top right no-repeat;
+}
+#pageHeader h2 span {
+ display: none;
+}
+
+#quickSummary p.p1 {
+ width: 310px;
+ height: 67px;
+ background: transparent url(cr-r1.png) top right no-repeat;
+ position: absolute;
+ top: 171px;
+ right: 0px;
+ margin: 0px;
+}
+#quickSummary p.p1 span {
+ display: none;
+}
+#quickSummary p.p2 {
+ position: absolute;
+ top: 154px;
+ left: 25px;
+ margin: 0px;
+ font-size: 10px;
+ color: #CDC667;
+ padding-left: 8px;
+ background: transparent url(glitch.gif) center left no-repeat;
+}
+#quickSummary p.p2 a {
+ color: #D9D48C;
+ font-weight: bold;
+ text-decoration: none;
+}
+#quickSummary p.p2 a:hover {
+ color: #fff;
+ text-decoration: underline;
+}
+
+#preamble {
+ display: none;
+}
+
+#supportingText {
+ font: 85%/140% arial, sans-serif;
+ color: #302D0A;
+ background-color: #fff;
+ border: solid 1px #997E00;
+ /*height: 350px;
+ overflow: auto;*/
+ margin-left: 21px;
+ margin-right: 310px;
+ padding: 10px 20px;
+}
+
+#explanation h3 {
+ height: 10px;
+ background: transparent url(h_sowhat.gif) top left no-repeat;
+}
+#participation h3 {
+ height: 10px;
+ background: transparent url(h_participation.gif) top left no-repeat;
+}
+#benefits h3 {
+ height: 10px;
+ background: transparent url(h_benefits.gif) top left no-repeat;
+}
+#requirements h3 {
+ height: 10px;
+ background: transparent url(h_requirements.gif) top left no-repeat;
+}
+#explanation h3 span, #participation h3 span, #benefits h3 span, #requirements h3 span {
+ display: none;
+}
+
+#footer {
+ z-index: 1;
+ position: absolute;
+ top: 64px;
+ left: 150px;
+ text-align: center;
+ width: 257px;
+ background: transparent url(bg-6.png) top left no-repeat;
+ height: 45px;
+ padding-top: 13px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 32px;
+}
+#footer a:link, #footer a:visited {
+ font-size: 10px;
+ font-weight: normal;
+ color: #fff;
+ text-decoration: none;
+ padding: 4px 12px 4px 13px;
+}
+#footer a:hover {
+ background: transparent url(bg-6a.png) center center no-repeat;
+}
+/*#footer a {
+ color: #fff;
+ text-decoration: none;
+ text-align: center;
+ display: block;
+ float: left;
+ width: 46px;
+ height: 45px;
+ margin: 0px;
+ margin-right: 10px;
+ background: transparent url(bg-5.png) top left no-repeat;
+}
+#footer a:hover {
+ background: transparent url(bg-5a.png) top left no-repeat;
+}*/
+
+
+/* left hand fooling around */
+#lselect {
+ position: absolute;
+ top: 238px;
+ right: 0px;
+ background: transparent url(cr-r2a.png) top right no-repeat;
+ width: 310px;
+ height: 213px;
+ padding: 10px 60px 10px 55px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 195px;
+ height: 193px;
+ }
+#lselect h3 {
+ height: 15px;
+ background: transparent url(h_select.gif) top left no-repeat;
+ margin: 0px 10px 8px 0px;
+ position: relative;
+ left: -20px;
+}
+#lselect h3 span {
+ display: none;
+}
+#lselect li {
+ font: normal 10px arial, sans-serif;
+ line-height: 170%;
+ text-decoration: none;
+ color: #6D6100;
+ letter-spacing: -1px;
+}
+#lselect a {
+ font: bold 10px arial, sans-serif;
+ text-decoration: none;
+ text-transform: uppercase;
+ color: #fff;
+ letter-spacing: normal;
+}
+#lselect a.c {
+ font-weight: normal;
+ color: #6D6100;
+ text-transform: lowercase;
+ letter-spacing: -1px;
+}
+#lselect a:hover {
+ text-decoration: underline;
+}
+
+#larchives {
+ position: absolute;
+ line-height: 80%;
+ text-align: center;
+ top: 451px;
+ right: 0px;
+ background: transparent url(cr-r3a.png) top right no-repeat;
+ width: 310px;
+ height: 50px;
+ padding: 15px 65px 6px 45px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 200px;
+ height: 29px;
+}
+#larchives h3 {
+ display: none;
+}
+#larchives li {
+ font: normal 10px arial, sans-serif;
+ display: inline;
+ padding-right: 6px;
+}
+#larchives li a {
+ color: #443901;
+ text-decoration: none;
+}
+#larchives li a:hover {
+ color: #fff;
+ text-decoration: underline;
+}
+
+#lresources {
+ height: 74px;
+ background: transparent url(bg-7.png) top right repeat-x;
+}
+#lresources h3 {
+ width: 310px;
+ height: 74px;
+ float: right;
+ background: transparent url(cr-br.png) top right no-repeat;
+ margin: 0px;
+}
+#lresources h3 span {
+ display: none;
+}
+#lresources ul {
+ padding: 37px 0px 0px 25px;
+}
+#lresources li {
+ display: inline;
+}
+#lresources li a {
+ color: #fff;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: none;
+ text-transform: lowercase;
+ padding-right: 5px;
+}
+
+#lresources li a:hover {
+ text-decoration: underline;
+}
+
+/* Extra elements */
+#extraDiv1 {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 750px;
+ height: 118px;
+ background: transparent url(mnemonic.gif) top left no-repeat;
+}
+#extraDiv2 {
+ width: 90px;
+ height: 18px;
+ position: absolute;
+ top: 112px;
+ left: 156px;
+ background: transparent url(ani1.gif) top left no-repeat;
+}
+#extraDiv3 span {
+ width: 61px;
+ height: 51px;
+ position: absolute;
+ top: 13px;
+ left: 315px;
+ background: transparent url(ani2.gif) top left no-repeat;
+}
+#extraDiv4 {
+ width: 256px;
+ height: 6px;
+ position: absolute;
+ top: 45px;
+ left: 98px;
+ background: transparent url(ani3.gif) top left no-repeat;
+}
+#extraDiv5 {
+ width: 100%;
+ position: relative;
+ top: -21px;
+}
+#extraDiv5 span {
+ float: right;
+ width: 209px;
+ height: 2px;
+ background: transparent url(ani4.gif) top left no-repeat;
+ margin-right: 40px;
+}
+
+
+
+
+
+/*
+
+
+
+ **** Beginning of Advanced Effects ****
+
+
+
+*/
+
+
+
+#lselect ul>li {
+ width: 100px;
+ line-height: 10px;
+}
+#lselect ul>li a {display: block;}
+#lselect ul>li a.c {display: inline;}
+
+#lselect ul>li {position: relative; left: -14px;}
+#lselect ul>li+li {position: relative; left: -12px;}
+#lselect ul>li+li+li {position: relative; left: -10px;}
+#lselect ul>li+li+li+li {position: relative; left: -8px;}
+
+#lselect ul>li+li+li+li+li {position: relative; left: 98px; top: -11em;}
+#lselect ul>li+li+li+li+li+li {position: relative; left: 100px; top: -11em;}
+#lselect ul>li+li+li+li+li+li+li {position: relative; left: 102px; top: -11em;}
+#lselect ul>li+li+li+li+li+li+li+li {position: relative; left: 104px; top: -11em;}
+
+
+#larchives ul>li a[accesskey="p"] {
+ display: block;
+ width: 37px;
+ height: 0;
+ overflow: hidden;
+ padding-top: 18px;
+ background: transparent url(archive-b1a.gif) top left no-repeat;
+ position: absolute;
+ top: 16px;
+ left: 70px;
+ color: #958500;
+}
+#larchives ul>li a[accesskey="p"]:hover {
+ background: transparent url(archive-b1b.gif) top left no-repeat;
+}
+
+#larchives ul>li a[accesskey="n"] {
+ display: block;
+ width: 31px;
+ height: 0;
+ overflow: hidden;
+ padding-top: 18px;
+ background: transparent url(archive-b2a.gif) top left no-repeat;
+ position: absolute;
+ top: 16px;
+ left: 108px;
+ color: #958500;
+}
+#larchives ul>li a[accesskey="n"]:hover {
+ background: transparent url(archive-b2b.gif) top left no-repeat;
+}
+
+
+
+#larchives ul>li+li a[accesskey="w"] {
+ display: block;
+ width: 35px;
+ height: 0;
+ overflow: hidden;
+ padding-top: 18px;
+ background: transparent url(archive-b3a.gif) top left no-repeat;
+ position: absolute;
+ top: 16px;
+ left: 170px;
+ color: #958500;
+}
+#larchives ul>li+li a[accesskey="w"]:hover {
+ background: transparent url(archive-b3b.gif) top left no-repeat;
+}
+
+
+
+#supportingText>div#footer {
+ background: none;
+}
+
+div#footer>a:link, div#footer>a:visited {
+ display: block;
+ width: 46px;
+ height: 45px;
+ padding: 13px 0px 0px 0px;
+ background: transparent url(bg-5.png) top left no-repeat;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+div#footer>a:hover {
+ background: transparent url(bg-5a.png) top left no-repeat;
+}
+
+div#footer>a+a:link, div#footer>a+a:visited {left: 53px;}
+div#footer>a+a+a:link, div#footer>a+a+a:visited {left: 106px;}
+div#footer>a+a+a+a:link, div#footer>a+a+a+a:visited {left: 159px;}
+div#footer>a+a+a+a+a:link, div#footer>a+a+a+a+a:visited {left: 212px;}
+
+#extraDiv3 {
+ background: transparent url(bg-5a.png) top left no-repeat;
+}/* css Zen Garden submission 026 - 'Zunflower' by Radu Darvas - http://www.homelesspixel.de/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Radu Darvas */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ font: 12px/16px arial, helvetica, verdana, sans-serif;
+ color: #555;
+ background: url(bg_left.gif) repeat-y #fff;
+ margin: 0;
+ padding: 0;
+}
+
+a {
+ text-decoration: none;
+ font-weight: bold;
+ color: #655;
+}
+a:hover {
+ text-decoration: none;
+ font-weight: bold;
+ color: #e60;
+}
+acronym {
+ border: 0 none;
+}
+
+#container {
+ margin: 0;
+ padding: 0;
+}
+
+#quickSummary p, #preamble p {
+ margin: 0;
+ padding: 8px 30px 4px 18px;
+}
+#quickSummary .p1 {
+ font-weight: bold;
+ color: #777;
+}
+
+#intro {
+ margin: 0;
+ padding: 0;
+ width: 303px;
+}
+h1 {
+ margin: 0;
+ padding: 0;
+ width: 303px;
+ height: 198px;
+ background: url(h1.jpg) no-repeat transparent;
+}
+h1 span {
+ display: none;
+}
+h2 {
+ margin: 0 0 9px 0;
+ padding: 0;
+ width: 303px;
+ height: 37px;
+ background: url(h2.gif) no-repeat transparent;
+}
+h2 span {
+ display: none;
+}
+
+#preamble h3 {
+ margin: 5px 0 0;
+ padding: 0;
+ width: 303px;
+ height: 36px;
+ background: url(the_road.jpg) no-repeat transparent;
+}
+#preamble h3 span {
+ display: none;
+}
+
+#supportingText {
+ position: absolute;
+ top: 70px;
+ left: 303px;
+ width: 320px;
+ margin: 0;
+ padding: 0;
+ background: url(support_bg.gif) repeat-y top right transparent;
+}
+#supportingText h3, #supportingText p {
+ margin: 0;
+ padding: 0 40px 10px 0px;
+}
+#supportingText h3 span {
+ display: none;
+}
+
+#participation h3 {
+ margin: 0 40px 5px 0px;
+ padding: 0;
+ height: 34px;
+ background: url(parti.gif) no-repeat transparent;
+ border-bottom: 1px solid #ccc;
+}
+#benefits h3 {
+ margin: 0 40px 5px 0px;
+ padding: 0;
+ height: 34px;
+ background: url(bene.gif) no-repeat transparent;
+ border-bottom: 1px solid #ccc;
+}
+#requirements h3 {
+ margin: 0 40px 5px 0px;
+ padding: 0;
+ height: 34px;
+ background: url(req.gif) no-repeat transparent;
+ border-bottom: 1px solid #ccc;
+}
+#requirements p.p5 {
+ border-top: 1px solid #ccc;
+ margin: 10px 40px 5px 0;
+ padding: 10px 0 0;
+}
+#preamble h3 span {
+ display: none;
+}
+
+
+#explanation {
+ background: url(so_what_bg.gif) no-repeat top right transparent;
+}
+#explanation h3 {
+ margin: 0 15px 20px 0;
+ padding: 0;
+ height: 36px;
+ background: url(so_what.jpg) no-repeat transparent;
+}
+#explanation h3 span {
+ display: none;
+}
+
+
+#linkList {
+ position: absolute;
+ top: 130px;
+ left: 608px;
+ margin: 0;
+ padding: 0;
+ width: 200px;
+}
+#linkList h3.select {
+ margin: 0;
+ padding: 0;
+ background: url(select.jpg) no-repeat transparent;
+ height: 26px;
+}
+#linkList h3.archives {
+ margin: 0;
+ padding: 0;
+ background: url(archives.jpg) no-repeat transparent;
+ height: 26px;
+}
+#linkList h3.resources {
+ margin: 0;
+ padding: 0;
+ background: url(resources.jpg) no-repeat transparent;
+ height: 26px;
+}
+#linkList h3 span {
+ display: none;
+}
+
+
+
+#linkList #lselect a {
+ text-decoration: underline;
+ color: #766;
+ display: block;
+}
+#linkList #lselect a:visited {
+ text-decoration: underline;
+ color: #aaa;
+}
+#linkList #lselect a:hover {
+ text-decoration: underline;
+ color: #e60;
+}
+#linkList #lselect a.c {
+ display: inline;
+ text-decoration: none;
+ color: #888;
+}
+#linkList #lselect a.c:visited {
+ text-decoration: none;
+ color: #999;
+}
+#linkList #lselect a.c:hover {
+ text-decoration: none;
+ color: #e60;
+}
+
+
+
+#footer {
+ position: relative;
+ margin: 25px 15px 0 -14px;
+ padding: 3px 0 0 20px;
+ background: url(foot.jpg) no-repeat;
+ height: 23px;
+}
+#footer a {
+ color: #fff;
+ vertical-align: middle;
+}
+
+ul {
+ margin: 7px 0 7px 20px;
+ padding: 0;
+}
+li {
+ margin: 0 0 5px;
+ padding: 0;
+ list-style-type: none;
+}
+/* css Zen Garden submission 027 - 'Gothica' by Patrick H. Lauke aka redux - http://redux.deviantart.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Patrick H. Lauke */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* Based on the "Gothica" CSS design example for the SitePoint CSS design contest */
+ +/* decorative icons/patterns adapted from http://www.squidfingers.com/ */ + +
+
+/* basic stuff */
+ + +body { + font: 0.65em/1.3em Verdana, Arial, Helvetica, sans-serif ; + font-style: normal; + font-weight: normal; + font-variant: normal; + background: #eee url(background.png) fixed; + color: #000; + text-align: center; + padding: 0; + margin: 0; + height: 100%; +} + +h3 { + width: 100%; /* needed for IE5+ */ + font-family: Times, serif; + font-size: 100%; + text-transform: uppercase; + letter-spacing: 0.3em; + word-spacing: 0.3em; + border-bottom: #888 1px solid; +} + +html > body h3 { + /* redefinition of the border to dotted, + hidden from IE - because the dashed line + that IE uses instead of dots looks a bit + too crude in my opinion */ + border-bottom: #000 1px dotted; +} + +acronym { + /* in this case, I can live with IE's dashed line */ + border-bottom: #000 1px dotted; +} + +a, a:link { color: #900; background: transparent; text-decoration: none; } +a:visited { color: #933; background: transparent } +a:hover { color: #966; background: transparent } +a:active { color: #988; background: transparent } + +/* let's start with the whole page container */ + +#container { + position: relative; + margin: 10px auto; + width: 750px; + padding: 5px; + text-align: left; + background: #f5f5f5 url(pattern.png) no-repeat center; + border: #000 1px solid; + color: inherit; +} + +/* and now the specific divs */ + +#pageHeader { + padding: 5px; + height: 160px; + margin: 5px; + border: #000 solid 1px; + text-align: left; + background: #fff url(tophead.png) no-repeat top left; + color: inherit; +} + +#pageHeader h1, #pageHeader h2 { + display: none; +} + + +#quickSummary { + border: 1px #000 dotted; + background: #fff; + color: inherit; + font-size: 0.85em; +} + +#quickSummary, #preamble, #supportingText { + text-align: left; + margin: 1em 170px 1em 25px; + padding: 5px; +} + +#quickSummary a, #preamble a, #supportingText a { + text-decoration: none; + font-weight: bold; +} + +#explanation { + /* a little inelegant, but gets the job done */ + margin-top: -3em; +} + +#linkList { + position: absolute; + top: 180px; + right: 0; + padding: 25px 5px 5px 5px; + margin: 0; + width: 150px; + background: url(spikes.png) no-repeat center top; +} + +#lselect ul, #lresources ul, #larchives ul { + margin: 0 0 0.5em 0; + padding: 0; +} + +#lselect ul li, #lresources ul li, #larchives ul li{ + list-style-type: none; + border: #000 1px solid; + padding: 2px; + margin: 2px; + text-align: left; + background: #fff; + color: inherit; +} + +/* there seems to be an issue in Opera with the hover on the lselect... +any clues to a solution would be appreciated ;) */ + +#lselect ul li:hover, #lresources ul li:hover, #larchives ul li:hover { + background: #900; + color: #fff; +} + +#lselect ul li:hover a, #lresources ul li:hover a, #larchives ul li:hover a { + background: inherit; + color: #eee; +} + +#lselect ul a:hover, #lresources ul a:hover, #larchives ul a:hover { + /* this style is there to make up for IE's inability to apply + :hover pseudo to an li. of course, it won't look the same as having the whole + li turn red, but it should be an acceptable compromise */ + background: #900; + color: #eee; +} + +#lresources, #larchives { + padding: 25px 5px 5px 5px; + background: url(spikes.png) no-repeat center top; +} + + + +#footer { + margin: 0; + padding: 5px; + /* again, I can live with IE's dashed line */ + border: 1px #000 dotted; + background: #fff; + color: inherit; + text-align: center; +} + +#footer a { + margin-right: 20px; + padding-left: 18px; + background: url(bullet.png) no-repeat left center; +} + + + +/* and now for the big caps for each paragraph in supportingText +this is again hidden from IE, as it tends to crash otherwise and +I really can't be bothered to work around its flaws...consider it +icing on the cake for non-IE users */ + +body > div#supportingText p:first-letter { + font: 2em Times, Helvetica, serif; + float: left; + text-transform: uppercase; + margin: 0 3px 3px 0; + padding: 0; +} + +/* the following two rules may be just a minor detail, but i think it's worth it. +they add a little download icon in front of the sample CSS and HTML download links. +the first one works in all 5+ browsers, whereas the second one is only for CSS2 compliant +ones. also, use of the |= selector may be "unorthodox", but it was the best I could come up +with since the two download links in the "participation" div are not especially marked up +with a class, AND there are other links in that div ("CSS Resource Guide", "Send us a link" and "contact me") that +do not need the little icon...hence the rule could not be applied to "#participation a" */ + +#quickSummary a { + padding-left: 15px; + background: url(download.png) no-repeat left center; +} + +#participation a[href|=zengarden] { + /* CSS2-compliant only */ + padding-left: 15px; + background: url(download.png) no-repeat left center; +} + +/* no need for extras...they're just not displayed */ + +#extraDiv1, #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 { + display: none; +}/* css Zen Garden submission 028 - 'Atlantis' by Kevin Davis, http://alazanto.org/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Kevin Davis */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* for more work by the author, see http://alazanto.org */
+/* have a great day! :) */
+
+/******************************************************************* primary elements */
+
+body {
+ background-color: #000;
+ color: #ccc;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+}
+
+p {
+ font: 11pt/16pt georgia,palatino,times,serif;
+ text-align: left;
+}
+
+/******************************************************************* primary hyperlink styling */
+
+a:link {
+ font-weight: normal;
+ text-decoration: none;
+ background-color: transparent;
+ color: #bcf;
+}
+
+a:visited {
+ font-weight: normal;
+ text-decoration: none;
+ background-color: transparent;
+ color: #bde;
+}
+
+a:hover, a:active {
+ text-decoration: underline;
+ background-color: transparent;
+ color: #fff;
+}
+
+/******************************************************************* body content */
+#container {
+ position: relative;
+
+ margin-top: 0px;
+ margin-left: auto;
+ margin-bottom: 0px;
+ margin-right: auto;
+ padding: 1px; /* messy method of overcoming a rendering bug in mozilla 1.4, maybe others */
+
+ font: 8pt/12pt georgia,palatino,times,serif;
+ color: #ddd;
+ background: #000 url(backdrop.title.jpg) no-repeat top left;
+
+ width: 749px;
+
+ voice-family: "\"}\"";
+ voice-family:inherit;
+
+ width: 750px;
+
+
+}
+
+#pageHeader {
+ display: none;
+}
+ #pageHeader h1 {
+ display: none;
+ }
+ #pageHeader h1 span {
+ display: none;
+ }
+ #pageHeader h2 {
+ display: none;
+ }
+ #pageHeader h2 span {
+ display: none;
+ }
+
+#intro {
+ position: relative;
+
+ margin-top: 225px;
+ margin-left: 218px;
+ margin-bottom: 10px;
+ margin-right: 39px;
+
+ padding-top: 10px;
+ padding-left: 10px;
+ padding-bottom: 0px;
+ padding-right: 10px;
+
+ border: 1px dashed #fff;
+}
+
+ #quickSummary {
+ float: left;
+ clear:both;
+
+ margin-top: 0px;
+ margin-left: 0px;
+ margin-bottom: 0px;
+ margin-right: 7px;
+
+ width: 165px;
+
+ voice-family: "\"}\"";
+ voice-family:inherit;
+
+ width: 175px;
+ }
+
+ #quickSummary p {
+ font: italic 10pt/22pt georgia,palatino,times,serif;
+ text-align:center;
+ margin: 4px;
+ padding: 0px;
+ }
+
+ #preamble {
+ clear: right;
+
+ padding-top: 0px;
+ padding-left: 0px;
+ padding-bottom: 0px;
+ padding-right: 0px;
+ }
+
+ #intro h3 {
+ margin-top: 0px;
+ margin-left: 0px;
+ margin-bottom: 15px;
+ margin-right: 0px;
+
+ padding-top: 1px;
+ padding-left: 0px;
+ padding-bottom: 3px;
+ padding-right: 0px;
+
+ background-color: transparent;
+ font: 14pt georgia,palatino,times,serif;
+ font-weight: normal;
+ text-align: left;
+
+ color: #fff;
+ }
+
+#supportingText {
+ margin-top: 0px;
+ margin-left: 218px;
+ margin-bottom: 10px;
+ margin-right: 39px;
+ padding: 0px;
+}
+
+ #supportingText h3 {
+ margin-top: 15px;
+ margin-left: 0px;
+ margin-bottom: 15px;
+ margin-right: 0px;
+
+ padding-top: 1px;
+ padding-left: 0px;
+ padding-bottom: 3px;
+ padding-right: 0px;
+
+ font: 14pt georgia,palatino,times,serif;
+ font-weight: normal;
+ text-align: left;
+
+ background-color: transparent;
+ color: #fff;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #fff;
+ }
+
+#footer {
+ margin-top: 30px;
+ margin-left: 0px;
+ margin-bottom: 30px;
+ margin-right: 0px;
+
+ text-align: center;
+
+ background-color: transparent;
+ color: #fff;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #fff;
+
+}
+ #footer a:link, #footer a:visited {
+ background-color: transparent;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+/******************************************************************* link list */
+
+#linkList {
+ position: absolute;
+ margin: 0px;
+ padding: 0px;
+
+ top: 435px;
+ left: 50px;
+ width: 150px;
+
+ text-align: left;
+}
+
+ #linkList h3.select {
+ background: transparent url(linkhead-select.jpg) no-repeat top left;
+ margin: 0px 0px 0px 0px; width: 150px; height: 21px;
+ }
+ #linkList h3.select span {
+ display: none;
+ }
+
+ #linkList h3.favorites {
+ background: transparent url(linkhead-favorites.jpg) no-repeat top left;
+ margin: 10px 0px 0px 0px; width: 150px; height: 21px;
+ }
+ #linkList h3.favorites span {
+ display: none;
+ }
+
+ #linkList h3.archives {
+ background: transparent url(linkhead-archives.jpg) no-repeat top left;
+ margin: 10px 0px 0px 0px; width: 150px; height: 21px;
+ }
+ #linkList h3.archives span {
+ display: none;
+ }
+
+ #linkList h3.resources {
+ background: transparent url(linkhead-resources.jpg) no-repeat top left;
+ margin: 10px 0px 0px 0px; width: 150px; height: 21px;
+ }
+ #linkList h3.resources span {
+ display: none;
+ }
+
+ #linkList ul {
+ margin-top: 0px;
+ margin-bottom: 10px;
+ margin-left: 10px;
+ margin-right: 0px;
+ padding: 0px;
+ }
+ #linkList li {
+ line-height: 2.5ex;
+ list-style-type: none;
+ background: transparent url(cr1.gif) no-repeat top center;
+ display: block;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ }
+
+ #lselect li, #lfavorites li {
+ background: url(docbullet.gif) no-repeat 0px 7px;
+ padding-left: 11px;
+ }
+
+ #lselect a, #lfavorites a { display:block; text-transform:lowercase; }
+ #lselect a.c, #lfavorites a.c {display:inline; text-transform: none; }/* css Zen Garden submission 029 - 'Backyard' by Ray Henry, http://www.reh3.com/ */
+/* css released under Creative Commons License - http://creativecommons.org/licenses/by-nc-sa/1.0/ */
+/* All associated graphics copyright 2003, Ray Henry */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the
+ designer's written permission. However, feel free to study the CSS and use
+ techniques you learn from it elsewhere. */
+
+
+/* basic elements */ +body { + background: #fff url(main_bg.gif) repeat-x top left; + margin: 0; + padding: 0; + text-align:left; + height:100%; + width:100%; +} + +p { + margin-top: 0px; + text-align: left; +} + +a:link { + font-weight: bold; + text-decoration: underline; + color: #616157; +} + +a:visited { + font-weight: bold; + text-decoration: underline; + color: #616157; +} + +a:hover, a:active { + text-decoration: underline; + color: #811610; +} + +/* specific divs */ +#container { + background:transparent; + padding: 0px; + margin: 0px; + width:770px; +} + +#intro { + background: transparent url(quicksum_bg.gif) no-repeat top left; + width:770px; + margin-top:28px; + margin-bottom:0; +} + +#pageHeader { + margin: 0; + padding:0; + width:770px; + height:72px; + voice-family: "\"}\""; + voice-family:inherit; + margin-bottom:22px; +} + +#pageHeader h1 { + background: transparent url(intro_bg.jpg) no-repeat top left; + margin-top: 0; + width: 403px; + height: 72px; + float: left; +} + +#pageHeader h2 { + background: transparent url(intro_bg2.jpg) no-repeat top left; + margin: 0; + width: 367px; + height: 72px; + float: right; +} + +#pageHeader h1 span, #pageHeader h2 span { + display:none +} + +#quickSummary { + background:transparent; + float:left; + clear:both; + padding-top:10px; + padding: 10px; + border-top:1px dashed #999; + width: 200px; + font-family:georgia, serif; + font-size: 12px; + line-height:30px; + color:#616157; + voice-family: "\"}\""; + voice-family:inherit; + margin-top:-1.8em; + width:180px; +} + +#quickSummary p.p1:first-letter { + padding-right:5px; + font-size: 300%; + color:#811610; +} + + #preamble p.p1:first-letter { + padding-right:5px; + font-size: 300%; + color:#811610; +} + +#quickSummary p.p2 { + line-height:18px; + font-family:verdana, arial, sans serif; + font-size:11px; +} + +#preamble { + background:transparent; + clear:both; + padding: 10px; + width: 200px; + font-family:georgia, serif; + font-size: 12px; + line-height:30px; + color:#616157; + z-index:5; + voice-family: "\"}\""; + voice-family:inherit; + width:180px; +} + +#preamble h3{ + line-height:16px; + font-size:15px; + padding-bottom:10px; + padding-top:10px; + border-top:1px solid #811610; + border-bottom:1px solid #811610; +} + +#supportingText { + background:#F7F7F2; + position:absolute; + top:100px; + padding: 10px; + margin-left:200px; + border-top:1px solid #999; + border-left:1px solid #999; + border-bottom:1px solid #999; + border-right:1px solid #999; + width:366px; + height:auto; + font-family:georgia, serif; + font-size:13px; + line-height:19px; + color:#616157; + voice-family: "\"}\""; + voice-family:inherit; + margin-left:200px; + width:344px; + top:100px; +} + +#explanation h3, #participation h3, #benefits h3, #requirements h3 { + margin-bottom:10px; + width:300px; + height:15px; + border-bottom:1px dashed #999; +} + +#explanation h3 { + background: transparent url(sup_h3_a.gif) no-repeat; +} + +#participation h3 { + background: transparent url(sup_h3_b.gif) no-repeat; +} + +#benefits h3 { + background: transparent url(sup_h3_c.gif) no-repeat; +} + +#requirements h3 { + background: transparent url(sup_h3_d.gif) no-repeat; +} + +#supportingText h3 span{ + display:none; +} + +#footer { + text-align: center; + border-top:1px solid #CBCBC2; + font-family:verdana, arial, sans serif; + font-size:10px; +} + +#footer a:link, #footer a:visited { + margin: 5px; + font-weight: normal; +} + +#linkList { + background: url(linklist_bg.gif) no-repeat top left; + margin-left: 566px; + position: absolute; + top: 100px; + height:100%; + voice-family: "\"}\""; + voice-family:inherit; + margin-left:566px; +} + +#linkList2 { + font: 10px verdana, sans-serif; + padding: 10px; + width: 204px; +} + +#linkList h3.select, #linkList h3.archives, #linkList h3.resources{ + width:180px; + height: 20px; +} + +#linkList h3.select { + background: transparent url(linklist_a.gif) no-repeat top left; + margin: 25px 0px 5px 0px; +} + +#linkList h3.archives { + background: transparent url(linklist_b.gif) no-repeat bottom left; + margin: 25px 0px 10px 0px; + border-top:1px dashed #ccc; + padding-top:5px; +} + +#linkList h3.resources { + background: transparent url(linklist_c.gif) no-repeat bottom left; + margin: 25px 0px 10px 0px; + border-top:1px dashed #ccc; + padding-top:5px; +} + +#linkList h3.select span, #linkList h3.archives span, #linkList h3.resources span { + display:none +} + +#linkList ul { + margin: 0px; + padding: 0px; + color:#555; +} + +#linkList li { + list-style-type: none; + background: transparent; + display: block; + padding-top: 5px; + margin-bottom: 5px; +} + +#linkList li a:link { + color: #555; +} + +#linkList li a:visited { + color: #555; +} + +#linkList li a:hover, #linkList li a:active { + color:#811610; +} + +a.c:link, a.c:visited, a.c:hover, a.c:active { + font-weight:normal; +} + +#extraDiv1, #extraDiv2 { + display:none; +}/* css Zen Garden submission 030 - 'Entomology' by Jon Hicks, http://exp.hicksdesign.co.uk/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jon Hicks */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+
+/* basic elements */
+
+body {
+ background: #B61E3D url(bkgd.jpg);
+ font: 12px/16px Georgia, "Times New Roman", Times, serif;
+ color: #390404;
+ margin: 0px;
+}
+p {
+ margin-top: -0.8em;
+}
+p+p {
+ text-indent: 15px;
+}
+
+h3 {
+ font-size: 13px;
+ text-transform: uppercase;
+ letter-spacing: 0.3em;
+ margin-top: 2em;
+}
+
+a:link,
+a:visited {
+ font-style: italic;
+ text-decoration: none;
+ color: #039;
+}
+a:visited {
+ font-style: normal;
+}
+a:hover, a:active {
+ background: #ffe699;
+}
+
+
+/* main text divs */
+#container {
+ background: #ffc url(mid.jpg) repeat-y center;
+ position: absolute;
+ left: 50%;
+ width: 760px;
+ margin-left: -380px;
+}
+#intro {
+ margin: 0px;
+ background: url(top.jpg) no-repeat center top;
+ padding-top: 186px;
+}
+#pageHeader h1 span,
+#pageHeader h2 span {
+ display:none
+}
+#quickSummary p.p1:first-line {
+ text-transform: uppercase;
+}
+#quickSummary {
+ margin-top: 30px;
+}
+#quickSummary p {
+ font-size: 13px;
+ line-height: 22px;
+}
+#quickSummary,
+#preamble,
+#supportingText {
+ margin-right: 80px;
+ margin-left: 300px;
+}
+#supportingText p.p5{
+ background: url(line.jpg) no-repeat center bottom;
+ margin-right: -80px;
+ margin-left: -300px;
+ margin-top: 30px;
+ height: 30px;
+ text-align: center;
+}
+#footer {
+ background: url(bot.jpg) no-repeat center bottom;
+ margin-right: -80px;
+ margin-left: -300px;
+ height: 110px;
+ text-align: center;
+}
+#footer a:link, #footer a:visited {
+ font-size: 15px;
+ color: #390404;
+}
+
+
+/* sidelinks styles */
+#linkList {
+ background: url(b5.jpg) no-repeat center bottom;
+ padding-bottom: 150px;
+ width: 195px;
+ position: absolute;
+ left: 90px;
+ top: 200px;
+ border-right: 1px dotted #930;
+}
+#linkList h3 {
+ text-align: center;
+ font-style: italic;
+ text-transform: lowercase;
+ letter-spacing: 0.1em;
+}
+#linkList h3.select {
+ background: url(b1.jpg) no-repeat center top;
+ padding-top: 110px;
+ font-style: italic;
+ text-transform: lowercase;
+ margin-top: 0px;
+}
+linkList h3.favorites {
+ margin-top: 30px;
+ background: url(b2.jpg) no-repeat center top;
+ padding-top: 110px;
+}
+#linkList h3.archives {
+ margin-top: 30px;
+ background: url(b3.jpg) no-repeat center top;
+ padding-top: 110px;
+}
+#linkList h3.resources {
+ margin-top: 30px;
+ background: url(b4.jpg) no-repeat center top;
+ padding-top: 105px;
+}
+#linkList ul {
+ margin: -0.5em 0 0 0;
+ padding: 0px;
+ list-style-type: none;
+ text-align: center;
+}
+#linkList li {
+ background: url(listline.gif) no-repeat center bottom;
+ padding-bottom: 15px;
+}
+#linkList #lselect a {
+ display: block;
+ font-style: normal;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+}
+#linkList #lselect a.c{
+ display: inline;
+ margin-bottom: -1em;
+ font-style: italic;
+ text-transform: none;
+ letter-spacing: 0em;
+}
+#linkList #lselect li{
+ font-style: italic;
+}
+
+
+/* CSS 2 pseudo elements - not essential but nice in browsers that support it */
+
+h3:first-letter {
+ font-size: 16px;
+}
+#linkList h3 :before {
+content: "(";
+}
+#linkList h3 :after {
+content: ")";
+}
+#footer a:before {
+content: "{ ";
+}
+#footer a:after {
+content: " }";
+}
+/* css Zen Garden submission 031 - 'Hedges' by Kev Mears, http://www.mearso.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Kev Mears */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+
+/* structure
+--------------------------------- */
+
+body
+{
+ margin: 0;
+ padding: 0;
+ background: #FFF url("bg_tree.gif") repeat-x left top;
+ color: #888;
+ text-align: center;
+}
+
+
+
+#container
+{
+ position: relative;
+ padding:0;
+ width: 732px;
+ margin: 0 auto;
+ text-align: left;
+}
+
+
+/* hidden text
+--------------------------------- */
+
+h1, h2, h3
+{
+ margin: 0;
+ background-repeat: no-repeat;
+ background-position: left top;
+}
+
+h1 span, h2 span,h3 span, #quickSummary p.p span { display: none; }
+
+/* header and summary
+--------------------------------- */
+
+#pageHeader h1
+{
+ height: 200px;
+ background: url("nutitle.gif") no-repeat;
+ padding:0;
+}
+
+#quickSummary p.p1
+{
+ position: absolute;
+ top: 12em;
+ right: 15px;
+ width: 120px;
+ margin: 75px 0 0 580px;
+ font-size: 80%;
+ text-align: right;
+}
+
+#quickSummary p.p2
+{
+ position: absolute;
+ top: 25em;
+ right: 15px;
+ width: 120px;
+ margin: 0;
+ font-size: 93%;
+ text-align: center;
+ padding-bottom: 90px;
+ background: url("barrow.gif") no-repeat bottom;
+ background-repeat: no-repeat;
+}
+
+#quickSummary p.p2 a:link, #quickSummary p.p2 a:visited
+{
+ white-space: nowrap;
+ font: bold 92%/1.3em Verdana,Arial,Sans-serif;
+ text-transform: uppercase;
+}
+
+/* preamble
+--------------------------------- */
+
+#preamble
+{
+ position: relative;
+ left: 195px;
+ padding-bottom: 0px;
+ width: 400px;
+
+}
+
+#preamble h3
+{
+ height: 70px;
+ background-image: url("road.gif");
+}
+
+#preamble p
+{
+ width: 350px;
+}
+
+/* supporting text
+--------------------------------- */
+
+#supportingText
+{
+ position: relative;
+ left: 195px;
+ padding-bottom: 0px;
+ border-bottom: 2px solid #363;
+ width: 400px;
+}
+
+#supportingText p
+{
+ line-height: 1.5em;
+}
+
+#supportingText h3 { height: 70px; }
+
+#explanation h3
+{
+ background-image: url("what.gif");
+}
+
+#participation h3
+{
+ background-image: url("participation.gif");
+}
+
+#benefits h3
+{
+ background-image: url("benefits.gif");
+}
+
+#requirements h3
+{
+ background-image: url("requirements.gif");
+}
+
+/* link list
+--------------------------------- */
+
+#linkList
+{
+ position: absolute;
+ top: 200px;
+ left: 0;
+ width: 190px;
+}
+
+#linkList h3 { height: 41px; }
+
+#lselect h3
+{
+ background-image: url("select.gif");
+}
+
+#larchives h3
+{
+ background-image: url("archives.gif");
+}
+
+#lresources h3
+{
+ background-image: url("resources.gif");
+}
+
+#linkList ul
+{
+ margin: 1em 0 1em;
+ padding: 0;
+ font-size: 90%;
+ list-style: none;
+ text-align: left;
+}
+
+#larchives li, #lresources li { text-transform: lowercase; }
+
+#linkList ul li
+{
+ margin: 0 0 .5em;
+
+ line-height: 1em;
+}
+
+#linkList li a:link, #linkList li a:visited
+{
+ font-family: Verdana,Arial,Sans-serif;
+ font-size: 90%;
+}
+
+#linkList #lselect a:link, #linkList #lselect a:visited { display: block; }
+
+#linkList #lselect a.c:link, #linkList #lselect a.c:visited
+{
+ display: inline;
+ font-family: Georgia,Serif;
+ font-weight: normal;
+ background-color: transparent;
+ text-transform: lowercase;
+}
+
+/* footer
+--------------------------------- */
+
+#footer
+{
+ background: #D9D98B;
+ color: #fff;
+ padding: 10px 20px;
+ border-top: 1px solid #363;
+ font: 85% Verdana,Arial,Sans-serif;
+ text-align: center;
+}
+
+#footer a:link, #footer a:visited
+{
+ padding: 0 5px;
+ font-weight: normal;
+}
+
+/* links
+--------------------------------- */
+
+a:link, a:visited
+{
+ color: #090;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+a:hover
+{
+ color: #663;
+ background-color: transparent;
+ text-decoration: underline;
+}
+
+/* misc
+--------------------------------- */
+
+acronym { border-width: 0; }
+/* css Zen Garden submission 032 - 'Crab Apple' by Jai Brinkofski - http://www.jaiandbecky.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jai Brinkofski */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* hide this stuff */
+
+#pageHeader h1 span, #pageHeader h2 span, #pageHeader, #quickSummary p.p1, #preamble h3 span, #explanation h3, #participation h3, #benefits h3, #requirements h3, #lselect h3, #larchives h3, #lresources h3 {display: none}
+
+/* show this stuff */
+
+body {background-color: #D0D1D0; background-image: url(banner.jpg); background-repeat: no-repeat; left: 0px; top: 0px; width: 770px}
+
+acronym {border-bottom-width: 1px; border-bottom-style: dashed; cursor: help}
+
+#container {background-image: url(t.jpg); background-repeat: no-repeat; left: 0px; top: 0px; background-position: 0px 99px; position: absolute; width: 770px; padding-bottom: 5px}
+
+#intro {position: relative; left: 133px; top: 207px; padding-bottom: 50px; z-index: 2}
+
+#quickSummary {top: -57px; position: absolute; left: 291px; z-index: 2}
+
+#quickSummary p.p2 {color: #FFFFFF; font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold}
+
+#quickSummary p.p2 a:link {color: maroon; font-weight: bold; font-size: 12px; text-decoration: none}
+#quickSummary p.p2 a:visited {color: maroon; font-weight: bold; font-size: 12px; text-decoration: none}
+#quickSummary p.p2 a:hover {color: yellow; font-weight: bold; font-size: 12px; text-decoration: none; background-color: #333333}
+#quickSummary p.p2 a:active {color: maroon; font-weight: bold; font-size: 12px; text-decoration: none}
+
+#preamble {width: 614px; position:relative; left: 7px; top: -40px; overflow: visible; z-index: 1; padding-right: 3px}
+
+#preamble p {padding-right: 20px; padding-left: 5px; font-family: Arial, Helvetica, sans-seri; font-size: 10px; color: #333333}
+
+#preamble p.p1 {padding-top: 28px}
+
+#supportingText {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #333333; width: 614px; position:relative; left:141px; margin-top: 30px; top: 100px; z-index: 1; border-width:1px;border-color:#c2c2c2; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-right: 3px; margin-bottom: 100px}
+
+#supportingText p {padding-right: 20px; padding-left: 5px}
+
+#supportingText a:link {color: #FF0000; font-weight: normal; text-decoration: none}
+#supportingText a:visited {color: #990000; text-decoration: underline;}
+#supportingText a:hover {color: #FFFFFF; background-color: #666666; text-decoration: none}
+#supportingText a:active {color: #FF0000; text-decoration: underline overline; background-color: #FFFFFF}
+
+#explanation {background-image: url(sowhatisthisabout.jpg); background-repeat: no-repeat; padding-top: 23px; padding-right: 3px}
+
+#participation {background-image: url(participation.jpg); background-repeat: no-repeat; left: 0px; top: 153px; z-index: 1; padding-top: 23px}
+
+#benefits {background-image: url(benefits.jpg); background-repeat: no-repeat; left: 0px; top: 366px; z-index: 1; padding-top: 23px}
+
+#requirements {background-image: url(requirements.jpg); background-repeat: no-repeat; left: 0px; top: 466px; z-index: 1; padding-top: 23px}
+
+#footer {padding-left: 10px;}
+
+#footer a:link {font-family: Arial, Helvetica, sans-serif; color: #FFFFFF; font-weight: bold; font-size: 12px}
+#footer a:hover {font-family: Arial, Helvetica, sans-serif; color: yellow; font-weight: bold; font-size: 12px; background-color: #333333}
+
+#linkList {position: absolute; left: 9px; top: 0px; width: 121px; font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #333333; z-index: 2; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-right-color: #c2c2c2; border-bottom-color: #c2c2c2; border-left-color: #c2c2c2; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; margin-top: 208px; bottom: 5px}
+
+#linkList a:link {color: #003366; font-weight: normal; text-decoration: none}
+#linkList a:visited {color: #000033; font-weight: normal; text-decoration: none}
+#linkList a:hover {color: #FFFFFF; font-weight: normal; text-decoration: none; background-color: #666666}
+#linkList a:active {color: #FF0000; text-decoration: underline overline; background-color: #FFFFFF}
+
+#lselect {width: 121px; left: 0px; top: -1px; z-index: 1; padding-top: 23px}
+
+#larchives {background-image: url(archives.jpg); background-repeat: no-repeat; left: 0px; width: 121px; z-index: 1; padding-top: 23px; background-position: -9px 0px}
+li {list-style-position: outside; list-style: url(li.jpg); margin: 0px 10px 0px -10px; padding-top: 7px}
+
+#lresources {background-image: url(resources.jpg); background-repeat: no-repeat; left: 0px; width: 121px; z-index: 1; padding-top: 23px; background-position: -9px 0px}/* css Zen Garden submission 033 - 'Fleur-de-lys' by Claire Campbell, http://www.tanfa.co.uk/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Claire Campbell */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+font: 100% verdana, helvetica, arial, sans-serif;
+margin: 0;
+padding: 0;
+background: #f0e7d7;
+color: #000;
+text-align: center;
+min-width: 760px;
+}
+
+p, ul, #footer {font-size: 0.8em;}
+
+h1, h2, h3 {
+font-family: georgia, serif;
+letter-spacing: 0.1cm;
+}
+
+a:link, a:visited, a:active {
+color: #800000;
+background: transparent;
+font-weight: bold;
+font-size: 0.9em;
+text-decoration: none;
+}
+a:hover {
+color: #aaab9c;
+background: transparent;
+text-decoration: underline;
+}
+
+#intro {clear: both;}
+
+#container {
+width: 760px;
+background: #f0e7d7 url(bodybg.jpg) repeat-y 0% 0%;
+color: #000;
+padding: 0;
+margin: 0 auto;
+}
+
+#pageHeader {
+position: relative;
+float: right;
+width: 230px;
+padding: 0;
+margin: 0;
+margin-left: -3px;
+background: #f0e7d7;
+color: #000;
+}
+
+
+#pageHeader h1 {
+background: #f0e7d7 url(zenhead.jpg) no-repeat 0% 0%;
+color: #800000;
+height: 174px;
+padding: 0;
+margin: 0;
+}
+
+#pageHeader h2 {
+padding: 0;
+margin: 0;
+display: none;
+}
+
+#pageHeader h1 span {display: none;}
+
+#quickSummary {
+position: relative;
+width: 230px;
+float: right;
+clear: right;
+background: transparent url(summarybg.gif) no-repeat bottom left;
+color: #000;
+margin: 0;
+padding: 0 0 20px 0;
+}
+
+#quickSummary p {
+font-family: georgia, serif;
+margin: 0;
+padding: 10px 10px 10px 20px;
+text-align: right;
+}
+
+
+#preamble {
+width: 530px;
+background: #fff url(lilybg.jpg) no-repeat 0% 0%;
+color: #000;
+margin: 0;
+padding: 50px 0 0 0;
+}
+
+#preamble h3 {
+width: 350px;
+height: 40px;
+padding: 0;
+margin: 0 0 0 170px;
+}
+
+#preamble h3 span {display: none;}
+
+#preamble p {
+padding: 0;
+margin: 0;
+padding: 20px 30px 0px 0px;
+text-align: justify;
+}
+
+#preamble p.p3 {
+padding-bottom: 20px;
+}
+
+#preamble p:first-letter {
+color: #800000;
+background: transparent;
+font-size: 16px;
+font-weight: bold;
+vertical-align: baseline;
+}
+
+
+#preamble p.p1 {margin-left: 200px;}
+#preamble p.p2 {margin-left: 180px;}
+#preamble p.p3 {margin-left: 80px;}
+
+#supportingText {
+float: left;
+clear: left;
+text-align: justify;
+background: #fff url(supportbg.gif) no-repeat top right;
+color: #000;
+padding-bottom: 20px;
+padding-top: 23px;
+border-right: 10px solid #800000;
+width: 530px;
+\width: 540px;
+w\idth: 530px;
+}
+
+#supportingText h3 {
+padding: 5px 30px 6px 0;
+margin: 10px 0 0 0;
+border-top: 1px solid #aaab9c;
+font-size: 0.9em;
+text-align: right;
+background: #fff url(suph3bg.jpg) no-repeat bottom right;
+color: #aaab9c;
+}
+
+#supportingText h3 span {}
+
+#supportingText p {padding: 15px 20px 0 50px; margin: 0;}
+
+#supportingText p:first-letter {
+color: #800000;
+background: transparent;
+font-size: 16px;
+font-weight: bold;
+vertical-align: baseline;
+}
+
+#explanation {
+background: #fff url(sowhatbg.jpg) no-repeat 0% 0%;
+color: #000;
+}
+#explanation h3 {visibility: hidden;}
+#explanation h3 span {}
+#explanation p.p1 {padding-top: 30px;}
+
+#requirements p.p5 {
+text-align: right;
+padding-bottom: 0;
+margin-bottom: -180px;
+}
+
+#linkList {
+margin: 0;
+padding: 0;
+margin-left: 530px;
+padding: 30px 15px 20px 0px;
+}
+
+#linkList h3 {
+padding: 5px 0 6px 30px;
+margin: 0;
+border-top: 1px solid #aaab9c;
+border-right: 1px solid #aaab9c;
+font-size: 0.9em;
+text-align: right;
+background: #f0e7d7 url(listh3bg.jpg) no-repeat bottom left;
+color: #aaab9c;
+text-align: left;
+}
+
+#linkList ul {
+margin: 0;
+padding: 0 0 10px 0;
+color: #aaab9c;
+background: transparent;
+border-right: 1px solid #aaab9c;
+}
+
+#linkList li {
+list-style-type: none;
+display: block;
+padding: 0;
+margin: 0;
+padding: 0;
+}
+
+#linkList #lselect li {padding: 1px 0; margin: 3px 0;}
+
+#linkList #larchives li, #linkList #lresources li {
+padding: 1px 0;
+margin: 0;
+text-align: right;
+}
+
+#larchives, #lresources {
+margin-top: 30px;
+text-align: left;
+}
+
+#lselect a, #larchives a, #lresources a {
+display:block;
+text-transform: lowercase;
+font-family: georgia, serif;
+font-size: 0.9em;
+font-weight: 700;
+padding: 10px 0 3px 0;
+}
+
+#lselect a {
+letter-spacing: 0.1em;
+background: #f0e7d7 url(linkbg.jpg) no-repeat 50% 0%;
+color: #800000;
+}
+
+#larchives a, #lresources a {
+font-family: verdana, helvetica, arial, sans-serif;
+background: #f0e7d7;
+padding: 3px 30px 3px 0;
+margin: 0;
+background: #f0e7d7 url(link2bg.jpg) no-repeat 100% 50%;
+color: #800000;
+}
+
+#lselect a.c {
+display:inline;
+text-transform: none;
+border-width: 0px;
+letter-spacing: 0;
+font-family: verdana, helvetica, sans-serif;
+background: #f0e7d7;
+color: #aaab9c;
+padding: 0;
+}
+
+#footer {
+margin: 0;
+padding: 0;
+position: relative;
+top: 0px;
+left: 630px;
+width: 6em;
+text-align: center;
+padding-bottom: 10px;
+}
+
+#footer a {
+display: block;
+width: 100%;
+background: #f7f2ea url(linkfootbg.jpg) no-repeat 0% 0%;
+color: #aaab9c;
+padding: 5px 0;
+border-width: 1px;
+border-color: #ffe #aaab9c #ccc #ffe;
+border-style: solid;
+text-decoration: none;
+}
+
+#footer a:hover {
+color: #800000;
+background: #f0e7d7 url(linkbg.jpg) no-repeat 0% 0%;
+border-color: #aaab9c #ffe #ffe #ccc;
+}
+
+#extraDiv1 {
+clear:both;
+display: block;
+position: relative;
+z-index: 10;
+padding: 0;
+margin: 0 auto;
+margin-top: -10px;
+background: #fff url(bottombg.jpg) no-repeat 109px 0;
+color: #000;
+height: 17px;
+width: 760px;
+}
+
+#extraDiv span #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6
+{display: none;}
+/* css Zen Garden submission 034 - 'zengrounds' by Andrea Piernock, http://www.snooble.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Andrea Piernock */
+/* Style based on newgrounds.com, adapted with permission */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ margin: 0;
+ padding: 0;
+ background: #222 url(bg_main.gif) top left repeat-x;
+ color: #fff;
+ font-family: Verdana, Helvetica, Arial, sans-serif; }
+
+a { background: transparent; text-decoration: none; }
+a:link { color: #fc3; }
+a:visited { color: #f90; }
+a:active { color: #fff; }
+a:hover { color: #ff3; }
+acronym { cursor: help; border-bottom: 1px dotted #fff; }
+a acronym { cursor: help; border-bottom: 1px dotted #fc3; }
+
+#container {
+ position: relative;
+ top: 0;
+ left: 50%;
+ width: 750px;
+ margin: 0 0 0 -375px;
+ padding: 0;
+ background: #222; }
+
+#container #intro {
+ margin: 0 215px 0 0;
+ padding: 10px 0 0 0;
+ border-right: 10px solid #4E441B; }
+#container #intro #pageHeader {
+ width: 500px;
+ height: 105px;
+ margin: 0 10px;
+ padding: 10px 0 0 0;
+ background: url(csszen.gif) top left no-repeat; }
+#container #intro #pageHeader h1, #container #intro #pageHeader h2 { display: none; }
+
+#container #intro #quickSummary { margin: 0 20px; padding: 0 0 10px 0; }
+#container #intro #quickSummary p.p1 {
+ height: 75px;
+ margin: 0;
+ padding: 0;
+ background: url(demo.gif) top left no-repeat; }
+#container #intro #quickSummary p.p1 span { display: none; }
+#container #intro #quickSummary p.p2 {
+ margin: 10 0 0 0;
+ padding: 0;
+ font-size: 0.7em;
+ font-weight: bold;
+ text-align: center; }
+
+#container #intro #preamble {
+ width: 500px;
+ margin: 0 10px 15px 10px;
+ padding: 0 0 15px 0;
+ background: url(bottomRoad.gif) bottom left no-repeat; }
+#container #intro #preamble h3 {
+ height: 15px;
+ margin: 0;
+ padding: 0;
+ background: url(road.gif) top left no-repeat; }
+#container #intro #preamble h3 span { display: none; }
+#container #intro #preamble p {
+ margin: 0;
+ padding: 5px 10px;
+ background: url(tileRoad.gif) top left repeat-y;
+ font-size: 0.8em; }
+
+#container #supportingText {
+ margin: 0 215px 0 0;
+ padding: 0;
+ border-right: 10px solid #4E441B; }
+#container #supportingText div {
+ width: 500px;
+ margin: 0 10px 15px 10px;
+ padding: 0;
+ background: url(textBoxBg.gif) bottom left repeat-y; }
+#container #supportingText h3 { height: 65px; margin: 0; padding: 0; }
+#container #supportingText h3 span { display: none; }
+#container #supportingText #explanation h3 { background: url(textBoxHeadExplain.gif) top left no-repeat; }
+#container #supportingText #participation h3 { background: url(textBoxHeadPart.gif) top left no-repeat; }
+#container #supportingText #benefits h3 { background: url(textBoxHeadBenefits.gif) top left no-repeat; }
+#container #supportingText #requirements h3 { background: url(textBoxHeadRequir.gif) top left no-repeat; }
+#container #supportingText p { margin: 0; padding: 0 10px 10px 15px; font-size: 0.8em; }
+#container #supportingText p.p1 { margin-top: -35px; padding-right: 75px; }
+#container #supportingText #explanation p.p2,
+#container #supportingText #participation p.p4,
+#container #supportingText #benefits p.p1,
+#container #supportingText #requirements p.p5 {
+ padding-bottom: 25px;
+ background: url(textBoxBottom.gif) bottom left no-repeat; }
+
+#container #supportingText #footer {
+ margin: 0;
+ padding: 0 0 25px 0;
+ background: none;
+ font-size: 0.7em;
+ font-weight: bold;
+ text-align: center; }
+#container #supportingText #footer a {
+ margin: 0;
+ padding: 0 10px;
+ border-left: 5px solid #666;
+ border-right: 5px solid #666; }
+#container #supportingText #footer a:hover { background: #444; color: #fff; }
+
+#container #linkList {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 225px;
+ margin: 0;
+ padding: 5px 0 0 0;
+ background: url(linkTile.gif) top right repeat-y; }
+#container #linkList #linkList2 div h3 span { display: none; }
+
+#container #linkList #linkList2 #lselect a { display: block; width: 100%; }
+#container #linkList #linkList2 #lselect a.c { display: inline; width: auto; }
+
+#container #linkList #linkList2 #lselect {
+ margin: 0 0 10px 0;
+ padding: 0 0 20px 0;
+ background: url(styleBottom.gif) bottom right no-repeat; }
+#container #linkList #linkList2 #lfavorites,
+#container #linkList #linkList2 #larchives,
+#container #linkList #linkList2 #lresources {
+ margin: 0 0 10px 0;
+ padding: 0 0 15px 0;
+ background: url(boxBottom.gif) bottom right no-repeat; }
+#container #linkList #linkList2 #lselect h3.select,
+#container #linkList #linkList2 #lfavorites h3.favorites,
+#container #linkList #linkList2 #larchives h3.archives,
+#container #linkList #linkList2 #lresources h3.resources {
+ height: 40px;
+ margin: 0;
+ padding: 0; }
+#container #linkList #linkList2 #lselect h3.select { background: url(headStyle.gif) top right no-repeat; }
+#container #linkList #linkList2 #lfavorites h3.favorites { background: url(faves.gif) top right no-repeat; }
+#container #linkList #linkList2 #larchives h3.archives { background: url(arcs.gif) top right no-repeat; }
+#container #linkList #linkList2 #lresources h3.resources { background: url(res.gif) top right no-repeat; }
+
+#container #linkList #linkList2 #lselect ul {
+ list-style: none;
+ margin: 0 10px 0 0;
+ padding: 0 10px 5px 80px;
+ background: url(tileStyle.gif) top right repeat-y; }
+#container #linkList #linkList2 #lfavorites ul,
+#container #linkList #linkList2 #larchives ul,
+#container #linkList #linkList2 #lresources ul {
+ list-style: none;
+ margin: 0 10px 0 0;
+ padding: 0 10px 5px 40px;
+ background: url(tile.gif) top right repeat-y; }
+#container #linkList #linkList2 #lselect li,
+#container #linkList #linkList2 #lfavorites li,
+#container #linkList #linkList2 #larchives li,
+#container #linkList #linkList2 #lresources li {
+ margin: 0;
+ padding: 0;
+ font-size: 0.7em; }/* css Zen Garden submission 035 - 'Release One' by Didier Hilhorst, http://www.nundroo.com/ */
+/* css released under Creative Commons License - http://creativecommons.org/licenses/by-nc-sa/1.0/ */
+/* All associated graphics copyright 2003, Didier Hilhorst */
+/* Added in 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the
+ designer's written permission. However, feel free to study the CSS and use
+ techniques you learn from it elsewhere. */
+
+
+
+/* Overall Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+body {
+ background: #d8d8d8 url(bg.gif) repeat-y top left;
+ font-family: 'Lucida Grande','Lucida Sans Unicode',arial,verdana,sans-serif;
+ margin: 0;
+ padding: 0;
+ color: #666;
+ }
+
+
+/* Layout Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+#container {
+ background: transparent url(bg_rel-one.gif) no-repeat bottom right;
+ margin: 0;
+ padding: 0;
+ }
+
+#intro {
+ background: transparent url(bg_pattern.gif) repeat top left;
+ margin: 0;
+ padding: 0;
+ border-bottom: 2px solid #fff
+ }
+
+#supportingText {
+ background: transparent url(bg_left.gif) repeat-y top left;
+ margin: 0;
+ padding: 0;
+ }
+
+#pageHeader {
+ background: #9bec37 url(bg_header.gif) repeat-y top left;
+ color: #666;
+ height: 180px;
+ margin: 0;
+ border-bottom: 2px solid #fff;
+ }
+
+#pageHeader h1 {
+ display: none;
+ }
+
+#pageHeader h2 {
+ display: none;
+ }
+
+#quickSummary {
+ height: 166px;
+ width: 735px;
+ background: #100b0a url(bg_sub_header.jpg) no-repeat top right;
+ color: #fff;
+ border-bottom: 2px solid #fff;
+ margin: 0;
+ }
+
+#quickSummary p.p1 {
+ padding: 14px;
+ margin: 0;
+ width: 188px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 160px; /* Actual value for conformant browsers */
+ }
+
+html>#quickSummary p.p1 {
+ width: 160px; /* Be nice to Opera */
+ }
+
+#quickSummary p.p2 {
+ padding: 0px 14px 14px 14px;
+ margin: 0;
+ width: 158px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 130px; /* Actual value for conformant browsers */
+ }
+
+html>#quickSummary p.p2 {
+ width: 130px; /* Be nice to Opera */
+ }
+
+#preamble {
+ margin-left: 233px;
+ background: #f90 url(bg_preamble.gif) no-repeat top right;
+ color: #fff;
+ border-right: 2px solid #fff;
+ padding-bottom: 16px;
+ width: 502px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 500px; /* Actual value for conformant browsers */
+ }
+
+html>#preamble {
+ width: 500px; /* Be nice to Opera */
+ }
+
+#explanation, #participation, #benefits {
+ margin-left: 233px;
+ border: 1px solid #bbb;
+ background: #f5f5f5;
+ color: #666;
+ margin-bottom: 2px;
+ width: 500px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 498px; /* Actual value for conformant browsers */
+ }
+
+html>#explanation, #participation, #benefits {
+ width: 498px; /* Be nice to Opera */
+ }
+
+#requirements {
+ margin-left: 233px;
+ border: 1px solid #bbb;
+ background: #f5f5f5;
+ color: #666;
+ margin-bottom: 0;
+ padding-bottom: 16px;
+ width: 500px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 498px; /* Actual value for conformant browsers */
+ }
+
+html>#requirements {
+ width: 498px; /* Be nice to Opera */
+ }
+
+#footer {
+ border-top: 2px solid #fff;
+ background: #9bec37 url(bg_footer.gif) no-repeat top left;
+ color: #fff;
+ padding: 14px 0 8px 252px;
+ height: 36px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 12px; /* Actual value for conformant browsers (IE6 needs a height value to display the background correctly. Don't even start...) */
+ }
+
+html>#footer {
+ height: 12px; /* Be nice to Opera */
+ }
+
+#linkList {
+ position: absolute;
+ background: #b5b5b5;
+ color: #666;
+ top: 350px;
+ padding: 12px;
+ border-right: 2px solid #fff;
+ width: 231px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 207px; /* Actual value for conformant browsers */
+ }
+
+html>#linkList {
+ width: 207px; /* Be nice to Opera */
+ }
+
+#larchives, #lfavorites, #lresources {
+ background: #dfdfdf;
+ color: #666;
+ border: 2px solid #fff;
+ padding: 12px;
+ margin: 0 0 12px 0;
+ }
+
+#lselect {
+ background: #dfdfdf url(bg_lselect.gif) no-repeat top right;
+ color: #666;
+ border: 2px solid #fff;
+ padding: 12px;
+ margin: 0 0 12px 0;
+ }
+
+
+/* Text Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+p {
+ font-size: 11px;
+ text-align: justify;
+ }
+
+
+#preamble p, #quickSummary p.p2 {
+ line-height: 1.5;
+ color: #fff;
+ background: transparent;
+ }
+
+#preamble p {
+ font-size: 10px;
+ width: 250px;
+ text-align: justify;
+ }
+
+#preamble p.p1 {
+ margin: 16px 18px 10px 18px;
+ }
+
+#preamble p.p2 {
+ margin: 0 18px 10px 18px;
+}
+
+#preamble p.p3 {
+ padding: 0;
+ margin: 0 18px 0 18px;
+ }
+
+
+/* First Paragraphs */
+
+#explanation p.p1, #participation p.p1, #requirements p.p1 {
+ padding: 0;
+ margin: 16px 18px 12px 18px;
+ }
+
+
+/* Intermediate Paragraphs */
+
+#participation p.p2, #participation p.p3, #requirements p.p2, #requirements p.p3, #requirements p.p4 {
+ padding: 0;
+ margin: 12px 18px 12px 18px;
+ }
+
+
+/* Last Paragraphs */
+
+#explanation p.p2, #participation p.p4 {
+ padding: 0;
+ margin: 0px 18px 16px 18px;
+ }
+
+#requirements p.p5 {
+ margin: 0px 18px 0px 18px;
+ padding: 0;
+ }
+
+
+/* One Paragraph */
+
+#benefits p.p1 {
+ margin: 16px 18px 16px 18px;
+ }
+
+
+#supportingText p {
+ line-height: 1.5;
+ }
+
+#quickSummary p.p1 {
+ font-size: 9px;
+ background: transparent;
+ color: #999;
+ text-align: left;
+ }
+
+#quickSummary p.p2 {
+ font-size: 9px;
+ color: #999;
+ text-align: left;
+ }
+
+#footer {
+ font-size: 9px;
+ font-family: 'Arial', Helvetica, sans-serif; /* Looks slightly better */
+ }
+
+/* Lists Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+#linkList ul {
+ font-size: 10px;
+ list-style:none;
+ margin: 0;
+ padding: 0;
+ }
+
+#linkList ul li {
+ background: url(bullet_gen.gif) no-repeat 2px 3px;
+ margin: 0;
+ padding: 0 0 5px 15px;
+ line-height: 12px;
+ color: #999;
+ }
+
+#linkList #lselect li {
+ background: url(bullet_design.gif) no-repeat 2px 3px;
+ font-size: 9px;
+ }
+
+#linkList #lfavorites li {
+ background: url(bullet_fav.gif) no-repeat;
+ font-size: 9px;
+ }
+
+#linkList #lselect a:link, #linkList #lselect a:visited, #linkList #lfavorites a:link, #linkList #lfavorites a:visited {
+ display: block;
+ }
+
+#linkList #lselect a.c:link, #linkList #lselect a.c:visited, #linkList #lfavorites a.c:link, #linkList #lfavorites a.c:visited {
+ display:inline;
+ }
+
+#larchives li, #lresources li {
+ text-transform: lowercase;
+ }
+
+
+/* Links Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+a, a:link, a:visited {
+ background: transparent;
+ color: #333;
+ text-decoration: underline;
+ }
+
+a:hover {
+ background: transparent;
+ color: #333;
+ text-decoration: none;
+ }
+
+#quickSummary a, #quickSummary a:link, #quickSummary a:visited {
+ background: transparent url(download.gif) no-repeat 0 4px;
+ color: #fff;
+ text-transform: uppercase;
+ text-decoration: none;
+ padding-left: 8px;
+ }
+
+#quickSummary a:hover {
+ text-decoration: underline;
+ }
+
+#linkList a, #linkList a:link, #linkList a:visited {
+ background: transparent;
+ color: #444;
+ text-decoration: none;
+ }
+
+#linkList a:hover {
+ background: transparent;
+ color: #333;
+ text-decoration: underline;
+ }
+
+#linkList a.c, #linkList a.c:link, #linkList a.c:visited {
+ background: transparent;
+ color: #666;
+ text-decoration: none;
+ }
+
+#linkList a.c:hover {
+ background: transparent;
+ color: #333;
+ text-decoration: underline;
+ }
+
+#linkList #lselect a {
+ font-size: 10px;
+ }
+
+#linkList #lselect a.c {
+ font-size: 9px;
+ text-transform: lowercase;
+ }
+
+#footer a, #footer a:link, #footer a:visited {
+ background: transparent url(arrow_footer.gif) no-repeat 0 2px;
+ color: #fff;
+ text-decoration: none;
+ text-transform: uppercase;
+ padding-left: 8px;
+ }
+
+#footer a:hover {
+ text-decoration: underline;
+ }
+
+
+/* Headings Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+h3 {
+ margin-bottom: 0px;
+ }
+
+h3 span {
+ display: none;
+ }
+
+#linkList h3 {
+ width: 150px;
+ height: 20px;
+ margin-top: 20px;
+ }
+
+#preamble h3 {
+ background: transparent url(title_road.gif) no-repeat top left;
+ width: 500px;
+ height: 34px;
+ border-bottom: 2px solid #fff;
+ margin: 0;
+ height: 36px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 34px; /* Actual value for conformant browsers */
+ }
+
+html>#preamble h3 {
+ height: 34px; /* Be nice to Opera */
+ }
+
+#explanation h3, #participation h3, #benefits h3, #requirements h3 {
+ width: 498px;
+ height: 30px;
+ margin: 0;
+ }
+
+#explanation h3 {
+ background: transparent url(title_about.gif) no-repeat top left;
+ }
+
+#participation h3 {
+ background: transparent url(title_partici.gif) no-repeat top left;
+ }
+
+#benefits h3 {
+ background: transparent url(title_benef.gif) no-repeat top left;
+ }
+
+#requirements h3 {
+ background: transparent url(title_req.gif) no-repeat top left;
+ }
+
+#lselect h3, #lfavorites h3, #larchives h3, #lresources h3 {
+ height: 28px;
+ width: 100%;
+ margin: 0;
+ }
+
+#lselect h3 {
+ background: transparent url(bg_select_des.gif) no-repeat top left;
+ }
+
+#lfavorites h3 {
+ background: transparent url(bg_select_fav.gif) no-repeat top left;
+ }
+
+#larchives h3 {
+ background: transparent url(bg_select_arc.gif) no-repeat top left;
+ }
+
+#lresources h3 {
+ background: transparent url(bg_select_res.gif) no-repeat top left;
+ }
+
+
+/* Other Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+acronym {
+ cursor: help;
+ }
+
+#preamble acronym {
+ border-bottom: 1px dotted #ffe0b3;
+}
+
+#lresources acronym {
+ border-bottom: 1px dotted #999;
+}
+
+#supportingText acronym {
+ background: transparent url(acro.gif) no-repeat center right;
+ padding-right: 11px;
+ margin-right: 1px;
+ cursor: help;
+ border: 0;
+ }
+
+#participation a acronym {
+ background: transparent;
+ padding: 0;
+ margin: 0;
+}
+
+#extraDiv1, #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
+ display: none; /* I was tempted at times though... */
+ }
+
+img {
+ display: none;
+ }/* css Zen Garden submission 036 - 'White Lily' by Jens Kristensen, http://j-k.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jens Kristensen */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* You may use this file as a foundation for any new work, but you may find it easier to start from scratch. */
+/* Not all elements are defined in this file, so you'll most likely want to refer to the xhtml as well. */
+
+
+/* basic elements */
+/*---------------------------------------------------*/
+
+body, html, div {
+ margin: 0;
+ padding: 0;
+}
+
+
+body {
+ font: 8pt/16pt verdana, geneva, arial, sans serif;
+ color: #000;
+ background: #fff url(lbg.gif) repeat-y;
+
+}
+
+/* specific divs */
+
+/* container keeps it all together */
+/*---------------------------------------------------*/
+
+#container{
+ border-top:1px solid #230;
+ border-right: 1px solid #230;
+ width:760px;
+ margin: 0px;
+ padding: 0px;
+ background: transparent url(topbg.gif) repeat-x;
+
+}
+
+/* intro div and its content */
+/*---------------------------------------------------*/
+
+#intro {
+ margin:0;
+ padding:0;
+ margin-top:20px;
+ width:760px;
+ background: transparent url(lsh.gif) no-repeat 687px 231px;
+}
+
+#pageHeader {
+ position:absolute;
+ left:0;
+ width: 355px;
+ height:201px
+
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: transparent url(centerpiece.jpg) no-repeat;
+ margin-top: 0px;
+ width: 355px;
+ height: 201px;
+ float: left;
+}
+
+#pageHeader h1 span,#pageHeader h2,#pageHeader h2 span {
+ display:none;
+}
+
+#quickSummary{
+ margin: 0 0 0 355px;
+ width:332px;
+ height: 200px;
+ background: #ABBC47 url(quicksumbg.gif);
+ border-right:1px solid #ABBC47;
+ border-top:1px solid #ABBC47;
+}
+
+#quickSummary p.p1 {
+ font: bold 11px/14px arial,verdana, sans serif;
+ color:#fff;
+ padding:100px 30px 2px 30px;
+}
+
+#quickSummary p.p2{
+ position:absolute;
+ left:0;
+ top:230px;
+ font: 10px verdana, arial, sans serif;
+ color:#fff;
+ margin:0 30px;
+}
+
+/* visually footer is moved up to be with the intro stuff */
+
+#footer{
+ position:absolute;
+ left:0;
+ top:230px;
+ font: 10px verdana, arial, sans serif;
+ color:#fff;
+ margin:0 30px 0 400px;
+ width:340px;
+ text-align:right;
+}
+
+#quickSummary p.p2 a, #footer a{
+ color:#fff;
+}
+
+#quickSummary p.p2 a:hover, #footer a:hover{
+ color:#230;
+ background-color:#fff;
+ text-decoration:none;
+}
+
+/* visually we now move into the main area of the page
+/*---------------------------------------------------*/
+
+#preamble{
+ padding:50px 30px 30px 30px;
+ margin:30px 0 0 355px;
+ border-width:0 0 1px 1px;
+ border-color:#fff #ddd;
+ border-style:solid;
+ text-align:left;
+ background: transparent url(endsection.gif) no-repeat bottom center;
+
+ width:343px;
+}
+
+#preamble p, #explanation p, #benefits p, #participation p, #requirements p{
+ text-align:justify;
+}
+
+#preamble h3{
+ background: transparent url(h3preamble.gif) no-repeat bottom left;
+ margin: 0px;
+ width: 270px;
+ height: 36px;
+ border-bottom:1px solid #ddd;
+}
+#preamble h3 span{
+ display:none
+}
+#preamble p.p1{
+ width: 270px;
+}
+
+
+#supportingText{
+ border-width:0 0 1px 1px;
+ border-color:#fff #ddd;
+ border-style:solid;
+ margin:0px 0px 0px 355px;
+ padding:50px 30px 0 30px;
+ width:405px;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width:343px;
+
+
+}
+
+#explanation, #benefits, #participation, #requirements {
+ padding:0 0 20px 0;
+ margin-bottom:20px;
+ text-align:left;
+ background: transparent url(endsection.gif) no-repeat bottom center;
+}
+
+p{
+ padding-left: 8px;
+ padding-right: 8px;
+}
+
+.p1{
+ margin-top:26px;
+}
+
+#quickSummary .p1{
+ margin-top:0;
+}
+
+/* use images to display headers */
+
+#explanation h3{
+ background: transparent url(h3explanation.gif) no-repeat bottom left;
+}
+#benefits h3{
+ background: transparent url(h3benefits.gif) no-repeat bottom left;
+}
+#participation h3{
+ background: transparent url(h3participation.gif) no-repeat bottom left;
+}
+#requirements h3{
+ background: transparent url(h3requirements.gif) no-repeat bottom left;
+}
+
+#explanation h3, #benefits h3, #participation h3, #requirements h3 {
+ margin: 0px;
+ min-width: 200px;
+ height: 36px;
+ border-bottom:1px solid #ddd;
+}
+#explanation h3 span, #benefits h3 span, #participation h3 span, #requirements h3 span {
+ display:none
+}
+
+/* and finally we place the list of links */
+/*---------------------------------------------------*/
+
+#linkList{
+ position:absolute;
+ left:0px;
+ top:252px;
+ width:355px;
+ padding:50px 30px 0 130px;
+ background: transparent url(lsh.gif) no-repeat top left;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width:195px;
+}
+
+#linkList2{
+ padding:0;
+}
+
+/* use images for headers */
+
+h3.select{
+ background: transparent url(h3select.gif) no-repeat bottom left;
+}
+h3.archives{
+ background: transparent url(h3archives.gif) no-repeat bottom left;
+}
+h3.resources{
+ background: transparent url(h3resources.gif) no-repeat bottom left;
+}
+
+h3.select, h3.archives, h3.resources {
+ margin: 0px;
+ min-width: 200px;
+ height: 36px;
+ border-bottom:1px solid #ddd;
+}
+h3.select span, h3.archives span, h3.resources span{
+ display:none
+}
+
+/* put some style on the lists */
+
+/* first the list of designs */
+#lselect ul {
+ margin: 10px 0 0 0;
+ padding: 10px;
+}
+
+#lselect li {
+ line-height: 2.5ex;
+ list-style-type: none;
+ display: block;
+ padding: 5px 0px 5px 25px;
+ margin: 5px 0;
+ border-bottom:1px solid #eee;
+ background: transparent url(bullet.gif) no-repeat 0px 7px;
+}
+
+#lselect li a{
+ white-space:nowrap;
+ display:block;
+ font-weight:bold;
+}
+
+#lselect li a.c{
+ text-decoration:none;
+ display:inline;
+ font-weight:normal;
+}
+
+#lselect li a.c:hover{
+ text-decoration:underline;
+}
+
+/* then the lists of general info etc */
+
+#larchives ul, #lresources ul {
+ margin: 10px 0 0 0;
+ padding: 10px;
+}
+
+#larchives li, #lresources li {
+ list-style-type: none;
+ display: block;
+ padding: 0px;
+ padding: 0px 0px 0px 25px;
+ margin: 0;
+ background: transparent url(bullet2.gif) no-repeat 2px 7px;
+}
+
+/* some generic stuff */
+/*---------------------------------------------------*/
+
+a {
+ color:#230;
+}
+
+a:visited {
+ color:#672;
+}
+
+a:hover {
+ color:#ABBC47;
+}
+
+/* and finally we use one of the extra divs available */
+/*---------------------------------------------------*/
+
+#extraDiv1{
+ width:3px;
+ height:18px;
+ position:absolute;
+ left:354px;
+ top:252px;
+ background: transparent url(ltop.gif) no-repeat;
+}
+
+/* css Zen Garden submission 037 - 'pret-a-porter' by Minz Meyer - www.minzweb.de */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All other graphics copyright 2003, Minz Meyer */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* Well, though I know that web is not print, I wanted to try a visual concept that I designed for a printed brochure and
+see what happens when brought to screen. According to the printed object, which is heavily landscape format, I had to
+try the horizontal scrolling. (-- Didn't reinvent the wheel, Mike Pick already did this with his "What lies Beneath" design.)
+All in all I wanted to give it a look of a modern lifestyle and fashion magazine.
+The Photograph was shot by Thomas Moeller */
+
+
+body {
+ width: 2048px;
+ margin: 0;
+ padding: 0;
+ color: #888398;
+ background-color: #fff;
+ background-image: url(bg_body.jpg);
+ background-position: right;
+ background-repeat: repeat-y;
+ font: 11px/1.5 Arial, Verdana, sans-serif;
+
+}
+
+/* Different behaviour of the lady. Just a compromise for IE */
+
+div#extraDiv2 {
+ background-image: url(bg_face_ie.jpg);
+ background-repeat: no-repeat;
+ background-position: left bottom;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ height: 600px;
+ width: 265px;
+}
+
+/* And now the cool stuff, hiding from IE with child-selectors */
+
+body#css-zen-garden>div#extraDiv2 {
+ background-image: url(bg_face.jpg);
+ background-repeat: no-repeat;
+ background-position: left bottom;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ height: 594px;
+ width: 205px;
+ z-index: 2;
+}
+
+/* Using Geckos capability of PNG transparency to create the smooth scrolling border,
+when the screen is scrolled and the content vanishes to the left */
+
+body#css-zen-garden>div#extraDiv3 {
+ position: fixed;
+ left: 0;
+ top: 0;
+ height: 100%;
+ z-index: 1;
+ background-image: url(bg_white.png);
+ width: 225px;
+}
+
+/* The Header, using the "old":)) FIR-method */
+
+div#pageHeader {
+ position: relative;
+ left: 220px;
+ width: 1828px;
+}
+
+div#pageHeader h1 {
+ width: 493px;
+ height: 83px;
+ margin: 20px 0 0;
+ background-image: url(csszengarden.jpg);
+}
+
+div#pageHeader h1 span {
+ display: none;
+}
+
+div#pageHeader h2 {
+ width: 1826px;
+ height: 27px;
+ background-image: url(thebeautyofcssdesign.jpg);
+ background-position: right;
+ background-repeat: no-repeat;
+ margin-top: -10px;
+}
+
+div#pageHeader h2 span {
+ display: none;
+}
+
+div#quickSummary {
+ position: absolute;
+ width: 1300px;
+ left: 228px;
+ top: 98px;
+ letter-spacing: 0.1em;
+ color: #A5A3B5;
+ background-color: transparent;
+}
+
+/* Have the summary displayed in a single line */
+
+div#quickSummary p.p2, div#quickSummary p.p1 {
+ display: inline;
+ margin: 0;
+}
+
+div#extraDiv1 { /*adding a border */
+ position: absolute;
+ left: 225px;
+ top: 90px;
+ height: 1px;
+ width: 1823px;
+ background-color: #A5A3B5;
+ color: inherit;
+}
+
+
+/* The main content. All positioned absolutely
+-----------------------------------------------
+ The text-links */
+
+a:link, a:visited {
+ color: #A52A2A;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+/* The Preamble */
+
+div#preamble {
+ position: absolute;
+ left: 375px;
+ top: 160px;
+ width: 200px;
+ text-align: justify;
+}
+
+div#preamble h3 {
+ width: 200px;
+ height: 25px;
+ background-image: url(theroad.jpg);
+ margin: 0 0 0.5em;
+}
+
+div#preamble h3 span {
+ display: none;
+}
+
+div#preamble p {
+ margin: 0 0.5em 0.5em;
+}
+
+/* Supporting Text
+--------------------------------------*/
+
+div#explanation {
+ position: absolute;
+ left: 625px;
+ top: 160px;
+ width: 200px;
+ text-align: justify;
+}
+
+div#explanation h3 {
+ width: 200px;
+ height: 25px;
+ background-image: url(sowhatisthisabout.jpg);
+ margin: 0 0 0.5em;
+}
+
+div#explanation h3 span {
+ display: none;
+}
+
+div#explanation p {
+ margin: 0 0.5em 0.5em;
+}
+
+div#participation {
+ position: absolute;
+ left: 875px;
+ top: 160px;
+ width: 200px;
+ text-align: justify;
+}
+
+div#participation h3 {
+ width: 200px;
+ height: 25px;
+ background-image: url(participation.jpg);
+ margin: 0 0 0.5em;
+}
+
+div#participation h3 span {
+ display: none;
+}
+
+div#participation p {
+ margin: 0 0.5em 0.5em;
+}
+
+div#benefits {
+ position: absolute;
+ left: 1125px;
+ top: 160px;
+ width: 200px;
+ text-align: justify;
+}
+
+div#benefits h3 {
+ width: 200px;
+ height: 25px;
+ background-image: url(benefits.jpg);
+ margin: 0 0 0.5em;
+}
+
+div#benefits h3 span {
+ display: none;
+}
+
+div#benefits p {
+ margin: 0 0.5em 0.5em;
+}
+
+div#requirements {
+ position: absolute;
+ left: 1375px;
+ top: 160px;
+ width: 400px;
+ text-align: justify;
+}
+
+div#requirements h3 {
+ width: 400px;
+ height: 25px;
+ background-image: url(requirements.jpg);
+ margin: 0 0 0.5em;
+}
+
+div#requirements h3 span {
+ display: none;
+}
+
+div#requirements p {
+ margin: 0 0.5em 0.5em;
+}
+
+/* The Navigation
+---------------------------------------*/
+
+ div#linkList {
+ position: absolute;
+ left: 1828px;
+ top: 160px;
+ width: 220px;
+ background-color: transparent;
+ color: inherit;
+ background-image: url(bg_linklist.jpg);
+ background-repeat: repeat-y;
+ text-transform: lowercase;
+}
+
+
+div#linkList div#lselect li a:link, div#linkList div#lselect li a:visited {
+ display: block;
+ margin-left: -10px;
+ padding-left: 26px;
+ color: #8B879E;
+ background-color: transparent;
+ border-top: 1px solid #C6C6D2;
+ background-image: url(linklistlink.jpg);
+ background-repeat: no-repeat;
+}
+
+div#linkList li a:link, div#linkList div#lselect li a.c:link, div#linkList li a:visited, div#linkList div#lselect li a.c:visited {
+ display: inline;
+ background-image: none;
+ color: #A52A2A;
+ background-color: transparent;
+ padding-left: 0;
+ margin-left: 0;
+ border: none;
+}
+
+
+div#linkList ul {
+ list-style: none;
+ margin: 0 0 0 25px;
+ padding-left: 0;
+}
+
+div#linkList li {
+ padding-left: 10px;
+}
+
+
+
+div#lselect h3 {
+ float:left;
+ margin-top: 0;
+ width: 25px;
+ height: 200px;
+ background-image: url(selectadesign.jpg);
+ background-repeat: no-repeat;
+}
+
+div#lselect h3 span {
+ display: none;
+}
+
+div#larchives {
+ clear:left;
+ margin-top: 0;
+ border-top: 10px solid #D9D6E7;
+}
+
+div#larchives h3 {
+ float:left;
+ margin-top: 0;
+ width: 25px;
+ height: 81px;
+ background-image: url(archives.jpg);
+ background-repeat: no-repeat;
+}
+
+div#larchives h3 span {
+ display: none;
+}
+
+div#lresources {
+ clear:left;
+ margin-top: 0;
+ border-top: 10px solid #D9D6E7;
+}
+
+div#lresources h3 {
+ float:left;
+ margin-top: 0;
+ width: 25px;
+ height: 95px;
+ background-image: url(ressources.jpg);
+ background-repeat: no-repeat;
+}
+
+div#lresources h3 span {
+ display: none;
+}
+
+/* ...and the footer
+--------------------------------------*/
+div#footer {
+ position: absolute;
+ left: 1828px;
+ top: 3px;
+ width: 220px;
+ height: 20px;
+ text-align: center;
+ word-spacing: 0.1em;
+ overflow: hidden;
+}
+
+div#footer a:link, div#footer a:visited {
+ color: #B2AFC0;
+ background-color: transparent;
+}
+
+
+
+/* and extra artwork */
+
+div#extraDiv4 {
+ position: absolute;
+ left: 1828px;
+ top: 20px;
+ width: 214px;
+ height: 65px;
+ color: inherit;
+ background-color: #D9D6E7;
+ background-image: url(transition.jpg);
+ background-repeat: no-repeat;
+}/* css Zen Garden submission 038 - 'Creepy Crawly' by Luke Redpath - www.sonicdeath.co.uk */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All other graphics copyright 2003, Luke Redpath */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+/* Define main areas */
+body {
+ margin: 0;
+ padding: 0;
+ background: #97B661 url(body_bground.gif) repeat-y;
+}
+#container {
+ width: 760px;
+ background-color: #6E7F71;
+}
+
+/* Main Headers */
+#pageHeader h1 {
+ width: 760px;
+ height: 150px;
+ margin: 0;
+ padding: 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background-image: url(h1_mainheader.jpg);
+}
+#pageHeader h2 {
+ width: 760px;
+ height: 123px;
+ margin: 0;
+ padding: 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background-image: url(h2_mainheader.jpg);
+}
+
+/* Main content */
+#quickSummary {
+ margin-left: 289px;
+ background-image: url(summary_background.jpg);
+ background-repeat: no-repeat;
+}
+#preamble,
+#supportingText {
+ margin-left: 289px;
+}
+#quickSummary p,
+#preamble p,
+#supportingText p {
+ margin: 0 30px 20px 20px;;
+ padding: 0;
+ font-family: Georgia, serif;
+ font-size: 12px;
+ line-height: 1.6;
+ color: #DCEBDF;
+}
+
+/* Paragraph headers */
+#preamble h3 {
+ height: 36px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background: url(headers/preamble.gif) no-repeat;
+}
+#explanation h3 {
+ height: 36px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background: url(headers/explanation.gif) no-repeat;
+}
+#participation h3 {
+ height: 36px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background: url(headers/participation.gif) no-repeat;
+}
+#benefits h3 {
+ height: 36px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background: url(headers/benefits.gif) no-repeat;
+}
+#requirements h3 {
+ height: 36px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ text-indent: -100em;
+ overflow: hidden;
+ background: url(headers/requirements.gif) no-repeat;
+}
+
+/* Links */
+#linkList {
+ position: absolute;
+ top: 273px;
+ left: 0;
+ width: 289px;
+ margin: 0;
+ padding: 0 0 0 32px;
+ background-image: url(linklist_background.jpg);
+ background-repeat: no-repeat;
+}
+#linkList2 {
+ margin-right: 38px;
+}
+#linkList h3 {
+ font-family: Georgia, serif;
+ font-size: 15px;
+ color: #DCEBDF;
+ padding: 0;
+ margin: 0 0 20px 0;
+}
+#linkList ul {
+ margin: 0 0 20px 0;
+ padding: 0 32px 0 0;
+ list-style-type: none;
+ font-family: Georgia, serif;
+ font-size: 12px;
+ color: #DCEBDF;
+}
+#linkList li {
+ margin: 0 0 5px 0;
+ padding: 0 0 20px 0;
+ background: url(list_divider.gif) no-repeat;
+ background-position: bottom center;
+ text-align: center;
+}
+#lselect li a {
+ display: block;
+ text-transform: uppercase;
+}
+#lselect li a.c {
+ display: inline;
+ text-transform: none;
+}
+
+/* Link styles */
+a:link {
+ color: #E9EEDD;
+}
+a:hover {
+ color: #FFF;
+}
+a:visited {
+ color: #AAA;
+}
+
+/* Site footer */
+#footer {
+ text-align: right;
+ padding: 40px 20px 20px 0;
+ font-size: 11px;
+}/* css Zen Garden submission 039 - 'Erratic Blue' by Ian Main, http://www.e-lusion.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Ian Main */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* Font resizing has been locked down. I didn't want it to come to this but it mangles my layout. */
+
+/* basic elements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+body {
+ margin: 0px;
+ padding: 0px;
+ font-family: verdana, arial, helvetica, sans-serif;
+ color: #000;
+ background: #ebebeb url(bg-grid.gif);
+ height: 100%;
+ text-align: center;
+ }
+
+html {
+ height: 100%;
+ margin: 0px;
+ padding: 0px;
+ }
+
+p, h3 {
+ margin: 0;
+ padding: 0 0px 5px 0;
+ }
+
+ul {
+ margin: 0;
+ padding: 2px 0 5px 0;
+ }
+
+li {
+ line-height: 1.6;
+ }
+
+/* Old-School! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+acronym {
+ cursor: help;
+ }
+
+a acronym {
+ cursor: help;
+ }
+/* End Old-School! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+a:link {
+ font-weight: 900;
+ color: #777;
+ text-decoration: none;
+ }
+
+a:visited {
+ font-weight: 900;
+ color: #999;
+ text-decoration: none;
+ }
+
+a:hover, a:active {
+ font-weight: 900;
+ color: #555;
+ }
+
+/* Layout */
+#container {
+ position: relative;
+ width: 712px;
+ padding: 0px;
+ margin-left: auto;
+ margin-right: auto;
+ border: 1px solid #000;
+ border-top: 0px;
+ border-bottom: 0px;
+ text-align: left;
+ /* Could not get the right column to stretch heigh: 100% of window view. So I cheated and had to
+ create a background image to fake the 100% column. */
+ background: #A1D9FC url(bg-full.gif) repeat-y;
+ }
+html>body #container {
+ width: 712px; /* ie5win fudge ends */
+ }
+
+#pageHeader h1{
+ left: 209px;
+ width: 712px;
+ height: 163px;
+ background: transparent url(intro_bg.jpg) no-repeat;
+ /* border-bottom: 3px solid #CCEDFF; Added to bevel lower edge. Layer orders were failing causing this to break. */
+ margin-top: 0;
+ margin-bottom: 25px;
+ }
+
+#pageHeader h1 span, #pageHeader h2 span, #extradiv1, #extradiv3, #extradiv4, #extradiv5, #extradiv6 {
+ margin: 0;
+ padding: 0;
+ display: none;
+ }
+
+/* Extra Divs - OverView, Footer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+/* An overview title for quickSummary. Great idea but couldn't get to work.
+ It would have sat at the top of the right column. Oh well, next time maybe! */
+
+/* #extraDiv1 {
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+ background: transparent url(list_4.png) no-repeat;
+ height: 57px;
+ } */
+
+ #extraDiv2 {
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: -20px;
+ width: 712px;
+ height: 25px;
+ background: transparent url(foot-bg.gif);
+ border-left: 1px solid #000;
+ border-right: 1px solid #000;
+ }
+
+/* Extra Divs Finish Here ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#quickSummary p.p1 {
+ position: relative;
+ margin-left: 465px;
+ width: 235px;
+ font-size: 10px;
+ color: #b9b9b9;
+ line-height: 20px;
+ z-index: 1;
+ padding: 0 5px 5px 5px;
+ }
+
+#quickSummary p.p2 {
+ position: absolute;
+ top: 147px;
+ margin-left: 10px;
+ font-size: 11px;
+ font-family: verdana, sans-serif;
+ color: #777;
+ }
+ /* #linkList2 {
+ left: 0px;
+ background: transparent url(list_4.png) no-repeat;
+ height: 57px;
+ } */
+
+#linkList {
+ position: absolute;
+ top: 160px;
+ /*top: 10em; Dave suggested this but if I change the font size through the browser it pulls the whole right coloum up!!*/
+ margin-left: 458px;
+ margin-top: 3px;
+ background: transparent url(bg-side.gif) repeat-y;
+ width: 254px;
+ padding: 10px;
+ }
+
+#linkList h3.select {
+ background: transparent url(list_1.gif) no-repeat;
+ margin-top: 130px;
+ height: 57px;
+ margin-left: 5px;
+ }
+
+#linkList h3.archives {
+ background: transparent url(list_2.gif) no-repeat;
+ height: 57px;
+ margin-top: 20px;
+ margin-left: 5px;
+ }
+
+#linkList h3.resources {
+ background: transparent url(list_3.gif) no-repeat;
+ height: 57px;
+ margin-top: 20px;
+ margin-left: 5px;
+ }
+
+
+#linkList h3.select span, #linkList h3.archives span, #linkList h3.resources span {
+ display:none
+ }
+
+#linkList ul {
+ margin: 10px;
+ padding: 0px;
+ }
+
+#linkList li {
+ list-style-type: none;
+ background: transparent;
+ display: block;
+ font-size: 10px;
+ font-family: verdana, sans-serif;
+ color: #b9b9b9;
+ }
+
+#linkList li a:link, a:visited {
+ color: #b9b9b9;
+ text-decoration: none;
+ }
+
+#linkList li a:hover, #linkList li a:active{
+ color: #777;
+ text-decoration: none;
+ }
+
+a.c:link, a.c:visited, a.c:hover, a.c:active {
+ font-weight: normal;
+
+ }
+#preamble {
+ padding: 10px;
+ width: 450px;
+ margin-top: -110px;
+ font-family: verdana, sans-serif;
+ font-size: 13px;
+ color: #0F7FD0;
+ background: transparent url(text-bg.gif) top left repeat-y;
+ }
+
+#preamble h3 {
+ margin-top: 10px;
+ font-family: verdana, sans-serif;
+ margin-bottom: 20px;
+ padding: 5px;
+ text-align: center;
+ font-weight: bold;
+ color: #fff;
+ background: #86CDF9;
+ border: 1px solid #5FBEF9;
+ width: 428px;
+ font-size: 18px;
+ }
+
+#supportingText {
+ padding: 10px;
+ width: 450px;
+ font-family: verdana, sans-serif;
+ font-size: 13px;
+ color: #0F7FD0;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: 440px;
+ }
+
+#supportingText a:link, #supportingText a:visited {
+ color: #3B92C9;
+ text-decoration: none;
+ }
+
+#supportingText a:hover, #supportingText a:active {
+ color: #fff;
+ border-bottom: 1px solid #fff;
+ text-decoration: none;
+ }
+
+#explanation h3, #participation h3, #benefits h3, #requirements h3 {
+ margin-top: 10px;
+ font-family: verdana, sans-serif;
+ margin-bottom: 20px;
+ padding: 5px;
+ text-align: center;
+ font-weight: bold;
+ color: #fff;
+ background: #86CDF9;
+ border: 1px solid #5FBEF9;
+ width: 428px;
+ font-size: 18px;
+ }
+
+#requirements {
+ }
+
+#requirements p.p5 {
+
+ margin-top: 20px;
+ padding: 5px;
+ text-align: center;
+ font-weight: bold;
+ color: #fff;
+ background: #86CDF9;
+ border: 1px solid #5FBEF9;
+ }
+
+#footer {
+ position: absolute;
+ top: 146px;
+ color: #777;
+ font-size: 12px;
+ margin-left: 470px;
+ width: 230px;
+}
+
+#footer a:link, #footer a:visited {
+ margin: 5px;
+ font-weight: normal;
+ color: #777;
+ text-decoration: none;
+}
+
+#footer a:hover, #footer a:active {
+ color: #333;
+ text-decoration: none;
+}
+
+#extraDiv1, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
+ display: none;
+ }/* css Zen Garden submission 040 - 'The Question Why' by Diane Clayton, http://www.schisma.net/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Diane Clayton */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+ +
+/* basic elements
+---------------------------------------------------------------*/
+body {
+ background: #030409 url(bg_darkblue.gif) repeat; /* stupid browser color shifts */
+ color: #030409;
+ font-family: Arial, sans-serif;
+ font-size: 12px;
+ margin: 0;
+ }
+
+#extraDiv1 {
+ z-index: 0;
+ background: #030409 url(bg_body.jpg) no-repeat top left;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 990px;
+ height: 980px;
+ }
+
+#preamble p, #supportingText p {
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, sans-serif;
+ line-height: 18px;
+ text-align: justify;
+ margin: 0;
+ padding: 0px 20px 10px 20px;
+ }
+#preamble p, #supportingText p {
+ background: #8B95A8 url(bg_lightblue.gif) repeat; /* stupid browser color shifts */
+ }
+
+h3 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ }
+h3 span {
+ display: none;
+ }
+
+a:link, a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #FFFF99;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ }
+
+
+
+/* structuring and main content
+---------------------------------------------------------------*/
+#container {
+ z-index: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 975px;
+ margin: 0;
+ }
+
+#intro {
+ z-index: 1;
+ position: absolute;
+ left: 710px;
+ width: 235px;
+ margin: 0;
+ padding: 0;
+ }
+
+#pageHeader h1 span, #pageHeader h2 span, #quickSummary p.p1 span {
+ display: none;
+ }
+
+#quickSummary {
+ position: absolute;
+ top: 150px;
+ right: 20px;
+ width: 175px;
+ color: #DBE0E6;
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ letter-spacing: 1px;
+ text-align: right;
+ }
+#quickSummary p {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ }
+
+#preamble {
+ background: transparent url(bg_preamble.gif) no-repeat left bottom;
+ position: absolute;
+ top: 327px;
+ left: 0px;
+ width: 235px;
+ padding-bottom: 70px;
+ overflow: hidden;
+ }
+#preamble h3 {
+ background: transparent url(bg_preambleh3.gif) no-repeat left top;
+ height: 60px;
+ }
+
+#supportingText, #explanation, #participation, #benefits, #requirements {
+ margin: 0;
+ padding: 0;
+ }
+
+#supportingText {
+ z-index: 1;
+ position: absolute;
+ top: 327px;
+ left: 285px;
+ }
+
+#explanation {
+ background: transparent url(bg_explanation.gif) no-repeat left bottom;
+ color: #030409;
+ width: 400px;
+ padding-bottom: 25px;
+ margin-bottom: 10px;
+ }
+#explanation h3 {
+ background: transparent url(bg_explanationh3.gif) no-repeat left top;
+ height: 40px;
+ }
+
+#participation {
+ background: transparent url(bg_participation.gif) no-repeat left bottom;
+ color: #030409;
+ width: 400px;
+ padding-bottom: 30px;
+ margin-bottom: 10px;
+ }
+#participation h3 {
+ background: transparent url(bg_participationh3.gif) no-repeat left top;
+ height: 50px;
+ }
+
+#benefits {
+ background: transparent url(bg_benefits.gif) no-repeat left bottom;
+ color: #030409;
+ width: 400px;
+ padding-bottom: 25px;
+ margin-bottom: 20px;
+ }
+#benefits h3 {
+ background: transparent url(bg_benefitsh3.gif) no-repeat left top;
+ height: 45px;
+ }
+
+#requirements {
+ background: transparent url(bg_requirements.gif) no-repeat left bottom;
+ color: #030409;
+ width: 400px;
+ padding-bottom: 20px;
+ margin-bottom: 30px;
+ }
+#requirements h3 {
+ background: transparent url(bg_requirementsh3.gif) no-repeat left top;
+ height: 35px;
+ }
+
+#footer {
+ background: transparent url(bg_footer.gif) no-repeat center top;
+ width: 400px;
+ height: 20px;
+ margin-bottom: 50px;
+ text-align: center;
+ }
+
+
+/* link list
+---------------------------------------------------------------*/
+#linkList {
+ z-index:1;
+ position: absolute;
+ left: 25px;
+ top: 335px;
+ width: 235px;
+ }
+
+#linkList ul {
+ background: #8B95A8 url(bg_lightblue.gif) repeat;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ list-style: none;
+ }
+#linkList ul li {
+ line-height: 18px;
+ margin: 0;
+ margin-left: 20px;
+ padding: 0;
+ padding-left: 25px;
+ padding-bottom: 10px;
+ }
+#linkList #lselect ul li, #linkList #lfavorites ul li {
+ background: transparent url(zenbullet.gif) no-repeat top left;
+ }
+#linkList #larchives ul li, #linkList #lresources ul li {
+ background: url(bullet.gif) no-repeat top left;
+ }
+
+#lselect, larchives, #lresources, #lfavorites {
+ padding: 0;
+ margin: 0;
+ }
+
+#lselect {
+ background: transparent url(bg_lselect.gif) no-repeat bottom left;
+ color: #030409;
+ width: 235px;
+ padding-bottom: 50px;
+ margin-bottom: 10px;
+ }
+#lselect h3 {
+ background: transparent url(bg_lselecth3.gif) no-repeat top left;
+ height:45px;
+ }
+#lselect a:link, #lselect a:visited, #lfavorites a:link, #lfavorites a:visited {
+ display: block;
+ font-size: 13px;
+ letter-spacing: 1px;
+ }
+#lselect a.c:link, #lselect a.c:visited, #lfavorites a.c:link, #lfavorites a.c:visited {
+ display: inline;
+ font-weight: normal;
+ color: #DBE0E6;
+ text-transform: lowercase;
+ padding-left: 3px;
+ }
+
+#larchives {
+ background: transparent url(bg_larchives.gif) no-repeat bottom left;
+ color: #030409;
+ width: 235px;
+ padding-bottom: 20px;
+ margin-bottom: 25px;
+ }
+#larchives h3 {
+ background: transparent url(bg_larchivesh3.gif) no-repeat top left;
+ height: 40px;
+ }
+#larchives li, #lresources li {
+ text-transform: lowercase;
+ }
+#larchives a:link, #larchives a:visited, #lresources a:link, #lresources a:visited {
+ font-size: 13px;
+ letter-spacing: 1px;
+ }
+
+#lresources {
+ background: transparent url(bg_lresources.gif) no-repeat bottom left;
+ color: #030409;
+ width: 235px;
+ padding-bottom: 50px;
+ margin-bottom: 10px;
+ }
+#lresources h3 {
+ background: transparent url(bg_lresourcesh3.gif) no-repeat top left;
+ height: 35px;
+ }
+
+
+/* just in case...
+---------------------------------------------------------------*/
+#lfavorites {
+ background: transparent url(bg_lfavorites.gif) no-repeat bottom left;
+ color: #030409;
+ width: 235px;
+ padding-bottom: 20px;
+ margin-bottom: 20px;
+ }
+#lfavorites h3 {
+ background: transparent url(bg_lfavoritesh3.gif) no-repeat top left;
+ height: 35px;
+ }
+
+
+/* extras
+---------------------------------------------------------------*/
+acronym {
+ border-width:0;
+ }/* css Zen Garden submission 041 - 'door to my garden' by Patrick Lauke, http://redux.deviantart.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Patrick Lauke */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+
+/* general stuff */
+
+
+
+body {
+ font: 0.7em/1.2em Times, serif ;
+ background: #000 url(background.png) -30px 0px no-repeat fixed;
+ color: #999;
+ padding: 0 0 0 470px;
+ margin: 0;
+}
+
+* {
+ text-transform: lowercase; /* could apply this to the body, but IE seems to ignore it there */
+ padding:0;
+ margin:0;
+}
+
+p {
+ margin: 1em 0 0 0;
+ padding: 0 0 1em 0;
+}
+
+
+p.p1:first-line {
+ font-weight: bold;
+}
+
+
+p.p2, p.p3, p.p4 {
+ /* originally used p + p, but IE doesn't play ball with that...so this is a rather ugly kludge */
+ text-indent: 1em;
+ margin-top: -0.8em;
+}
+
+
+h3 {
+ font-size: 1.2em;
+}
+
+ul {
+ list-style: none url(dot.png);
+ padding: 1em 0 0 0;
+ margin-left: 3em
+}
+
+li {
+ margin-bottom: 0.3em;
+}
+
+a {
+ color: #eee;
+ background: transparent;
+ text-decoration: none;
+}
+
+acronym {
+ /* override Mozilla and co.'s standard dotted line under acronyms for a better look
+ (at the detriment of accessibility, unfortunately) */
+ border: none;
+}
+
+
+/* more specific rules */
+
+#container {
+ background: #000 url(bottom_corner.png) no-repeat bottom right;
+ color: inherit;
+ width: 300px;
+}
+
+#pageHeader {
+ background: url(header.png) no-repeat top left;
+ width: 300px;
+ height: 170px;
+}
+
+#pageHeader span {
+ display: none;
+}
+
+#preamble, #supportingText div {
+ padding: 0 35px 0 35px;
+ text-align: justify;
+}
+
+
+/* admittedly graphics intensive, but each of the following divs has its own distincitve
+bracket (left or right) with its own different texture of dirt */
+
+#preamble {
+ background: url(bracket-l1.png) no-repeat top left;
+}
+
+#participation {
+ background: url(bracket-l2.png) no-repeat top left;
+}
+
+#requirements {
+ background: url(bracket-l3.png) no-repeat top left;
+}
+
+#benefits {
+ background: url(bracket-r1.png) no-repeat top right;
+}
+
+#explanation {
+ background: url(bracket-r2.png) no-repeat top right;
+}
+
+
+/* old-style borders for the window-frame look of the menu */
+
+#linkList {
+ position: absolute;
+ top: 145px;
+ left: 215px;
+ background: url(menu-top.png) no-repeat top right;
+ width: 248px;
+ height: 50px;
+}
+
+#linkList2 {
+ margin-top: 30px;
+ background: url(menu-body.png) #000;
+ color: inherit;
+}
+
+#lselect, #larchives, #lresources {
+ padding: 0 15px 0 15px;
+}
+
+
+#linkList2>#lselect {
+ /* slight kludge ? sure...but it adds nice eye candy. hidden from IE through the child selector,
+ and we make up for it later with extraDiv1 */
+ background: url(flower.png) no-repeat top left;
+ margin-left: -65px;
+ padding-left: 80px;
+ min-height: 150px;
+}
+
+#lresources {
+ background: url(menu-bottom.png) no-repeat bottom right;
+ padding-bottom: 2.5em;
+}
+
+
+/* static version of what was originally a flyout menu...but didn't work in Netscape 7 */
+
+#container>#linkList {
+ background: url(menu-top.png) no-repeat top right;
+}
+
+#linkList #linkList2{
+ visibility: visible;
+}
+
+
+/*just to tidy up the bottom end a bit */
+
+#container {
+ padding-bottom: 50px;
+ margin-bottom: -2em;
+}
+
+
+/* a bit of useless visual whimsy...*/
+
+p:hover {
+ color: #aaa;
+ background: transparent;
+}
+
+p:hover a {
+ color: #fff;
+ background: transparent;
+}
+
+/* and now...the extras */
+
+#extraDiv1 {
+ /* this one makes up for the screwy handling of the flower background on #lselect in IE */
+ position: absolute;
+ top: 165px;
+ left: 142px;
+ background: url(flower.png) no-repeat top left;
+ width: 115px;
+ height: 150px;
+}
+
+body>#extraDiv1 {
+ /* and this reverses the previous rule for those browsers (i.e. non IE ones) that already showed
+ the flower background correctly as it was applied to #lselect */
+ display: none;
+}
+
+
+#extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
+ display: none;
+}/* css Zen Garden submission 042 - 'Stone Washed' by Andrew Hayward, http://www.mooncalf.me.uk/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Andrew Hayward */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+ +
+
+/* ---[ General Stuff ]------------------------------ */
+
+ body {
+ margin: 0px;
+ padding: 0px;
+ background: #e6e6dc url('outer_shadow.gif') 0px 0px repeat-x;
+ color: #999;
+ font-family: tahoma, arial, helvetica, sans-serif;
+ }
+
+ h1, h2, h3, h4 {
+ margin: 0;
+ padding: 0;
+ }
+
+ p {
+ padding-left: 10px;
+ padding-right: 10px;
+ text-align: justify;
+ font-size: 0.8em;
+ }
+
+ a:link, a:visited {
+ color: #567b9b;
+ text-decoration: none;
+ }
+
+ a:hover, a:active {
+ background: #ddeeff;
+ }
+
+/* ---[ End General Stuff ]-------------------------- */
+
+/* ---[ Container ]---------------------------------- */
+
+ #container {
+ background: transparent url('side.gif') 100% 0px repeat-y;
+ }
+
+ /* ---[ Intro ]---------------------------------- */
+
+ #intro {
+ margin: 100px 275px 0px 100px;
+ background: #fff url('inner_shadow.gif') 0px 0px repeat-x;
+ padding: 30px 10px 10px 10px;
+ border-left: solid 1px #ccc;
+ }
+
+ /* ---[ Page Header ]------------------------ */
+
+ #pageHeader {
+ color: #fff;
+ height: 100px;
+ width: 100%;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ position: absolute;
+ background: transparent url('top.gif') 0px 0px repeat-x;
+ z-index: 10;
+ }
+
+ #pageHeader h1 {
+ height: 130px;
+ }
+
+ #pageHeader h1 span {
+ font-size: 1.5em;
+ background-color: transparent;
+ text-decoration: none;
+ text-transform: lowercase;
+ display: none;
+ font-weight: normal;
+ position: absolute;
+ right: 20px;
+ bottom: 3px;
+ color: #fff;
+ }
+
+ #pageHeader h2 {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ height: 115px;
+ width: 400px;
+ background: transparent url('top.title.gif') 0px 0px no-repeat;
+ }
+
+ #pageHeader h2 span {
+ display: none;
+ }
+
+ /* ---[ End Page Header ]-------------------- */
+
+ /* ---[ Quick Summary ]---------------------- */
+
+ #quickSummary {
+ width: 270px;
+ float: left;
+ border-top: solid 1px #ddd;
+ border-right: solid 1px #ddd;
+ /* border-bottom: solid 1px #999; */
+ border-left: solid 1px #ddd;
+ background: #e5e5e5 url('demo.bg.gif') 100% 100% no-repeat;
+ margin: 0px 15px 10px 0px;
+ padding: 0px 0px 3px 0px;
+ font-size: 1em;
+ }
+
+ #quickSummary p, #quickSummary p:first-letter {
+ text-align: center;
+ color: #666;
+ font-weight: normal;
+ }
+
+ #quickSummary .p1 {
+ background: #fff url('demo.p1.gif') 0% 0% no-repeat;
+ /* padding-bottom: 60px; */
+ height: 176px;
+ padding: 0px 0px 0px 0px;
+ margin: 0px;
+ }
+
+ #quickSummary .p1 span {
+ display: none;
+ }
+
+ #quickSummary .p2 {
+ position: relative;
+ bottom: 0px;
+ text-align: right;
+ padding-bottom: 15px;
+ }
+
+ #quickSummary>.p2 {
+ padding-bottom: 0px;
+ }
+
+ #quickSummary .p2 span {
+ visibility: hidden;
+ font-size: 0px;
+ }
+
+ #quickSummary .p2 span a {
+ margin-left: 75px;
+ font-size: 10pt;
+ visibility: visible;
+ display: block;
+ position: relative;
+ left: 0px;
+ background: none;
+ background: transparent url('file.gif') 100% 50% no-repeat;
+ padding-right: 18px;
+ color: #aaa;
+ font-variant: small-caps;
+ text-transform: capitalize;
+ }
+
+ #quickSummary .p2 span a:hover {
+ background: transparent url('file2.gif') 100% 50% no-repeat;
+ color: #819bb2;
+ }
+ /* ---[ End Quick Summary ]------------------ */
+
+ /* ---[ Preamble ]--------------------------- */
+
+ #preamble h3 {
+ display: none;
+ }
+
+ #preamble p {
+ font-size: 0.9em;
+ color: #819bb2;
+ padding-left: 300px;
+ }
+
+ /* ---[ End Preamble ]----------------------- */
+
+ /* ---[ End Intro ]------------------------------ */
+
+ /* ---[ Supporting Text ]------------------------ */
+
+ #supportingText {
+ margin: 0px 275px 0px 100px;
+ background: #fff;
+ padding: 10px 0px 10px 0px;
+ border-left: solid 1px #ccc;
+ }
+
+ #supportingText div {
+ clear: both;
+ }
+
+ #supportingText h3 {
+ padding-top: 30px;
+ height: 25px;
+ border-bottom: solid 1px #819bb2;
+ }
+
+ #supportingText h3 span {
+ display: none;
+ }
+
+ /* ---[ Explanation ]------------------------ */
+
+ #explanation {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ #explanation h3 {
+ background: #fff url('h3.explanation.gif') 100% 100% no-repeat;
+ }
+
+ #explanation p.p1 {
+ width: 45%;
+ float: left;
+ }
+
+ #explanation p.p2 {
+ width: 45%;
+ float: right;
+ }
+
+ /* ---[ End Explanation ]-------------------- */
+
+ /* ---[ Participation ]---------------------- */
+
+ #participation {
+ background: #fff url('stone.circle.jpg') 50% 100% no-repeat;
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ #participation h3 {
+ background: #fff url('h3.participation.gif') 100% 100% no-repeat;
+ /* border-top: solid 1px #ccc; */
+ }
+
+ #participation p.p2 {
+ width: 45%;
+ float: left;
+ }
+
+ #participation p.p3 {
+ width: 45%;
+ float: right;
+ }
+
+ #participation p.p4 {
+ clear: both;
+ }
+
+ /* ---[ End Participation ]------------------ */
+
+ /* ---[ Benefits ]--------------------------- */
+
+ #benefits {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ #benefits h3 {
+ background: #fff url('h3.benefits.gif') 100% 100% no-repeat;
+ /* border-top: solid 1px #ccc; */
+ }
+
+ /* ---[ End Benefits ]----------------------- */
+
+ /* ---[ Requirements ]----------------------- */
+
+ #requirements {
+ background: #fff url('bamboo.leaf.jpg') 100% 100% no-repeat;
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ #requirements h3 {
+ background: #fff url('h3.requirements.gif') 100% 100% no-repeat;
+ /* border-top: solid 1px #ccc; */
+ }
+
+ #requirements p.p2 {
+ width: 45%;
+ float: left;
+ }
+
+ #requirements p.p3, #requirements p.p4 {
+ width: 45%;
+ float: right;
+ }
+
+ #requirements p.p5 {
+ clear: both;
+ }
+
+ /* ---[ End Requirements ]------------------- */
+
+ /* ---[ Footer ]----------------------------- */
+
+ #footer {
+ margin-top: 15px;
+ padding-top: 40px;
+ padding-bottom: 20px;
+ font-size: 0.8em;
+ clear: both;
+ text-align: center;
+ background: #fff url('bamboo2.gif') 10px 0px repeat-x;
+ }
+
+ #footer a:link, #footer a:visited {
+ text-decoration: none;
+ color: #999;
+ }
+
+ #footer a:hover, #footer a:active {
+ background: none;
+ text-decoration: underline;
+ }
+
+ /* ---[ End Footer ]------------------------- */
+
+ /* ---[ End Supporting Text ]-------------------- */
+
+ /* ---[ Link List ]------------------------------ */
+
+ #linkList {
+ z-index: 2;
+ background: transparent url('pawn.jpg') 50% 100% no-repeat;
+ position: absolute;
+ top: 100px;
+ right: 100px;
+ float: right;
+ width: 175px;
+ }
+
+ #linkList h3 {
+ border: none;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ height: 30px;
+ }
+
+ #linkList h3 span {
+ display: none;
+ }
+
+ /* ---[ Link List 2 ]------------------------ */
+
+ #linkList2 {
+ padding-top: 20px;
+ color: #666;
+ }
+
+ #linkList2 a:link, #linkList2 a:visited {
+ color: #819bb2;
+ text-decoration: none;
+ }
+
+ #linkList2 a:hover, #linkList2 a:active {
+ background: none;
+ text-decoration: underline;
+ }
+
+ #linkList2 div {
+ font-size: 0.7em;
+ padding: 8px 8px 10px 8px;
+ background: transparent url('sidesplit.gif') 0px 100% repeat-x;
+ }
+
+ #linkList2 ul {
+ list-style-type: none;
+ margin: 0px;
+ padding-left: 15px;
+ }
+
+ #linkList2 ul li {
+ /* background: url('bullet.gif') 0px 3px no-repeat; */
+ list-style-image: url('bullet.gif');
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 10px 0px;
+ }
+
+ /* ---[ L Select ]----------------------- */
+
+ #lselect h3 {
+ background: #e5e5e5 url('h3.side.select.gif') 50% 0% no-repeat;
+ }
+
+ #lselect a {
+ display: block;
+ }
+
+ #lselect a.c {
+ display: inline;
+ }
+
+ /* ---[ End L Select ]------------------- */
+
+ /* ---[ L Favorites ]-------------------- */
+
+ #lfavorites h3 {
+ background: #e5e5e5 url('h3.side.favourites.gif') 50% 0% no-repeat;
+ }
+
+ #lfavorites a {
+ display: block;
+ }
+
+ #lfavorites a.c {
+ display: inline;
+ }
+
+ /* ---[ End L Favorites ]---------------- */
+
+ /* ---[ L Archives ]--------------------- */
+
+ #larchives h3 {
+ background: #e5e5e5 url('h3.side.archives.gif') 50% 0% no-repeat;
+ }
+
+ /* ---[ End L Archives ]----------------- */
+
+ /* ---[ L Resources ]-------------------- */
+
+ #lresources {
+ margin-bottom: 150px;
+ }
+
+ #lresources h3 {
+ background: #e5e5e5 url('h3.side.resources.gif') 50% 0% no-repeat;
+ }
+
+ /* ---[ End L Resources ]---------------- */
+
+ /* ---[ End Link List 2 ]-------------------- */
+
+ /* ---[ End Link List ]-------------------------- */
+
+/* ---[ End Container ]------------------------------ */
+
+/* ---[ Extra Div 1 ]-------------------------------- */
+
+ #extraDiv1 {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ width: 275px;
+ height: 130px;
+ background: transparent url('top.rip.gif') 0% 100% no-repeat;
+ z-index: 20;
+ }
+
+/* ---[ End Extra Div 1 ]---------------------------- */
+
+/* ---[ Extra Div 2 ]-------------------------------- */
+
+ #extraDiv2 {
+ position: absolute;
+ top: 125px;
+ left: 105px;
+ width: 30px;
+ height: 30px;
+ background: transparent url('corner1.gif') 0% 0% no-repeat;
+ z-index: 20;
+ }
+
+/* ---[ End Extra Div 2 ]---------------------------- */
+
+/* ---[ Extra Div 3 ]-------------------------------- */
+
+ #extraDiv3 {
+ position: absolute;
+ top: 125px;
+ left: 359px;
+ width: 30px;
+ height: 30px;
+ background: transparent url('corner2.gif') 0% 100% no-repeat;
+ z-index: 20;
+ }
+
+/* ---[ End Extra Div 3 ]---------------------------- */
+
+/* css Zen Garden submission 043 - 'Burning' by Kevin & Ethel Davis, http://etheldavisgallery.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Kevin & Ethel Davis */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without both the designer's and artist's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* CSS by Kevin Davis */
+/* For more work by the author, see http://alazanto.org */
+
+/* Artwork by Ethel Davis */
+/* For more work by the artist, see http://etheldavisgallery.com */
+
+/* have a great day! :) */
+
+
+
+
+/******************************************************************* primary elements */
+body {
+ background: #444 url(body.gif) top left repeat-y;
+ margin: 0px;
+ padding: 0px;
+ text-align: left;
+ color: #fff;
+}
+
+/******************************************************************* primary hyperlink styling */
+#supportingText a:link {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #D1E8CC;
+ border-bottom: 1px solid #D1E8CC;
+}
+
+#supportingText a:visited {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #BBD9BA;
+ border-bottom: 1px solid #BBD9BA;
+}
+
+#supportingText a:hover, a:active {
+ text-decoration: none;
+ background: transparent;
+ color: #fff;
+ border-bottom: 1px solid #fff;
+}
+
+/***********************************************/
+
+#linkList a:link {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #bcf;
+}
+
+#linkList a:visited {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #bde;
+}
+
+#linkList a:hover, a:active {
+ text-decoration: underline;
+ background: transparent;
+ color: #fff;
+}
+
+/***********************************************/
+
+#intro #quickSummary a:link {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #ccc;
+ border-bottom: 1px solid #555;
+}
+
+#intro #quickSummary a:visited {
+ font-weight: normal;
+ text-decoration: none;
+ background: transparent;
+ color: #ccc;
+ border-bottom: 1px solid #555;
+}
+
+#intro #quickSummary a:hover, a:active {
+ text-decoration: none;
+ background: transparent;
+ color: #fff;
+ border-bottom: 1px solid #555;
+}
+
+/******************************************************************* body content */
+#container {
+ margin-top: 33px;
+ margin-left: 0px;
+ margin-bottom: 0px;
+ margin-right: 0px;
+
+ padding: 1px;
+
+ background: transparent url(container-back.gif) top left no-repeat;
+
+ width: 751px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width:750px;
+}
+
+html>body #container {
+ width: 750px;
+}
+
+#extraDiv1 {
+ position: absolute;
+
+ height: 33px;
+ width: 100%;
+ top: 0px;
+ left: 0px;
+
+ background: transparent url(top-bar.gif) top left repeat-x;
+}
+
+#extraDiv2 {
+ position: relative;
+
+ height: 33px;
+ width: 100%;
+ bottom: 0px;
+ left: 0px;
+
+ background: transparent url(bottom-bar.gif) top left repeat-x;
+}
+
+#extraDiv3 {
+ position: absolute;
+
+ top: 33px;
+ left: 750px;
+ right: 0px;
+
+ color: #fff;
+
+ background: #38332F url(back-top2.gif) top left repeat-y;
+ border-bottom: 2px solid #29281C;
+
+ height: 480px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height:478px;
+}
+
+html>body #extraDiv3 {
+ height: 478px;
+}
+
+ #extraDiv3 span {
+ position: absolute;
+
+ top: 0px;
+ left: 0px;
+ right: 0px;
+
+ margin-bottom: 471px;
+
+ color: #fff;
+
+ background: #38332F url(back-top2-span.gif) top left repeat-x;
+
+ height: 7px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height:7px;
+ }
+
+ html>body #extraDiv3 span {
+ height: 7px;
+ }
+
+#pageHeader {
+ position: absolute;
+ top: 33px;
+ left: 0px;
+
+ width: 0px;
+ hegith: 0px;
+
+ margin: 0px;
+ padding: 0px;
+
+ overflow: hidden;
+ text-indent: -100em;
+}
+
+
+/******************************************************************* intro section */
+#intro {
+ margin-top: 243px;
+ margin-left: 58px;
+ margin-right: 242px;
+ margin-bottom: 0px;
+
+ padding: 15px;
+
+ border-bottom: 1px solid #394A38;
+}
+
+ #intro acronym, #linkList acronym {
+ cursor: help;
+ border: 0px;
+ letter-spacing: 0.1em;
+ }
+
+ #quickSummary p.p2 {
+ position: absolute;
+
+ top: 255px;
+ left: 5px;
+
+ margin: 0px;
+
+ width: 240px;
+
+ padding-top: 0px;
+ padding-left: 0px;
+ padding-bottom: 0px;
+ padding-right: 0px;
+
+ border: 0px solid #333;
+
+ font-family: "Verdana", serif;
+ font-size: 9px;
+ font-weight: normal;
+
+ text-align: right;
+
+ color: #bbb; background: transparent;
+ }
+
+ #intro p {
+ margin-top: 0px;
+ margin-bottom: 8px;
+
+ font-family: "Times", "Times New Roman", Serif;
+ font-size: 14px;
+ font-weight: normal;
+
+ word-spacing: 0.05em;
+ letter-spacing: 0.05em;
+
+ line-height: 1.4em;
+
+ text-align: left;
+
+ color: #fff; background: transparent;
+ }
+
+ /* Thanks Mike! http://phark.typepad.com */
+
+ #intro h3 {
+ width: 100%;
+ height: 30px;
+
+ margin-top: 10px;
+ margin-left: -2px;
+ margin-bottom: 5px;
+ margin-right: 0px;
+
+ padding: 0px;
+
+ color: #fff;
+
+ border-bottom: 1px solid #5F705E;
+
+ background: transparent url(header-enlighten.gif) no-repeat top left;
+ }
+
+ #intro h3 span {display: none;}
+
+/******************************************************************* supportingtext section */
+#supportingText {
+ margin-top: 0px;
+ margin-left: 58px;
+ margin-right: 242px;
+
+ padding: 15px;
+}
+
+ #supportingText acronym {
+ cursor: help;
+ background: transparent url(acronym.gif) top left no-repeat;
+ padding-left: 15px;
+ border-bottom: 0px dotted #fff;
+ }
+
+ #supportingText p {
+ margin-top: 0px;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-bottom: 8px;
+
+ font-family: "Times", "Times New Roman", Serif;
+ font-size: 14px;
+ font-weight: normal;
+
+ word-spacing: 0.05em;
+ letter-spacing: 0.05em;
+
+ line-height: 1.4em;
+
+ text-align: left;
+
+ color: #fff; background: transparent;
+ }
+
+ #supportingText h3 {
+ width: 100%;
+ height: 30px;
+
+ margin-top: 10px;
+ margin-left: -2px;
+ margin-bottom: 5px;
+ margin-right: 0px;
+
+ border-bottom: 1px solid #5F705E;
+ }
+
+ #supportingText h3 span {display: none;}
+
+ #explanation h3 {
+ background: transparent url(header-sowhat.gif) no-repeat top left;
+ }
+
+ #participation h3 {
+ background: transparent url(header-participation.gif) no-repeat top left;
+ }
+
+ #benefits h3 {
+ background: transparent url(header-benefits.gif) no-repeat top left;
+ }
+
+ #requirements h3 {
+ background: transparent url(header-requirements.gif) no-repeat top left;
+ }
+
+/******************************************************************* footer section */
+#footer {
+ margin-top: 30px;
+ margin-left: 0px;
+ margin-bottom: 0px;
+ margin-right: 0px;
+
+ padding: 6px;
+
+ font-family: "Verdana", serif;
+ font-size: 11px;
+ font-weight: normal;
+ font-style: italic;
+
+ color: #fff;
+
+ text-align: center;
+
+ background-color: #697A68;
+ border: 1px solid #899A88;
+}
+ #footer a:link, #footer a:visited {
+ margin-left: 5px;
+ margin-right: 5px;
+
+ padding-left: 5px;
+ padding-right: 5px;
+
+ border-bottom: 0px;
+
+ border-left: 1px solid #899A88;
+ border-right: 1px solid #899A88;
+ }
+
+/******************************************************************* link list */
+
+#linkList {
+ position: absolute;
+
+ top: 0px;
+ left: 0px;
+
+ margin-top: 276px;
+ margin-left: 509px;
+
+ padding-top: 251px;
+ padding-left: 20px;
+ padding-right: 0px;
+
+ text-align: left;
+
+ background: transparent url(linklist-back.gif) top left no-repeat;
+
+ width: 242px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width:222px;
+}
+
+html>body #linkList {
+ width: 222px;
+}
+
+#lselect, #lfavorites, #larchives, #lresources {
+ margin-top: 0px;
+ margin-left: 0px;
+ margin-bottom: 10px;
+ margin-right: 10px;
+
+ padding: 4px;
+
+ border: double #878BA6;
+ /*background-color: #4A5269;*/
+}
+
+ #linkList h3 {
+ font-family: "Verdana", serif;
+ font-size: 10px;
+ font-weight: normal;
+
+ margin: 0px;
+ padding: 0px;
+
+ border-bottom: 1px solid #878BA6;
+ }
+
+ h3.select {
+ text-align: left;
+
+ width: 100%;
+ height: 14px;
+
+ background: transparent url(header-select.gif) no-repeat top left;
+ }
+ #linkList h3.select span {display:none;}
+
+ h3.favorites {
+ text-align: left;
+
+ width: 100%;
+ height: 14px;
+
+ background: transparent url(header-favorites.gif) no-repeat top left;
+ }
+ #linkList h3.favorites span {display:none;}
+
+ h3.archives {
+ text-align: left;
+
+ width: 100%;
+ height: 14px;
+
+ background: transparent url(header-archives.gif) no-repeat top left;
+ }
+ #linkList h3.archives span {display:none;}
+
+ #larchives ul>li {
+ margin-bottom: 0px;
+ margin-left: -10px;
+ text-align: left;
+
+ padding-left: 9px;
+ padding-bottom: 0px;
+
+ border-left: 1px solid #878BA6;
+ border-right: 1px solid #878BA6;
+ border-bottom: 0px solid #878BA6;
+ }
+
+ #larchives ul>li+li {
+ margin-bottom: 0px;
+ margin-left: -10px;
+ text-align: left;
+
+ padding-left: 9px;
+ padding-bottom: 5px;
+
+ border-left: 1px solid #878BA6;
+ border-right: 1px solid #878BA6;
+ border-bottom: 1px solid #878BA6;
+ }
+
+ #larchives ul>li+li+li {
+ margin-top: 5px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ text-align: left;
+
+ padding-left: 0px;
+ padding-bottom: 0px;
+
+ border-left: 0px;
+ border-right: 0px;
+ border-bottom: 0px;
+ }
+
+ h3.resources {
+ text-align: left;
+
+ width: 100%;
+ height: 14px;
+
+ background: transparent url(header-resources.gif) no-repeat top left;
+ }
+ #linkList h3.resources span {display:none;}
+
+ #linkList ul {
+ margin-top: 0px;
+ margin-bottom: 20px;
+ margin-left: 10px;
+ margin-right: 0px;
+ padding: 0px;
+ }
+ #linkList li {
+ font-family: "Verdana", serif;
+ font-size: 11px;
+ font-weight: normal;
+
+ color: #fff; background: transparent;
+
+ line-height: 13px;
+
+ list-style-type: none;
+ display: block;
+
+ padding-top: 4px;
+ margin-bottom: 2px;
+ }
+
+ #larchives li {
+ padding-top: 4px;
+ margin-bottom: 0px;
+ }
+
+ #lselect li, #lfavorites li {
+ background: url(docbullet.gif) no-repeat 0px 7px;
+ padding-left: 11px;
+ }
+
+ #lselect a, #lfavorites a { display:block; text-transform:lowercase; }
+ #lselect a.c, #lfavorites a.c {display:inline; text-transform: none; }/* css Zen Garden submission 044 - 'si6' by Shaun Inman, http://www.shauninman.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Shaun Inman */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* Lomo Credit: http://andreas.lunde.info/ | 09.05.03 :: 09.09.03 */ +/* Via: http://sxc.hu/ */
+body { + background: url(bg_top.jpg) no-repeat #FFF; + margin: 0px; + + font: 9px/16px Geneva,Arial,Tahoma,sans-serif; + color: #97999C; + } +p { + position: relative; + top: 0px; + text-align: justify; + + margin: 0px 0px 0px 35px; + padding: 0px 0px 16px 302px; + + width: 573px; /* False value for IE4-5.x/Win */ + voice-family: "\"}\""; + voice-family:inherit; + width: 271px; /* Actual value for conformant browsers */ + } +html>p { + width: 271px; /* Be nice to Opera */ + } +@media ScReEn { /* HIDE THIS NONSENSE FROM SAFARI */ + p span { position: relative; top: -1px; padding-bottom: 2px; } + } +/* MORE NONSENSE JUST FOR IE <SHAKES HEAD /> */ +* html p span { position: relative; top: -1px; } + +p.p1 { background: url(p1.gif) no-repeat; } +p.p2 { background: url(p2.gif) no-repeat; } +p.p3 { background: url(p3.gif) no-repeat; } +p.p4 { background: url(p4.gif) no-repeat; } +p.p5 { background: url(p5.gif) no-repeat; } + +a, +a:visited { + color: #717375; + text-decoration: none; + border-bottom: 2px solid #FFFC00; + } +a:hover { + color: #A1A3A5; + text-decoration: none; + border-bottom: 2px solid #FFFE66; + } + +h3 { + margin: 0px; + padding: 0px; + } + +acronym { + font-style: normal; + text-decoration: none; + border-width: 0px; + } +#container { + width: 744px; + } + +#pageHeader { z-index: 5000; } +#pageHeader h1 { + position: absolute; + top: 84px; + left: 88px; + + background: url(css_zen_garden.gif) no-repeat; + width: 205px; + height: 35px; + + padding: 0px; + margin: 0px; + } +#pageHeader h2 { + position: absolute; + top: 132px; + left: 91px; + + background: url(beauty_of.gif) no-repeat; + width: 149px; + height: 23px; + + padding: 0px; + margin: 0px; + } +#pageHeader h1 span, +#pageHeader h2 span, +#preamble h3 span, +#explanation h3 span, +#participation h3 span, +#benefits h3 span, +#requirements h3 span, +#lselect h3 span, +#lfavorites h3 span, +#larchives h3 span, +#lresources h3 span { display: none; } + +#quickSummary p { color: #828200; } +#quickSummary a, +#quickSummary a:visited { + color: #626200; + text-decoration: none; + border-bottom: 2px solid #979600; + } +#quickSummary a:hover { color: #A2A200; border-bottom: 2px solid #C7C600; } +#quickSummary { margin-top: 144px; width: 608px; } +#quickSummary p.p1 { background: url(p1_on_yellow.gif) no-repeat; } +#quickSummary p.p2 { background: url(p2_on_yellow.gif) no-repeat; padding-bottom: 0px; margin-bottom: 16px; } + +#preamble, +#explanation, +#participation, +#benefits, +#requirements, +#footer { position: relative; } + +#preamble h3 { + position: absolute; + top: -11px; + left: 88px; + + background: url(the_road.gif) no-repeat; + width: 169px; + height: 22px; + } +/* TARGETING IE6 PC, KEEP COMMENT OPEN AS FAR AS IE5 MAC IS CONCERNED \*/ +* html*#preamble h3 { left: 53px; } +/* GOTTA WAKE UP IE5 MAC! */ +#preamble p.p1 { background: url(p1_cropped.gif) no-repeat; } +#preamble p.p2 { background: url(p2_cropped.gif) no-repeat; } +#preamble p.p3 { background: url(p3_unlabeled.gif) no-repeat; padding-bottom: 0px; margin-bottom: 16px; } + +#explanation h3 { + position: absolute; + top: -12px; + left: 89px; + + background: url(so_what.gif) no-repeat; + width: 131px; + height: 23px; + } +/* TARGETING IE6 PC, KEEP COMMENT OPEN AS FAR AS IE5 MAC IS CONCERNED \*/ +* html*#explanation h3 { left: 54px; } +/* GOTTA WAKE UP IE5 MAC! */ +#explanation p.p1 { background: url(p1_unlabeled.gif) no-repeat; } +#explanation p.p2 { padding-bottom: 0px; margin-bottom: 16px; } + +#participation h3 { + position: absolute; + top: -11px; + left: 86px; + + background: url(participation.gif) no-repeat; + width: 131px; + height: 22px; + } +/* TARGETING IE6 PC, KEEP COMMENT OPEN AS FAR AS IE5 MAC IS CONCERNED \*/ +* html*#participation h3 { left: 51px; } +/* GOTTA WAKE UP IE5 MAC! */ +#participation p.p4 { padding-bottom: 0px; margin-bottom: 16px; } + +#benefits h3 { + position: absolute; + top: -11px; + left: 88px; + + background: url(benefits.gif) no-repeat; + width: 131px; + height: 22px; + } +/* TARGETING IE6 PC, KEEP COMMENT OPEN AS FAR AS IE5 MAC IS CONCERNED \*/ +* html*#benefits h3 { left: 53px; } +/* GOTTA WAKE UP IE5 MAC! */ +#benefits p.p1 { padding-bottom: 0px; margin-bottom: 16px; } + +#requirements h3 { + position: absolute; + top: -11px; + left: 89px; + + background: url(requirements.gif) no-repeat; + width: 131px; + height: 22px; + } +/* TARGETING IE6 PC, KEEP COMMENT OPEN AS FAR AS IE5 MAC IS CONCERNED \*/ +* html*#requirements h3 { left: 54px; } +/* GOTTA WAKE UP IE5 MAC! */ +#requirements p.p4 { background: url(p4_on_blue.gif) no-repeat; } +#requirements p.p5 { background: url(p5_unlabeled.gif) no-repeat; padding-bottom: 0px; margin-bottom: 16px; } + +#linkList { + position: absolute; + top: 63px; + left: 626px; + width: 116px; + } +#linkList ul, +#linkList li { + list-style: none; + padding: 0px; + margin: 0px; + line-height: 12px; + } +#linkList a, +#linkList a:visited { color: #5E5F61; border: none; } +#linkList a:hover { color: #C1C3C5; } + +#lselect li, +#lfavorites li { margin-top: 8px; } + +#lselect li a, +#lselect li a:visited, +#lfavorites li a, +#lfavorites li a:visited { display: block; } + +#lselect li a.c, +#lselect li a.c:visited, +#lfavorites li a.c, +#lfavorites li a.c:visited { color: #717375; display: inline; } +#lselect li a.c:hover, +#lfavorites li a.c:hover { color: #C1C3C5; } + +#lselect h3.select { + background: url(select_a_design.gif) no-repeat; + width: 112px; + height: 44px; + } +#lselect ul { margin-top: -1px; } +@media ScReEn { /* HIDE THIS NONSENSE FROM SAFARI */ + #lselect ul { margin-top: -2px; } + } +/* MORE NONSENSE JUST FOR IE <SHAKES HEAD /> */ +* html #lselect ul { margin-top: -2px; } + +#lfavorites h3.favorites { + background: url(favorites.gif) no-repeat; + width: 112px; + height: 44px; + margin-top: 6px; + } +#lfavorites ul { margin-top: -2px; } + +#larchives h3.archives { + background: url(archives.gif) no-repeat; + width: 112px; + height: 44px; + margin-top: 5px; + } +#larchives ul { margin-top: 6px; } + +#lresources h3.resources { + background: url(resources.gif) no-repeat; + width: 112px; + height: 44px; + margin-top: 10px; + } +#lresources ul { margin-top: 6px; } + +#footer { + display: block; + text-align: right; + + padding: 9px 430px 0px 0px; + margin: 0px 0px 36px 35px; + + width: 688px; + voice-family: "\"}\""; + voice-family:inherit; + width: 258px; + } +html>#footer { width: 258px; } +#footer a { padding-bottom: 9px; } +@media ScReEn { /* HIDE THIS NONSENSE FROM SAFARI */ + #footer a { position: relative; top: -1px; } + } +/* MORE NONSENSE JUST FOR IE <SHAKES HEAD /> */ +* html #footer a { position: relative; top: -1px; } + +#footer,#requirements { z-index: 2; } +#extraDiv1 { + position: relative; + height: 1px; + z-index: 1; + } +#extraDiv1 span { + position: absolute; + bottom: -33px; + left: 0px; + background: url(bg_bottom.jpg) no-repeat; + width: 100%; + height: 508px; + } +#extraDiv2, +#extraDiv3, +#extraDiv4, +#extraDiv5, +#extraDiv6 { display: none; } + +/* * { border: 1px solid #DDD; } *//* css Zen Garden submission 045 - 'I Dream in Colour' by Jeff Bilen - http://www.scribblersclub.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jeff Bilen */
+/* Added: September 26th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+
+body {
+ background: #ffffff url(bottom_right.jpg) bottom right no-repeat;
+ font: 8pt/11pt "Times New Roman", serif, georgia;
+ color: #555753;
+ margin: 0px;
+ padding: 0px;
+}
+
+p {
+ font: 8pt/11pt "Times New Roman", serif, georgia;
+ margin-top: 0px;
+ text-align: left;
+ margin-left: 10px;
+}
+
+acronym {
+ border: none;
+}
+
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #333333;
+}
+
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #555555;
+}
+
+a:hover, a:active {
+ text-decoration: underline;
+ color: #555555;
+}
+
+/* specific divs */
+
+#container {
+ background: transparent url(top_left.jpg) top left no-repeat;
+ padding: 0px;
+ margin: 0px;
+ width: 760px;
+ padding-bottom: 100px;
+}
+
+#intro {
+ background: transparent url(intro_back.jpg) top left no-repeat;
+ margin-top: 133px;
+ width: 253px;
+ float: left;
+}
+
+#pageHeader h1 span {
+ display:none
+}
+
+#pageHeader h2 span {
+ display:none
+}
+
+#quickSummary {
+ width: 210px;
+ margin-left: 15px;
+ margin-top: 20px;
+}
+
+#quickSummary p {
+ font: bold italic 8pt/11pt "Times New Roman", serif, georgia;
+ color: #000000;
+ text-align: center;
+}
+
+#preamble {
+ width: 210px;
+ margin-left: 15px;
+ margin-top: 25px;
+}
+
+#preamble h3 {
+ background: transparent url(en_hdr.gif) top center no-repeat;
+ width: 210px;
+ height: 19px;
+ margin-left: 5px;
+}
+#preamble h3 span {
+ display: none;
+}
+
+#preamble p {
+ padding-left: 5px;
+ font: 8pt/14pt "Times New Roman", serif, georgia;
+}
+
+#supportingText {
+ background: transparent url(main_back.jpg) top left no-repeat;
+ position: relative;
+ margin-left: 258px;
+ top: 58px;
+ width: 376px;
+ padding-left: 25px;
+ padding-top: 25px;
+}
+
+#explanation h3 {
+ background: transparent url(what_hdr.gif) top left no-repeat;
+ height: 11px;
+ text-align: left;
+}
+
+#explanation h3 span {
+ display: none;
+}
+
+#supportingText p {
+ width: 315px;
+ text-align: left;
+}
+
+#explanation h3 {
+ background: transparent url(what_hdr.gif) top left no-repeat;
+ height: 11px;
+}
+
+#explanation {
+ padding-bottom: 10px;
+}
+
+#participation {
+ padding-bottom: 10px;
+}
+
+#benefits {
+ padding-bottom: 10px;
+}
+
+#requirements {
+ padding-bottom: 10px;
+}
+
+#participation h3 {
+ background: transparent url(part_hdr.gif) top left no-repeat;
+ height: 11px;
+}
+
+#participation h3 span {
+ display: none;
+}
+
+#benefits h3 {
+ background: transparent url(ben_hdr.gif) top left no-repeat;
+ height: 11px;
+}
+
+#benefits h3 span {
+ display: none;
+}
+
+#requirements h3 {
+ background: transparent url(req_hdr.gif) top left no-repeat;
+ height: 13px;
+}
+
+#requirements h3 span {
+ display: none;
+}
+
+#footer {
+ text-align: center;
+ border-top: 1px solid #cccccc;
+}
+
+#footer a:link, #footer a:visited {
+ margin-right: 20px;
+}
+
+#linkList {
+ margin-left: 645px;
+ width: 125px;
+ position: absolute;
+ top: 110px;
+}
+
+#linkList ul {
+ margin-left: 10px;
+ padding: 0px;
+}
+
+#lselect h3 {
+ background: transparent url(sel_des.gif) top left no-repeat;
+ height: 21px;
+}
+
+#lselect h3 span {
+ display: none;
+}
+
+#larchives h3 {
+ background: transparent url(archives.gif) top left no-repeat;
+ height: 18px;
+}
+
+#larchives h3 span {
+ display: none;
+}
+
+#lresources h3 {
+ background: transparent url(resource.gif) top left no-repeat;
+ height: 11px;
+}
+
+#lresources h3 span {
+ display: none;
+}
+
+#lfavorites h3 {
+ background: transparent url(favorites.gif) top left no-repeat;
+ height: 21px;
+}
+
+#lfavorites h3 span {
+ display: none;
+}
+
+#linkList li {
+ line-height: 2.5ex;
+ list-style-type: none;
+ padding-top: 5px;
+ margin-bottom: 5px;
+}
+
+#linkList li a:link {
+ color: #555555;
+}
+
+#linkList li a:visited {
+ color: #777777;
+}
+/* css Zen Garden submission 046 - 'sub:lime' by Andy Budd, http://www.andybudd.com/blog/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Andy Budd */
+/* Added: September 29th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* CSS Document */ + + +body{ + background: #e3dfdc; + margin: 0px; + padding: 0px; + font: 72%/1.6em Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + text-align: center; +} + +a:link { + color: #5a6635; + text-decoration: none; +} + +a:visited { + color: #5a6635; + text-decoration: none; +} + +a:hover { + color: #2b351c; +} + + +#container { + position: relative; + width: 715px; + margin: 0 auto; + background: #FFFFFF url(container.gif) repeat-y; + padding-right: 25px; + padding-left: 25px; + text-align: left; + voice-family: "\"}\""; + voice-family:inherit; + width: 665px; +} + +html>body #container { + width: 665px; +} + +/* page header stuff */ + +#pageHeader { + margin-bottom: 5px; +} + +#pageHeader h1 { + width: 665px; + height: 38px; + background: url(logo.gif) no-repeat; + margin: 0px; + padding: 0px; +} + +#pageHeader span { + display: none; +} + +#pageHeader h2 { + display: none; +} + +/* quickSummary stuff */ + +#quickSummary { + background: url(limes.gif) no-repeat; + width: 665px; +} + +#quickSummary .p1 { + background: url(callout.gif) no-repeat right; + height: 160px; + margin: 0px; + padding: 0px; +} + +#quickSummary .p1 span { + display: none; +} + + +#quickSummary .p2 { + height: 27px; + background: #97a25e; + margin: 5px 0 5px 0; + padding: 5px 0 0 10px; + vertical-align: bottom; + voice-family: "\"}\""; + voice-family:inherit; + height: 22px; +} + +html>body #quickSummary .p2 { + height: 22px; +} + +/* preamble stuff */ + +#preamble { + margin: 0 0 0 225px; + background: #a5b77a; + padding: 15px; +} + +#preamble h3 { + background: url(enlightenment.gif) no-repeat; + height: 19px; + margin: 0px; + padding: 0px; +} + +#preamble h3 span{ + display: none; +} + + +/* supportingText stuff */ + +#supportingText { + margin: 0 0 0 225px; + background: #a5b77a; + padding: 0 15px 1px 15px; + /* this is wierd. Origionally this div had no bottom padding. + When I positioned the footer absolutly, a gap of about 8px appeared + at the bottom of the page where the bg image of container wasn't getting displayed. + Adding a nominal amount of bottom padding (1px) to supportingText + fixed this problem. However I have no idea why the problem exhibited in the first place + or why this fixed it. */ +} + +#explanation h3 { + background: url(about.gif) no-repeat; + height: 19px; + margin: 0px; + padding: 0px; +} + +#participation h3 { + background: url(participation.gif) no-repeat; + height: 15px; +} + +#benefits h3 { + background: url(benefits.gif) no-repeat; + height: 18px; +} + +#requirements h3 { + background: url(requirements.gif) no-repeat; + height: 15px; +} + +#supportingText h3 span{ + display: none; +} + +#footer /*#requirements .p5*/ { + position: absolute; + margin: 0; + padding: 0; + top: 213px; + right: 35px; + text-align: right; +} + +/* bit of a nasty use of an extraDiv and a bg image +to produce the bottom yellow bar */ +#extraDiv1 { + height: 40px; + width: 715px; + margin: 0 auto; + background: #FFFFFF url(bandwidth.gif); + text-align: left; +} + +/* bit of a hack topositiuon the bandwidth text */ +#requirements .p5 { + position: absolute; + margin: 0; + padding: 0; + bottom: -30px; + left: 35px; + text-align: left; + z-index: 10; +} + +/* linkList stuff */ + +#linkList { + width: 220px; + position: absolute; + top: 240px; + left: 25px; + background: #c5d19b; +} + +#linkList2 { + padding: 15px 10px 10px 10px; +} + +#linkList h3 { + margin: 0px; + padding: 0px; +} + +#linkList h3 span { + display: none; +} + +#linkList ul { + margin: 12px 0 15px 15px; + padding: 0px; +} + + +#linkList li { + list-style: none; + margin: 0; + padding: 0px; +} + +#lselect li { + margin: 0 0 10px 0; +} + +#lselect li a { + display: block; +} + +#lselect li .c { + display: inline; +} + +#lselect h3 { + background: url(select.gif) no-repeat; + height: 22px; +} + +#larchives h3 { + background: url(archive.gif) no-repeat; + height: 15px; +} + +#lresources h3 { + background: url(resources.gif) no-repeat; + height: 14px; +} + + + +/* css Zen Garden submission 047 - 'dusk' by Jon Hicks, http://exp.hicksdesign.co.uk/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Jon Hicks */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body {
+ background: #fff url(border.gif) repeat-y 20px 0px;
+ margin: 0;
+ padding: 0;
+ font: 10px/1.4em Arial, Helvetica, sans-serif;
+ color: #666;
+ letter-spacing: 0.01em;
+}
+p {
+ margin: 0 0 0.5em 0;
+}
+
+ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+a,
+a:link
+a:active {
+ color: #690;
+ text-decoration:none;
+}
+
+a:visited {
+ color: #666;
+}
+
+a:hover {
+ background-color: #690;
+ color: #fff;
+}
+
+
+/* main divs - in order of appearance */
+/* ------------------------------------------------------------ */
+
+/* big grey stripe */
+#extraDiv1 {
+ background: #666 url(end_block.gif) no-repeat right top;
+ position: absolute;
+ left: 10px;
+ top: 30px;
+ width: 780px;
+ height: 230px;
+ z-index: 1;
+}
+
+/* top left corner image of big grey stripe */
+#extraDiv1 span{
+ display: block;
+ background: url(corner.gif) no-repeat left top;
+ width: 360px;
+ height: 60px;
+}
+
+#container {
+ margin-left: 358px;
+ margin-top: 260px;
+ width: 550px;
+ }
+
+#pageHeader {
+ background: transparent url(logo.gif) no-repeat left top;
+ position: absolute;
+ left: 10px;
+ top: 137px;
+ height: 229px;
+ width: 730px;
+ text-indent: -1000em;
+ z-index: 2;
+}
+
+#preamble {
+ color: #eee;
+ position: absolute;
+ height: 190px;
+ width: 380px;
+ left: 357px;
+ top: 70px;
+ padding-right: 20px;
+ z-index: 2;
+ overflow: auto;
+}
+#preamble h3 {
+ background: url(road.gif) no-repeat left top;
+ height: 19px;
+ width: 216px;
+ margin: 0 0 8px 0;
+ }
+
+#preamble h3 span {
+ display: none;
+ }
+
+#quickSummary {
+ position: absolute;
+ left: 52px;
+ top: 365px;
+ height: 200px;
+ width: 230px;
+ color: #666;
+ z-index: 2;
+ line-height: 2em;
+}
+
+#quickSummary p.p2{
+ padding-top: 10px;
+}
+
+
+/* This is the bit that screws up in Opera 6 */
+
+#supportingText {
+ width: 375px;
+ height: 150px;
+ overflow: auto;
+ padding: 0 20px 30px 5px;
+ z-index: 10;
+ border-left: solid 1px #999;
+}
+
+#supportingText h3 {
+ font-size: 13px;
+ color: #7fbb09;
+ border-bottom: 1px solid #ccc;
+ margin: 1.6em 0 0.8em 0;
+}
+#supportingText h3 span {
+ border-bottom: 5px solid #ccc;
+}
+
+#footer {
+ padding-bottom: 10px;
+ padding-top: 10px;
+}
+
+
+/* links lists */
+#linkList {
+ width: 550px;
+}
+
+#linkList li{
+ padding-left: 2px;
+}
+#linkList h3 {
+ text-indent: -1000em;
+ margin-bottom: 3px;
+ width: 116px;
+ height: 18px;
+}
+
+/* links titles */
+h3.select {background: url(select.gif) no-repeat left top;}
+h3.archives {background: url(archives.gif) no-repeat left top;}
+h3.favourites {background: url(favourites.gif) no-repeat left top;}
+h3.resources {background: url(resources.gif) no-repeat left top;}
+
+
+
+div#lselect,
+div#lfavorites,
+div#larchives,
+div#lresources {
+ float: left;
+ border-left: solid 1px #999;
+ margin-right: 20px;
+ padding-top: 20px;
+}
+/* css Zen Garden submission 048 - 'HoriZental' by Clément 'fastclemmy' Hardouin, http://www.fastclemmy.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Clément Hardouin */
+/* Added: October 18th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+background-image:url("fond_body.gif");
+background-repeat:repeat-x;
+background-position:top left;
+background-color:#fff;
+color:#666;
+font-family:Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;
+margin:0;
+padding:0;
+height:550px;
+width:4000px;
+}
+
+html > body {
+border-bottom:1px solid black;
+}
+
+h1, h2, h3, h4 {
+margin:0;
+padding:0;
+}
+
+div#intro {
+background-image:url("header.jpg");
+background-repeat:no-repeat;
+background-position:left top;
+height:550px;
+}
+
+div#intro p {
+width:350px;
+}
+
+h1 span, h3 span, #extraDiv1, #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
+display:none;
+}
+
+#explanation h3 span, #preamble h3 span, #participation h3 span, #benefits h3 span, #requirements h3 span {
+display:block;
+font-family:Century Gothic, AvantGarde, Verdana, Arial, sans-serif;
+font-weight:normal;
+font-size:1.5em;
+color:#c9380b;
+}
+
+h2 {
+color:#ccc;
+padding-top:325px;
+font-size:0.8em;
+font-weight:normal;
+letter-spacing:0.4em;
+padding-left:3em;
+}
+
+div#quickSummary {
+margin-left:0.8em;
+}
+
+div#quickSummary a, div#footer a, p a {
+color:#c9380b;
+text-decoration:none;
+font-weight:bold;
+}
+
+div#quickSummary a:hover, p a:hover, div#footer a:hover {
+text-decoration:underline;
+}
+
+div#linkList2, div#lresources {
+background-image:url("fond_bande_milieu.gif");
+background-repeat:repeat-y;
+width:255px;
+height:550px;
+position:absolute;
+top:0px;
+left:375px;
+}
+
+div#lresources {
+background-image:url("fond_bande_droite.gif");
+width:298px;
+left:3200px;
+}
+
+h3.select {
+background-image:url("selectadesign.gif");
+background-repeat:no-repeat;
+width:255px;
+height:145px;
+}
+
+h3.resources {
+background-image:url("browseresources.gif");
+background-repeat:no-repeat;
+width:298px;
+height:138px;
+}
+
+div#lselect ul, div#larchives ul, div#lresources ul {
+color:#000;
+font-size:0.9em;
+margin:0px;
+padding:0px;
+width:90%;
+padding-left:35px;
+}
+
+div#lresources ul {
+padding-left:50px;
+}
+
+div#lselect li, div#larchives li, div#lresources li {
+background-image: url("puce_blanche.gif");
+background-repeat: no-repeat;
+background-position: left center;
+list-style-type: none;
+margin: 0px 0px 0px 0px;
+padding: 0px 0px 0px 15px;
+width: 90%;
+font-size:0.8em;
+}
+
+div#lselect a, div#larchives a, div#lresources a {
+color:#666;
+text-decoration:none;
+font-weight:bold;
+}
+
+div#lselect a.c {
+color:#fff;
+font-weight:normal;
+}
+
+div#lselect a:hover, div#larchives a:hover, div#lresources a:hover {
+text-decoration:underline;
+}
+
+h3.archives {
+margin-top:70px;
+background-image:url("viewarchives.gif");
+background-repeat:no-repeat;
+width:255px;
+height:100px;
+}
+
+div#preamble, div#explanation, div#participation, div#benefits, div#requirements {
+position:absolute;
+background-repeat:no-repeat;
+top:0px;
+font-size:75%;
+height:550px;
+}
+
+div#preamble {
+left:628px;
+background-image:url("theroad.jpg");
+width:379px;
+}
+
+div#preamble h3, div#requirements h3, div#participation h3 {
+padding-top:280px;
+}
+
+div#preamble p, div#requirements p, div#participation p, div#explanation p, div#benefits p, div#preamble h3, div#requirements h3, div#participation h3, div#explanation h3, div#benefits h3, div#requirements p, div#requirements h3 {
+padding-left:8px;
+padding-right:8px;
+text-align:justify;
+}
+
+div#explanation {
+left:1007px;
+background-image:url("sowhat.jpg");
+width:398px;
+}
+
+div#explanation h3, div#benefits h3 {
+padding-top:15px;
+}
+
+div#participation {
+left:1405px;
+background-image:url("participation.jpg");
+width:656px;
+}
+
+div#benefits {
+left:2061px;
+background-image:url("benefits.jpg");
+width:390px;
+}
+
+div#requirements {
+left:2451px;
+width:1050px;
+}
+
+div#footer {
+position:absolute;
+top:470px;
+left:0.8em;
+}
+
+div#footer a:before {
+content: url("puce_rouge.gif");
+}
+
+p {
+font-size:0.9em;
+}
+
+#requirements .p5 {
+margin-top:15px;
+color:#ccc;
+}/* css Zen Garden default style - 'Tranquille' by Dave Shea - http://www.mezzoblue.com/ */
+/* css released under Zen Garden License - http://www.mezzoblue.com/zengarden/license/ */
+/* All associated graphics copyright 2003, Dave Shea */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* Please view the Zen Garden License for more information. http://www.mezzoblue.com/zengarden/license/ */
+
+
+/* The Zen Garden default was the first I put together, and almost didn't make the cut. I briefly flirted with using
+ 'Salmon Cream Cheese' as the main style for the Garden, but switched back to this one before launch.
+
+ All graphics in this design were illustrated by me in Photoshop. Google Image Search provided inspiration for
+ some of the elements. I did a bit of research on Kanji to come up with the characters on the top left. Anyone who
+ can read that will most likely tell you it makes no sense, but the best I could do was putting together the
+ characters for 'beginning' 'complete' and 'skill' to roughly say something like 'we're breaking fresh ground.'
+
+ It's a stretch. */
+
+
+/* basic elements */
+
+ html {
+ margin: 0px;
+ padding: 0px;
+ }
+ body {
+ font: 11px/14px Verdana, Geneva, Arial, Helvetica, sans-serif;
+ color: #999;
+ margin: 0px;
+ padding: 0px;
+ text-align: left;
+ background: #fff url(bg.gif) repeat-y;
+ }
+ p {
+ font: 11px/14px Verdana, Geneva, Arial, Helvetica, sans-serif;
+ margin: 0px;
+ margin-top: 10px;
+ padding:0px;
+ }
+ a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #FFCC00;
+ }
+ a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #666;
+ }
+ a:hover, a:active {
+ text-decoration: none;
+ color: #666;
+ }
+ acronym {
+ border-bottom: none;
+ }
+ /* specific divs */
+ #container {
+ padding: 0px;
+ margin: 0px;
+ }
+ #intro{
+ width: 760px;
+ position:absolute;
+ top:0px;
+ left:0px;
+ }
+ #intro{
+ width: 760px;
+ }
+ #pageHeader {
+ background: transparent url(headerbg2.gif) no-repeat top left;
+ height: 83px;
+ }
+
+ #pageHeader h1 {
+ background: transparent url(title.gif) no-repeat top left;
+ margin: 0px;
+ width: 760px;
+ height: 43px;
+ }
+ #pageHeader h1 span {
+ display:none
+ }
+ #pageHeader h2 {
+ background: transparent url(sub.gif) no-repeat top right;
+ width: 760px;
+ height: 42px;
+ margin: 0px;
+ padding:0px;
+ }
+ #pageHeader h2 span {
+ display:none
+ }
+ #quickSummary p.p1{
+ margin:0px;
+ margin-left: 199px;
+ padding: 20px;
+ text-align:justify;
+ background: transparent url(hordot.gif) repeat-x bottom;
+ }
+ #quickSummary p.p2{
+ margin:0px;
+ margin-left: 199px;
+ padding: 20px;
+ width: 520px;
+ background: transparent url(hordot.gif) repeat-x bottom;
+ }
+ #preamble{
+ margin-left: 199px;
+ padding-left: 20px ;
+ padding-right: 20px;
+ padding-bottom: 4px;
+ width: 520px;
+ background:transparent url(hordot.gif) repeat-x bottom;
+ }
+ #supportingText {
+ position: absolute;
+ top:390px;
+ left: 199px;
+ width: 560px;
+ padding-bottom: 20px;
+ }
+ #preamble h3, #explanation h3, #participation h3, #benefits h3, #requirements h3{
+ margin:20px 0px 10px 0px;
+ width:200px;
+ height:19px;
+ }
+ #preamble h3{
+ background: transparent url(preh3.gif) no-repeat top left;
+ }
+ #explanation h3{
+ background: transparent url(exph3.gif) no-repeat top left;
+ }
+ #participation h3{
+ background: transparent url(parth3.gif) no-repeat top left;
+ }
+ #benefits h3, #requirements h3{
+ background: transparent url(benh3.gif) no-repeat top left;
+ }
+ #requirements h3{
+ background: transparent url(reqh3.gif) no-repeat top left;
+ }
+
+ #preamble h3 span, #explanation h3 span, #participation h3 span, #benefits h3 span, #requirements h3 span, #lselect h3 span, #lfavorites h3 span, #larchives h3 span, #lresources h3 span{
+ display:none;
+ }
+ #preamble p.p3, #explanation p.p2, #participation p.p4, #benefits p.p1, #requirements p.p5 {
+ padding-bottom: 20px;
+ margin:0px;
+ }
+ #preamble, #explanation, #participation, #benefits, #requirements {
+ padding-left: 20px ;
+ padding-right: 20px;
+ padding-bottom: 4px;
+ background:transparent url(hordot.gif) repeat-x bottom;
+ }
+ #linkList{
+ position: absolute;
+ top:260px;
+ left: 0px;
+ padding:0px;
+ margin:0px;
+ width: 180px;
+ }
+ #lselect h3{
+ padding:0px;
+ margin:0px;
+ width:199px;
+ height:21px;
+ }
+ #lfavorites h3, #larchives h3, #lresources h3{
+ padding:0px;
+ margin:0px;
+ width:199px;
+ height:21px;
+ }
+ #lselect h3{
+ background: transparent url(select.gif) no-repeat top left;
+ }
+ #lfavorites h3{
+ background: transparent url(fav.gif) no-repeat top left;
+ }
+ #larchives h3{
+ background: transparent url(arc.gif) no-repeat top left;
+ }
+ #lresources h3{
+ background: transparent url(res.gif) no-repeat top left;
+ }
+ #lselect ul, #lfavorites ul, #larchives ul, #lresources ul{
+ margin: 0;
+ padding: 0;
+ margin-top:20px;
+ margin-bottom: 20px;
+ list-style-type: none;
+ }
+
+ #lselect li, #lfavorites li, #larchives li, #lresources li
+ {
+ padding-left: 12px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ #lselect a, #lfavorites a
+ {
+ background: transparent url(bul2.gif) no-repeat 0px 2px;
+ padding-left:18px;
+ display:block;
+ }
+ #lselect a:hover, #lfavorites a:hover
+ {
+ background: transparent url(bul1.gif) no-repeat 0px 2px;
+ padding-left:18px;
+ display:block;
+ }
+ #lselect a.c, #lfavorites a.c
+ {
+ font: 11px/14px Verdana, Geneva, Arial, Helvetica, sans-serif;
+ color: #999;
+ font-weight: normal;
+ text-decoration:none;
+ background: transparent;
+ padding-left:0px;
+ display:inline;
+ }
+ #lselect a.c:hover, #lfavorites a.c:hover
+ {
+ background: transparent;
+ padding-left:0px;
+ display:inline;
+ }
+ #footer{
+ width: 520px;
+ padding-left: 20px ;
+ padding-right: 20px;
+ padding-bottom: 4px;
+ background: #efefef url(hordot.gif) repeat-x bottom;;
+ }
+ #extraDiv1{
+ width:196px;
+ height:177px;
+ top: 63px;
+ left:1px;
+ position:absolute;
+ background: transparent url(buda.jpg) no-repeat;
+ }
+
+/* css Zen Garden submission 050 - 'First Summary' by Cornelia Lange, http://www.clkm.de/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Cornelia Lange */
+/* Added: October 17th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
/* elements */ +body { +color: #000; +background: #545D64; +font: 90% Verdana, Arial, Helvetica, sans-serif; +text-align: center; +} +body, html, h1, h2, h3, p, ul, li, div, span { +margin: 0; +padding: 0; +} +a { +color: #fff; +font-weight: normal; +background: transparent; +} +a:visited { +color: #000; +background: transparent; +} +a:hover { +text-decoration: underline; +color: #900; +background: transparent; +} +ul, li { +display: block; +list-style: none; +} +a acronym { +border: 0 none; +} + +/* divs and related classes */ + +#container { +position: relative; +display: block; +width: 737px; +margin: 30px auto 0 auto; +text-align: left; +color: #000; +background: transparent url(zengarden.jpg) top left no-repeat; +border-left: 1px solid #545D64; +} +#intro { +padding-top: 330px; +} +#pageHeader h1 { +display: none; +} +#pageHeader h2 { +display: none; +} + +#quickSummary { +position: absolute; +top: 0; +left: 560px; +display: block; +width: 180px; +height: 330px; +color: #000; +background: transparent; +} +#quickSummary p { +font-size: .78em; +width: 120px; +} +#quickSummary .p1 { +display: none; +} +#quickSummary .p2 { +position: absolute; +top: 230px; +left: -330px; +display: block; +width: 90px; +font-family: Arial, Helvetica, sans-serif; +} + +#preamble { +display: block; +width: 626px; +margin-left: 110px; +color: #fff; +background: #B5BB7D url(enlightenment_default.gif) 100% 3em no-repeat; +} +#preamble h3 { +display: none; +} +#preamble p { +font-size: 0.8em; +line-height: 140%; +width: 440px; +color: #000; +background: #B5BB7D; +} +#preamble .p1, #preamble .p2, #preamble .p3 { +width: 290px; +margin: 0 0 0 110px; +padding: 10px 20px 5px 20px; +color: #fff; +background: #537E53; +} +#preamble .p1 { +padding-top: 4em; +} +#preamble .p2 { +margin-top: -2px; +} +#preamble .p3 { +margin-top: -2px; +padding-bottom: 20px; +} + +#supportingText { +display: block; +width: 736px; +color: #000; +background: #B5BB7D url(main_bg.gif); +border-bottom: 20px solid #B62814; +} +#explanation, #participation, #benefits, #requirements { +margin-left: 110px; +width: 626px; +} +#explanation { +color: #000; +background: #FFFFCD url(about.gif) 100% 20px no-repeat; +} +#participation { +color: #000; +background: #FAC46C url(participation.gif) 100% 20px no-repeat; +} +#benefits { +color: #000; +background: #FFFFCD url(benefits.gif) 100% 20px no-repeat; +} +#requirements { +color: #000; +background: #FAC46C url(requirements.gif) 100% 20px no-repeat; +} +#explanation p, #benefits p, #requirements p, #participation p { +width: 440px; +font-size: 0.8em; +line-height: 140%; +} + +#explanation h3 { +display: none; +} +#explanation p { +color: #000; +background: #FAC46C; +} +#explanation .p1 { +border-top: 4px solid #B52814; +width: 340px; +padding: 25px 20px 5px 80px; +} +#explanation .p2 { +width: 340px; +padding: 10px 20px 20px 80px; +margin-top: -2px; +} + +#participation h3 span { +display: none; +} +#participation p { +color: #000; +background: #B5BB7D; +} +#participation .p1 { +width: 340px; +padding: 25px 20px 5px 80px; +} +#participation .p2 { +width: 340px; +padding: 10px 20px 5px 80px; +margin-top: -2px; +} +#participation .p3 { +width: 340px; +padding: 10px 20px 5px 80px; +margin-top: -2px; +} +#participation .p4 { +width: 340px; +padding: 10px 20px 20px 80px; +margin-top: -2px; +} + +#benefits h3 { +display: none; +} +#benefits p { +color: #000; +background: #FAC46C; +} +#benefits .p1 { +width: 340px; +padding: 25px 20px 20px 80px; +} + +#requirements h3 { +display: none; +} +#requirements p { +color: #000; +background: #B5BB7D; +} +#requirements .p1 { +width: 340px; +padding: 25px 20px 5px 80px; +} +#requirements .p2 { +width: 340px; +padding: 10px 20px 5px 80px; +margin-top: -2px; +} +#requirements .p3 { +width: 340px; +padding: 10px 20px 5px 80px; +margin-top: -2px; +} +#requirements .p4 { +width: 340px; +padding: 10px 20px 5px 80px; +margin-top: -2px; +} +#requirements .p5 { +width: 340px; +padding: 10px 20px 20px 80px; +margin-top: -2px; +} + +/* The Tan-Hack for IE 5.0 */ + +* html #preamble .p1, * html #preamble .p2, * html #preamble .p3 { +width: 330px; +w\idth: 290px; +} + +* html #supportingText .p1, * html #supportingText .p2, * html #supportingText .p3, * html #supportingText .p4, * html #supportingText .p5 { +width: 440px; +w\idth: 340px; +} + +#footer { +position: absolute; +top: 115px; +left: 115px; +display: block; +height: 110px; +width: 110px; +margin: 0; +padding: 0; +} +#footer a { +font: 0.78em Arial, Helvetica, sans-serif; +} +#footer a:link, #footer a:visited { +color: #fff; +background: transparent; +} +#footer a:hover, #footer a:active { +color: #f60; +background: transparent; +} + +/* left Menu */ +#linkList2 { +display: block; +position: absolute; +top: 330px; +left: 0; +text-align: left; +} + +#lselect { +position: relative; +top: 0; +left: 0; +color: #000; +background: #D28B6B; +width: 110px; +text-align: center; +} +#lselect h3 { +display: none; +} +#lselect ul { +list-style: none; +margin: 0; +padding: 0 0 10px 0; +} +#lselect li { +display: block; +width: 100px; +background: transparent; +margin: 0 5px; +padding: 5px 0 5px 0; +font-size: 0.78em; +} +#lselect a { +display: block; +width: 100px; +color: #fff; +background: #D28B6B url(anim.gif) bottom center no-repeat; +margin: 0 0 5px 0; +padding-bottom: 10px; +text-decoration: none; +} +#lselect a:link, #lselect a:visited { +color: #fff; +background: #D28B6B url(punkte.gif) bottom center no-repeat; +} +#lselect a:hover, #lselect a:active { +color: #fff; +background: #D28B6B url(anim.gif) bottom center no-repeat; +text-decoration: underline; +} +#lselect a.c, #lselect a:link.c , #lselect a:visited.c{ +color: #000; +background: transparent; +display: inline; +} +#lselect a:hover.c, #lselect a:active.c { +display: inline; +} + +#lfavorites { +position: relative; +top: 10px; +left: 0; +width: 110px; +color: #000; +background: #D28B6B url(favorites.gif) top left no-repeat; +text-align: center; +} +#lfavorites h3 { +display: none; +} +#lfavorites ul { +list-style: none; +margin: 0; +padding: 30px 0 10px 0; +} +#lfavorites li { +display: block; +width: 100px; +background: transparent; +margin: 0 5px; +padding: 5px 0 5px 0; +font-size: 0.78em; +} +#lfavorites a { +color: #fff; +background: #D28B6B url(anim.gif) bottom center no-repeat; +margin: 0 0 5px 0; +display: block; +width: 100px; +padding-bottom: 10px; +text-decoration: none; +} +#lfavorites a:link, #lfavorites a:visited { +color: #fff; +background: #D28B6B url(punkte.gif) bottom center no-repeat; +} +#lfavorites a:hover, #lfavorites a:active { +color: #fff; +background: #D28B6B url(anim.gif) bottom center no-repeat; +text-decoration: underline; +} +#lfavorites a.c, #lfavorites a:link.c , #lfavorites a:visited.c{ +color: #000; +background: transparent; +display: inline; +} +#lfavorites a:hover.c, #lfavorites a:active.c { +display: inline; +} + +#larchives { +position: relative; +left: 0; +top: 10px; +display: block; +width: 7.65em; +height: 7.65em; +color: #fff; +background: transparent url(archives3.gif) top left no-repeat; +} +#larchives h3 { +display: none; +} +#larchives h3 span { +display: none; +} +#larchives ul { +list-style: none; +margin: 0; +padding: 40px 0 0 0; +} +#larchives li { +display: inline; +font-size: 0.78em; +padding: 0; +margin: 0; +} +#larchives a { +display: block; +color: #fff; +background: transparent url(point.gif) left no-repeat; +text-decoration: none; +padding-left: 10px; +margin-left: 5px; +} +#larchives a .accesskey { +color: #fff; +background: transparent; +} + +#lresources { +position: absolute; +top: 0; +left: 110px; +color: #fff; +background: #B62814; +display: block; +width: 626px; +height: 1.3em; +padding: 1px 0; +} +#lresources h3 { +display: none; +} +#lresources ul { +list-style: none; +margin: 0 0 0 5px; +padding: 0; +display: inline; +} +#lresources li { +display: inline; +font-size: 0.78em; +} +#lresources a { +font-size: 0.80em; +padding: 0 5px 0 8px; +color: #fff; +background: transparent url(pointanim.gif) left no-repeat; +text-decoration: none; +} +#lresources a:link, #lresources a:visited { +color: #fff; +background: transparent url(point.gif) left no-repeat; +} +#lresources a:hover, #lresources a:active { +color: #fff; +background: transparent url(pointanim.gif) left no-repeat; +} + + + + + +/* css Zen Garden submission 051 - 'Commercial Drive' by Wendy Foster, http://www.transgression.ca/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Wendy Foster */
+/* Added: October 29th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+/* Support the Open Source Initiative - http://www.opensource.org/ */
+
+
+
+/* basic elements */
+
+body {
+ background: #79000E url("girl.jpg") no-repeat fixed top left;
+ font: 10px verdana, sans-serif;
+ color: #000000;
+ margin: 0px 0px 0px 0px;
+ }
+
+p {
+ font: 10px verdana, sans-serif;
+ margin-top: 0px;
+ text-align: justify;
+
+ }
+
+/* font resizing hack. Allows for an absolute value to be specified in the main p tag, as well as resolves resizing and rendering issues cross-browser. For a detailed explanation see: Mark Pilgrim's "Relative Font Sizing HOWTO : http://diveintoaccessibility.org/examples/fontsize.html */
+
+/*/*/a{}
+body,
+body p {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body,
+html>body p {
+ font-size: small;
+}
+/* */
+
+h3 {
+ font: 10px verdana, sans-serif;
+ letter-spacing: 1px;
+ margin-bottom: 0px;
+ background: none;
+ color: #7D775C;
+ }
+
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ background:none;
+ color: #79000e;
+ cursor: help;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ background: none;
+ color: #7099A6;
+ cursor: help;
+ }
+
+a:active {
+ font-weight:bold;
+ text-decoration: none;
+ background: none;
+ color: #5f3a79;
+ cursor: help;
+ }
+
+a:hover {
+ font-weight: bold;
+ text-decoration: none;
+ border: 1px solid #000000;
+ background: #c2c4c6;
+ color:#003058;
+ cursor: help;
+ }
+
+/* specific divs */
+#container {
+ background: #CED41E;
+ color: #000000;
+ padding: 5px 5px 5px 5px;
+ margin: 0px;
+ width:300px;
+ position:absolute;
+ top:0px;
+ left:493px;
+ border-right: 5px solid #000000;
+ border-left: 5px solid #000000;
+ }
+
+#intro {
+ min-width: 300px;
+ }
+#pageHeader {
+ margin-bottom: 20px;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: transparent url("garden.gif") no-repeat top left;
+ color:#000000;
+ width: 250px;
+ height: 80px;
+ }
+#pageHeader h1 span {
+ display:none
+ }
+#pageHeader h2 {
+ background: transparent url("design.gif") no-repeat top left;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ position:absolute;
+ left:35px;
+ top:82px;
+ }
+#pageHeader h2 span {
+ display:none;
+ }
+
+#quickSummary {
+ clear:both;
+ margin: 20px 20px 10px 10px;
+ padding:20px 5px 5px 5px;
+ width: 250px;
+ background: #d6d894 url("summarybg.gif");
+ color: #000000;
+ border-right: 5px solid #000000;
+ border-left: 5px solid #000000;
+ border-bottom: 5px solid #000000;
+ }
+#quickSummary p {
+ font: 10px verdana, sans-serif;
+ text-align:center;
+ }
+
+/*/*/a{}
+body #quickSummary p {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #quickSummary,
+html>body #quickSummary p {
+ font-size: small;
+}
+/* */
+
+#preamble {
+ padding:5px 5px 5px 5px;
+ }
+#preamble h3 {
+ background: transparent url("enlightenment.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#preamble h3 span {
+ display:none;
+ }
+
+#supportingText {
+ padding:5px 5px 5px 5px;
+ margin-bottom: 20px;
+ }
+
+#explanation h3 {
+ background: transparent url("about.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#explanation h3 span {
+ display:none;
+ }
+
+#participation h3 {
+ background: transparent url("participation.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#participation h3 span {
+ display:none;
+ }
+
+#benefits h3 {
+ background: transparent url("benefits.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#benefits h3 span {
+ display:none;
+ }
+
+#requirements h3 {
+ background: transparent url("requirements.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#requirements h3 span {
+ display:none;
+ }
+
+#favorites h3 {
+ background: transparent url("favorites.gif") no-repeat top left;
+ text-align:center;
+ color:#000000;
+ width: 250px;
+ height: 25px;
+ }
+#favorites h3 span {
+ display:none;
+ }
+
+#footer {
+ text-align: center;
+ padding: 5px 5px 5px 5px;
+ border-left: 5px solid #000000;
+ border-right: 5px solid #000000;
+ border-bottom: 5px solid #000000;
+ background:#D9DE4B url("footerbg.gif");
+ color:#000000;
+ }
+#footer a:link, #footer a:visited {
+ margin-right: 20px;
+ }
+
+#linkList2 {
+ background:#CED41E url("linklistbg.gif");
+ color:#000000;
+ font: 10px verdana, sans-serif;
+ padding: 5px 5px 5px 5px;
+ border-top: 5px solid #000000;
+ border-bottom: 5px solid #000000;
+ position:absolute;
+ top:27px;
+ left:-230px;
+ height:125px;
+ width:220px;
+ overflow:auto;
+ }
+
+/*/*/a{}
+body #linkList2 {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList2
+ {
+ font-size: small;
+}
+/* */
+
+#linkList h3.select {
+ background: transparent url(select.gif) no-repeat top left;
+ color:#000000;
+ margin: 10px 0px 5px 0px;
+ width: 100px;
+ height: 20px;
+ }
+#linkList h3.select span {
+ display:none
+ }
+#linkList h3.favorites {
+ background: transparent url(favorites.gif) no-repeat top left;
+ color:#000000;
+ margin: 25px 0px 5px 0px;
+ width: 100px;
+ height: 20px;
+ }
+#linkList h3.favorites span {
+ display:none
+ }
+#linkList h3.archives {
+ background: transparent url(archives.gif) no-repeat top left;
+ color:#000000;
+ margin: 25px 0px 5px 0px;
+ width:100px;
+ height: 20px;
+ }
+#linkList h3.archives span {
+ display:none
+ }
+#linkList h3.resources {
+ background: transparent url(resources.gif) no-repeat top left;
+ color:#000000;
+ margin: 25px 0px 5px 0px;
+ width:100px;
+ height: 20px;
+ }
+#linkList h3.resources span {
+ display:none
+ }
+
+#linkList ul {
+ font:10px verdana, sans-serif;
+ margin: 0px;
+ padding-left: 15px;
+ list-style-type: circle;
+ list-style-image: url("bullet.gif");
+ }
+
+/*/*/a{}
+body #linkList ul {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList ul
+ {
+ font-size: small;
+}
+/* */
+
+#linkList li {
+ font: 10px verdana, sans-serif;
+ padding-top: 5px;
+ margin-bottom: 5px;
+ }
+
+/*/*/a{}
+body #linkList li {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList li
+ {
+ font-size: small;
+}
+/* */
+
+#linkList li a:link {
+ font: 10px verdana, sans-serif;
+ font-weight:bold;
+ background:none;
+ color: #79000e;
+ text-decoration:none;
+ cursor: help;
+ }
+
+/*/*/a{}
+body #linkList li a:link{
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList li a:link
+ {
+ font-size: small;
+}
+/* */
+
+#linkList li a:visited {
+ font: 10px verdana, sans-serif;
+ font-weight:bold;
+ background:none;
+ color: #7099A6;
+ text-decoration:none;
+ cursor: help;
+ }
+
+/*/*/a{}
+body #linkList li a:visited{
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList li a:visited
+ {
+ font-size: small;
+}
+/* */
+
+#linkList li a:active {
+ font: 10px verdana, sans-serif;
+ font-weight:bold;
+ background:none;
+ color: #5f3a79;
+ text-decoration:none;
+ cursor: help;
+ }
+
+/*/*/a{}
+body #linkList li a:active{
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList li a:active
+ {
+ font-size: small;
+}
+/* */
+
+#linkList li a:hover {
+ font: 10px verdana, sans-serif;
+ font-weight:bold;
+ border: 1px solid #000000;
+ background: #c2c4c6;
+ color:#003058;
+ text-decoration:none;
+ cursor: help;
+ }
+
+/*/*/a{}
+body #linkList li a:hover{
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+html>body #linkList li a:hover
+ {
+ font-size: small;
+}
+/* */ /* css Zen Garden submission 052 - 'Postage Paid' by Mike Stenhouse, http://www.donotremove.co.uk */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Mike Stenhouse */
+/* Added: October 29th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+html {
+ background-color: #BDB7BD;
+ color: black;
+}
+body {
+ margin:0 0 0 0;
+ padding:0 0 0 0;
+
+ font-family:arial, helvetica, sans-serif;
+ font-size:11px;
+ letter-spacing:0.01em;
+
+ color:black;
+
+ /*overflow: hidden;*/ /* hack to stop IE/Mac adding masses of space under the page - caused by IE/Mac rendering space for the invisible content of overflow:auto */
+}
+p {
+ margin:0;
+ padding-top:0;
+ padding-bottom:11px;
+ line-height:130%;
+}
+acronym {
+ text-decoration:none;
+ font-style: none;
+ border-bottom:0px dotted black;
+}
+
+/* LINK STYLES */
+ a,
+ a:link
+ a:active {
+ color:black;
+ background-color:white;
+ text-decoration:none;
+ font-weight:normal;
+ }
+ a:visited {
+ color:#666;
+ }
+ a:hover {
+ background-color:black;
+ color:white;
+ }
+
+ div#intro a,
+ div#intro a:link
+ div#intro a:active {
+ color:black;
+ text-decoration:none;
+ font-weight:normal;
+ }
+ div#intro a:visited {
+ color:#666;
+ }
+ div#intro a:hover {
+ background-color:#FE7996;
+ color: white;
+ }
+
+ div#supportingText a,
+ div#supportingText a:link
+ div#supportingText a:active {
+ background-color: white;
+ color: black;
+ text-decoration:none;
+ font-weight:normal;
+ }
+ div#supportingText a:visited {
+ color:#666;
+ }
+ div#supportingText a:hover {
+ background-color: black;
+ color: white;
+ }
+
+ div#supportingText div#footer a,
+ div#supportingText div#footer a:link
+ div#supportingText div#footer a:active {
+ background-color:transparent;
+ color:black;
+ text-decoration:none;
+ font-weight:bold;
+ }
+ div#supportingText div#footer a:visited {
+ color:black;
+ }
+ div#supportingText div#footer a:hover {
+ background-color: black;
+ color: white;
+ }
+
+ div#linkList a,
+ div#linkList a:link
+ div#linkList a:active {
+ background-color:white;
+ color:black;
+ text-decoration:none;
+ font-weight:normal;
+ }
+ div#linkList a:visited {
+ color:#666;
+ text-decoration: line-through;
+ }
+ div#linkList div#larchives a:visited, div#linkList div#lresources a:visited {
+ text-decoration: none;
+ }
+ div#linkList a:hover {
+ background-color: #FE7996;
+ color: white;
+ }
+/* END LINK STYLES */
+
+/* CONTAINER */
+ div#container {
+ z-index:1;
+ width:780px;
+ padding-bottom:100px;
+
+ background: url("card_bottom.jpg") no-repeat left bottom;
+ }
+/* END CONTAINER */
+
+/* INTRO */
+ div#intro {
+ position:relative;
+ top:0;
+ left:0;
+
+ width:780px;
+ height:100px;
+
+ padding-top:0;
+ margin-top:0;
+ padding:167px 0 27px 27px;
+
+ background: url("card.jpg") repeat-y left top;
+ }
+ html>body div#intro {
+ height:auto;
+ }
+
+ div#intro h1 {
+ z-index:10;
+ position:absolute;
+ top:50px;
+ left:0;
+
+ height: 101px;
+ width: 307px;
+
+ margin:0;
+ padding:0;
+
+ background: url(logo.jpg) no-repeat left top;
+ }
+ div#intro h1 span {
+ display: none;
+ }
+ div#intro h2 {
+ z-index:10;
+ position:absolute;
+ top:119px;
+ left:174px;
+
+ width: 205px;
+ height: 32px;
+
+ margin:0;
+ padding:0;
+
+ background: url(tagline.jpg) no-repeat left top;
+ }
+ div#intro h2 span {
+ display: none;
+ }
+
+ div#intro div#pageHeader {
+ z-index:2;
+ position:absolute;
+ top:0;
+ left:0;
+
+ width:780px;
+ height:150px;
+
+ background: url("card_top.jpg") no-repeat left top;
+ }
+
+ div#intro div#quickSummary {
+ z-index:10;
+ position:absolute;
+ top:37px;
+ left:427px;
+
+ width:301px;
+
+ background: white url("rounded_top.jpg") no-repeat left top;
+ }
+ div#intro div#quickSummary p {
+ padding-left:100px;
+ padding-right:15px;
+
+ }
+ div#intro div#quickSummary p.p1 {
+ height:107px;
+
+ margin-top:26px;
+ margin-bottom:11px;
+ padding-bottom:0;
+
+ background: url("a_demonstration_of.gif") no-repeat 100px 22px;
+ }
+ div#intro div#quickSummary p.p1 span {
+ display:none;
+ }
+ div#intro div#quickSummary p.p2 {
+ padding-bottom:20px;
+
+ color:#aaa;
+
+ background: url("rounded_bottom.jpg") no-repeat bottom left;
+ }
+
+ div#intro div#preamble {
+ z-index:10;
+ position:relative;
+ width:198px;
+
+ margin:0;
+ padding:0;
+
+ color:white;
+
+ background: #071969 url("blue_top.gif") no-repeat top left;
+ }
+ div#intro div#preamble h3 {
+ position:absolute;
+ top:15px;
+ right:15px;
+
+ width: 32px;
+ height: 244px;
+
+ margin:0;
+ padding:0;
+
+ background: url(the_road_to_enlightenment2.gif) no-repeat left top;
+ }
+ div#intro div#preamble h3 span {
+ display:none;
+ }
+ div#intro div#preamble p {
+ padding-left:15px;
+ padding-right:15px;
+ margin-left:0px;
+ margin-right:30px;
+ }
+ div#intro div#preamble p.p1 {
+ padding-top:65px;
+ margin-top:0;
+ }
+ div#intro div#preamble p.p3 {
+ padding-bottom:30px;
+ margin-bottom:0;
+ background: url("blue_bottom.gif") no-repeat bottom left;
+ }
+/* END INTRO */
+
+/* SUPPORTINGTEXT */
+ div#supportingText {
+ position:absolute;
+ z-index:10;
+ left:240px;
+ top:329px;
+
+ padding:0 0 0 0;
+ width:335px;
+ height:300px;
+ overflow:auto;
+
+ background-color:#A5D2AA;
+
+ border-width: 2px 2px 2px 2px;
+ border-style:solid;
+ border-color:white;
+ }
+ div#supportingText p {
+ padding-left:35px;
+ padding-right:15px;
+ /*margin-right:35px;*/ /*to sort ie/mac horiz scrollbar*/
+ }
+
+ div#supportingText div#explanation {
+ background: url("do_not_duplicate.gif") no-repeat 5px 14px;
+ }
+ div#supportingText div#explanation h3 {
+ width: 166px;
+ height: 15px;
+ margin:10px 0 6px 34px;
+ display:block;
+
+ background: url(so_what_is_this_about.gif) no-repeat left top;
+ }
+ div#supportingText div#explanation h3 span {
+ display:none;
+ }
+
+ div#supportingText div#participation h3 {
+ width: 166px;
+ height: 18px;
+ margin:0px 0 3px 34px;
+
+ background: url(participation.gif) no-repeat left top;
+ }
+ div#supportingText div#participation h3 span {
+ display:none;
+ }
+
+ div#supportingText div#benefits h3 {
+ width: 166px;
+ height: 15px;
+ margin:0px 0 6px 34px;
+
+ background: url(benefits.gif) no-repeat left top;
+ }
+ div#supportingText div#benefits h3 span {
+ display:none;
+ }
+
+ div#supportingText div#requirements h3 {
+ width: 166px;
+ height: 18px;
+ margin:0px 0 3px 34px;
+
+ background: url(requirements.gif) no-repeat left top;
+ }
+ div#supportingText div#requirements h3 span {
+ display:none;
+ }
+
+ div#supportingText div#footer {
+ padding:0 15px 17px 35px;
+ background: url("footer.gif") no-repeat bottom left;
+ }
+/* END SUPPORTINGTEXT */
+
+/* LINKLIST */
+ div#linkList {
+ z-index:10;
+ position:absolute;
+ top:247px;
+ left:594px;
+ width:160px;
+
+ color:#aaa;
+
+ background: white url("rounded2_top.jpg") no-repeat top left;
+ }
+ div#linkList ul {
+ margin:0;
+ padding:0 15px 6px 15px;
+ list-style:none;
+ }
+ div#linkList ul li {
+ margin:0;
+ padding:0;
+ }
+
+ div#linkList div#lselect h3 {
+ width:112px;
+ height:12px;
+
+ margin:40px 0 6px 15px;
+ padding:0;
+
+ background: url("select_a_design2.gif") no-repeat top left;
+ }
+ div#linkList div#lselect h3 span {
+ display:none;
+ }
+ div#linkList div#lselect li {
+ margin-bottom:2px;
+ }
+
+ div#linkList div#larchives h3 {
+ margin:0 0 0 0;
+ }
+ div#linkList div#larchives h3 span {
+ display:none;
+ }
+ div#linkList div#larchives a {
+ font-weight:bold;
+ }
+
+ div#linkList div#lresources h3 {
+ width:81px;
+ height:11px;
+
+ margin:6px 0 6px 15px;
+ padding:0;
+
+ background: url("resources2.gif") no-repeat top left;
+ }
+ div#linkList div#lresources h3 span {
+ display:none;
+ }
+ div#linkList div#lresources ul {
+ padding-bottom:20px;
+ background: url("rounded2_bottom.jpg") no-repeat bottom left;
+ }
+ div#linkList div#lresources li {
+ margin-bottom:2px;
+ }
+/* END LINKLIST */
+
+
+/* EXTRAS */
+ div#extraDiv1 {
+ z-index:11;
+ position:absolute;
+ top:68px;
+ left:381px;
+
+ width:134px;
+ height:119px;
+
+ background: url("stamp.jpg") no-repeat top left;
+ }
+ div#extraDiv2 {
+ z-index:11;
+ position:absolute;
+ top:260px;
+ left:240px;
+
+ width:335px;
+ height:69px;
+
+ background: white url("barcode.gif") no-repeat top left;
+
+ border-width: 2px 2px 0 2px;
+ border-style:solid;
+ border-color:white;
+ }
+ div#extraDiv3 {
+ z-index:2;
+ position:absolute;
+ top:265px;
+ left:609px;
+
+ width:171px;
+ height:356px;
+
+ background: url("bent.jpg") no-repeat top left;
+ }
+/* END EXTRAS */
+/* css Zen Garden submission 053 - 'untitled' by Ray Henry, http://www.reh3.com/ */ +/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */ +/* All associated graphics copyright 2003, Ray Henry */ +/* Added: October 29th, 2003 */ + +/* IMPORTANT */ +/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */ +/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */ +/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */ + +/* basic elements */ +body { + font-family:verdana, arial, sans serif; + color:#65625B; + background:#fff url(main2_bg.gif); + margin:0; + padding:0; +} +#container { + width:auto; + margin:22px 0 0 0; + padding:7px 0 0 0; + height:471px; +} +acronym { + cursor: help; +} + +/*-- intro section --*/ +#intro { + background:#fff url(intro_bg.jpg) no-repeat top left; + width:339px; + height:471px; + padding:0 0 0 201px; + margin:0; +} +#pageHeader { + background:#fff url(pageHead_bg.gif) no-repeat top left; + width:302px; + height:51px; + margin:0; + padding:0; + border-bottom:1px dotted #c8c8c8; +} +#quickSummary, #preamble { + font-size:11px; + margin:0 0 0 100px; + width:202px; +} +#quickSummary p, #preamble p { + margin-bottom:10px; + line-height:16px; +} +#preamble h3 { + background:#fff url(preamble_h3_bg.gif) no-repeat top left; + width:142px; + height:13px; + margin-top:20px; +} + +/*-- supportingText section --*/ +#supportingText { + background:transparent; + font-size:11px; + width:auto; +} +#explanation { + position:absolute; + top:80px; + left:520px; + clear:both; + background:#fff url(graySec_bg.gif) repeat-x top left; + width:344px; + margin:0; + padding:10px 0 0 0; + height:410px; +} +#explanation h3 { + background:#F4F4F3 url(explan_h3_bg.gif) no-repeat top left; + width:137px; + height:13px; + margin:30px 10px 10px 10px; +} +#explanation p { + margin:10px; + line-height:16px; +} + +/*-- participation section --*/ +#participation { + position:absolute; + top:80px; + left:868px; + background:#fff url(explan_bg.gif) no-repeat top left; + width:344px; + margin:0; + padding:10px 0 0 3px; + height:410px; +} +#participation h3 { + background:#fff url(part_h3_bg.gif) no-repeat top left; + width:73px; + height:13px; + margin:30px 10px 10px 10px; +} +#participation p { + margin:10px; + line-height:16px; +} + +/*-- benefits section --*/ +#benefits { + position:absolute; + top:80px; + left:1216px; + background:#fff url(graySec_bg.gif) repeat-x top left; + width:344px; + margin:0; + padding:10px 0 0 3px; + height:410px; +} +#benefits h3 { + background:#F4F4F3 url(ben_h3_bg.gif) no-repeat top left; + width:45px; + height:13px; + margin:30px 10px 10px 10px; +} +#benefits p { + margin:10px; + line-height:16px; +} + +/*-- requirements section --*/ +#requirements { + position:absolute; + top:80px; + left:1564px; + background:#fff url(explan_bg.gif) repeat-x top left; + width:560px; + margin:0; + padding:10px 0 0 3px; + height:410px; +} +#requirements h3 { + background:#fff url(req_h3_bg.gif) no-repeat top left; + width:73px; + height:13px; + margin:30px 10px 10px 10px; +} +#requirements p { + margin:10px; + line-height:16px; +} + +/*-- footer section --*/ +#footer { + position:absolute; + top:80px; + left:2546px; + background:#fff url(graySec_bg.gif) repeat-x top left; + width:40px; + padding:45px 0 0 10px; + height:375px; + margin:0px 50px 0 0; + line-height:20px; +} + +/*-- lselect section --*/ +#lselect { + position:absolute; + background:#fff url(lselect_arrow_bg.gif) no-repeat top left; + top:30px; + left:520px; + height:51px; + width:2100px; + margin:0; + padding:0; + border-left:1px dotted #c8c8c8; + border-bottom:1px dotted #c8c8c8; + font-size:11px; +} +#lselect h3 { + background:#fff url(lselect_bg.gif) no-repeat top left; + width:83px; + height:13px; + margin:10px 10px 9px 10px; +} +#lselect ul { + margin:0 0 0 80px; + padding:0; +} +#lselect li { + font-size:10px; + margin-right:8px; + padding:6px; + display: inline; + list-style-type: none; + border-left:1px solid #ccc; + border-top:1px solid #ccc; + border-right:1px solid #ccc; +} +#lselect a:link, #lselect a:visited, #lselect a:active { + font-size:10px; + color:#65625B; +} +#lselect li:hover{ + background: #f5f5f5 url(tab_bg.gif) repeat-x top left; + color:#434039; +} + +/*-- larchives section --*/ +#larchives { + position:absolute; + top:80px; + left:2131px; + background:#F4F4F3 url(explan_bg.gif) repeat-x top left; + width:200px; + margin:0; + padding:10px 0 0 3px; + height:410px; +} +#larchives h3 { + background:#F4F4F3 url(arch_h3_bg.gif) no-repeat top left; + width:49px; + height:13px; + margin:30px 10px 10px 10px; +} +#larchives ul { + list-style-type: none; + font-size:11px; + margin:0 0 0 20px; + padding:0; + line-height:20px; +} + +/*-- larchives section --*/ +#lresources { + position:absolute; + top:80px; + left:2338px; + background:#fff url(explan_bg.gif) repeat-x top left; + width:200px; + margin:0; + padding:10px 0 0 3px; + height:410px; +} +#lresources h3 { + background:#fff url(res_h3_bg.gif) no-repeat top left; + width:60px; + height:13px; + margin:30px 10px 10px 10px; +} +#lresources ul { + list-style-type: none; + font-size:11px; + margin:0 0 0 20px; + padding:0; + line-height:20px; +} + +/*-- LINKS --*/ +#quickSummary a:link, #quickSummary a:visited, #quickSummary a:active, #supportingText a:link, #supportingText a:visited, #supportingText a:active, #larchives a:link, #larchives a:visited, #larchives a:active, #lresources a:link, #lresources a:visited, #lresources a:active { + color:#65625B; +} +#quickSummary a:hover, #supportingText a:hover, #larchives a:hover, #lresources a:hover{ + color:#434039; +} + +/*-- hidden --*/ +#pageHeader h1, #pageHeader h2, #preamble h3 span, #preamble p.p3, #participation p.p4, #explanation h3 span, #participation h3 span, #benefits h3 span, #supportingText h3 span, #lselect h3 span, #larchives h3 span, #lresources h3 span, #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 { + display:none; +}/* css Zen Garden submission 054 - 'Gecko's Eye' by Sandra Greco, http://www.magritte.it/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Sandra Greco */
+/* Added: October 29th, 2003 */
+
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ color: #fff;
+ background: #9E9E9E;
+ margin: 0;
+ background-image: url(bg.gif);
+ background-position: top left;
+ background-repeat:no-repeat;
+ }
+
+p {
+ font: 8pt/15pt Verdana, Arial, Helvetica, sans-serif;
+ margin-top: 4px;
+ text-align: left;
+ margin-right:5px;
+ }
+
+.p1, .p2 {
+ background-image: url(separator.gif);
+ background-position: left bottom;
+ background-repeat:no-repeat;
+ padding-bottom:15px;
+ margin-left:10px;
+ }
+
+.p3 {
+ padding-bottom:12px;
+ margin-left:10px;
+ }
+
+.p4 {
+ background-image: url(separator.gif);
+ background-position: left bottom;
+ background-repeat:no-repeat;
+ padding-bottom:10px;
+ }
+
+h3 {
+ FONT: 11pt times, Verdana, Arial, Helvetica, sans-serif;
+ COLOR: #EEE9E0;
+ text-decoration: none;
+ font-weight:bold;
+ height:10px;
+ line-height:17px;
+ letter-spacing:0.04em;
+ }
+
+a:link {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #ffffff;
+ }
+
+a:visited {
+ font-weight: bold;
+ text-decoration: underline;
+ color: #ffffff;
+ }
+
+a:hover, a:active {
+ text-decoration: none;
+ color: #ffffff;
+ }
+
+#container {
+ background-image: url(geco_garden.gif);
+ background-position: 221px 0px;
+ background-repeat:no-repeat;
+ margin: 0;
+ height:80%;
+ }
+
+#explanation {
+ BACKGROUND:#880622 url(eye.gif) 0 10px no-repeat;
+ width:520px;
+ padding-bottom:35px;
+ border-top: solid 1px #5F0116;
+ border-right: solid 1px #5F0116;
+ }
+
+#participation, #benefits, #requirements {
+ BACKGROUND:#880622 url(eye.gif) 0 10px no-repeat;
+ width:520px;
+ padding-bottom:35px;
+ margin-top:-35px;
+ border-right: solid 1px #5F0116;
+ }
+
+#explanation p, #participation p, #benefits p, #requirements p {
+ width:490px;
+ margin-left:10px;
+ }
+
+#explanation h3, #participation h3, #benefits h3, #requirements h3 {
+ margin-left:55px;
+ padding-top:30px;
+ color: #d3f580;
+ }
+
+#footer {
+ font: 11px Verdana, Arial, Helvetica, sans-serif;
+ BACKGROUND:#C6C4C4;
+ width:520px;
+ text-align:center;
+ border-right: solid 1px #880622;
+ border-bottom: solid 1px #880622;
+ border-left: solid 1px #880622;
+ padding-bottom: 2px;
+ }
+
+#footer a:link, #footer a:visited {
+ margin-right: 10px;
+ color:#000000;
+ }
+
+#footer a:hover {
+ color:#880622;
+ }
+
+#intro {
+ min-width: 200px;
+ }
+
+
+#extraDiv1 {
+ background:#9E9E9E url(garden_css.gif) top left no-repeat;
+ position: absolute;
+ top: 145px;
+ left: 520px;
+ width:251px;
+ height: 152px;
+ border-bottom: solid 1px #EEE9E0;
+ border-left: solid 1px #EEE9E0;
+ border-top: solid 1px #EEE9E0;
+ }
+
+#extraDiv2 {
+ position: absolute;
+ top: 0;
+ left: 195px;
+ background-position: top left;
+ background-repeat:no-repeat;
+ width:25px;
+ height:220px;
+ }
+
+#extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
+ display:none;
+ }
+
+
+#quickSummary {
+ position:absolute;
+ top: 0;
+ left: 520px;
+ background:#0B4D69 url(sfondo_top.gif) no-repeat top left;
+ font: 8pt/12pt Verdana, Arial, Helvetica, sans-serif;
+ border-right: solid 1px #EEE9E0;
+ border-left: solid 1px #EEE9E0;
+ width:250px;
+ z-index:1
+ }
+
+
+
+#quickSummary p {
+ font: 8pt/12pt Verdana, Arial, Helvetica, sans-serif;
+ text-align: left;
+ margin-left:5px;
+ width: 240px;
+ }
+
+p:first-letter {
+ COLOR: #EEE9E0;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 0px 2px 0px 0px;
+ }
+
+
+#preamble {
+ BACKGROUND:#497c89;
+ width:221px;
+ border-right: solid 1px #EEE9E0;
+ margin-top:0;
+ padding-bottom:1px;
+ padding-top:1px;
+ }
+
+#preamble h3 {
+ color: #d3f580;
+ padding-bottom:5px;
+ margin-left:10px;
+ padding-top:10px;
+ }
+
+#pageHeader h1, #pageHeader h1 span, #pageHeader h2, #pageHeader h2 span {
+ display:none
+ }
+
+
+#linkList {
+ margin-left: 250px;
+ margin-top:110px;
+ padding-left:7px;
+ position: absolute;
+ top: 40px;
+ left: 270px;
+ border-left: solid 1px #EEE9E0;
+ border-right: solid 1px #EEE9E0;
+ border-bottom: solid 1px #EEE9E0;
+ padding-bottom:30px;
+ width:200px;
+ }
+
+#linkList2 {
+ font: 10px Verdana, Arial, Helvetica, sans-serif;
+ padding-left:10px;
+ margin-top: 150px;
+ width: 165px;
+
+ }
+
+#linkList h3.select {
+ text-align: center;
+ }
+
+#linkList h3.select span {
+ font: 12px/18px Verdana, Arial, Helvetica, sans-serif;
+ font-weight:bold;
+ letter-spacing:0.03em;
+ margin: 30px 0px 5px 0px;
+ height: 20px;
+ }
+
+#linkList h3.favorites, #linkList h3.favorites span {
+ display:none;
+ }
+
+#larchives li {
+ margin-bottom:5px;
+ margin-top:6px;
+ }
+
+#larchives a {
+ background: url(arrow.gif) no-repeat top left;
+ }
+
+#larchives a:hover, #larchives a:active #larchives a:visited{
+ background-color: #9E9E9E;
+ text-decoration: none;
+ }
+
+#lresources li {
+ margin-bottom:5px;
+ margin-top:6px;
+ }
+
+
+#lselect a:link {
+ text-decoration: none;
+ background: url(circle.gif) top left no-repeat;
+ }
+
+#lselect a:hover, #lselect a:active {
+ text-decoration: none;
+ }
+
+#lresources a {
+ background-color: #9E9E9E;
+ background: url(arrow.gif) no-repeat top left;
+ }
+
+#lresources a:link {
+ background-color: #9E9E9E;
+ }
+
+#lresources a:hover, #lresources a:active {
+ background-color: #9E9E9E;
+ text-decoration: none;
+ }
+
+#lresources a:visited{
+ background-color: #9E9E9E;
+ text-decoration: none;
+ background: url(arrow.gif) no-repeat top left;
+ }
+
+#linkList h3.archives, #linkList h3.resources {
+ font: 12px Verdana, Arial, Helvetica, sans-serif;
+ letter-spacing:0.03em;
+ margin: 15px 0px 5px 0px;
+ height: 60px;
+ width: 140px;
+ background:url(decoration.gif) no-repeat top center;
+ text-align: center;
+ }
+
+#linkList h3.archives span, #linkList h3.resources span {
+ letter-spacing:0.03em;
+ font: 12px Verdana, Arial, Helvetica, sans-serif;
+ font-weight:bold;
+ text-align: center;
+ width:140px;
+ margin-top:40px;
+ }
+
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#linkList li {
+ list-style-type: none;
+ }
+
+
+#linkList li a:link {
+ color: #880622;
+ text-decoration: none;
+ padding-right:2px;
+ padding-left:10px;
+ padding-bottom:3px;
+ padding-top:1px;
+ height:18px;
+ }
+
+#linkList li a:hover {
+ color: #EEE9E0;
+ text-decoration: none;
+ padding-right:2px;
+ padding-left:10px;
+ padding-bottom:3px;
+ padding-top:1px;
+ }
+
+#linkList li a:visited {
+ color: #880622;
+ text-decoration: none;
+ padding-right:2px;
+ padding-left:10px;
+ padding-bottom:3px;
+ padding-top:1px;
+ }
+
+#linkList li a:active {
+ color: #880622;
+ text-decoration: none;
+ padding-right:2px;
+ padding-left:10px;
+ padding-bottom:3px;
+ padding-top:1px;
+ }
+
+#lselect{
+ display: block;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+#lselect a.c {
+ font-weight: normal;
+ text-decoration: none;
+ display: block;
+ background: url(arrow1.gif) no-repeat top left;
+ }
+
+#lselect a:hover.c {
+ display: block;
+ font-weight: normal;
+ color:#EEE9E0;
+ text-decoration: none;
+ }
+
+.c {
+ color: #880622;
+ text-decoration: none;
+ }
+
+.c:hover {
+ color: #880622;
+ text-decoration: underline;
+ }
+/* css Zen Garden submission 056 - 'zenlightenment' by Lance Leonard, http://www.solarfrog.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Lance Leonard */
+/* Added: October 29th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+html {
+ text-align: center;
+}
+body {
+ background: #369 url(bg.gif) repeat-x top;
+ margin: 0 auto;
+ padding: 0;
+ color: #fff;
+ font-family: verdana, arial, helvetica, sans-serif;
+ width: 760px;
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+}
+
+div#container {
+ float: left;
+ margin: 160px auto 0 auto;
+ padding: 0;
+ background: url(bg_container.gif) repeat-y top center;
+ width: 760px; /* False value for IE4-5.x/Win */
+ text-align: left;
+}
+
+div#intro {
+ position: relative;
+ background: #369;
+ border: solid 1px #000;
+ margin: 0;
+ padding: 5px;
+ z-index: 1;
+ width: 760px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 748px; /* Actual value for conformant browsers */
+}
+
+div#pageHeader {
+ position: absolute;
+ top: -151px;
+ left: 41px;
+ background: url(head.jpg) no-repeat top left;
+ width: 676px;
+ height: 150px;
+}
+
+div#pageHeader h1, div#pageHeader h2 {
+ display: none;
+}
+
+div#quickSummary {
+ float: left;
+ clear: both;
+ margin: 0 0 0 5px;
+ padding: 10px 0 0 0 ;
+ width: 169px; /* False value for IE4-5.x/Win */
+ height: 169px;
+}
+
+div#quickSummary p.p1 {
+ background: url("quickSum.gif") no-repeat top left;
+ width: 159px;
+ height: 139px;
+}
+
+div#quickSummary p.p1 span {
+ display: none;
+}
+
+div#quickSummary p.p2 {
+ position: absolute;
+ top: 165px;
+ font-size: 10px;
+ width: 169px;
+}
+
+div#quickSummary a {
+ color: #fff;
+ font-weight: bold;
+}
+
+div#preamble {
+ margin: 0 0 0 175px;
+ padding: 5px 10px;
+ background: #69c;
+ min-height: 200px;
+ width: 555px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 545px; /* Actual value for conformant browsers */
+}
+
+div#preamble h3 {
+ margin: 0 0 10px 0;
+ padding: 0;
+ height: 26px;
+ background: url(road.gif) no-repeat top left;
+}
+
+div#preamble h3 span {
+ display: none;
+}
+
+div#preamble p {
+ margin: 8px 0 0 0;
+ line-height: 1.5em;
+}
+
+div#supportingText {
+ float: left;
+ margin: 0;
+ padding: 20px 20px 0 66px;
+ background: url(bg_supportingText.gif) no-repeat top left;
+ width: 496px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 410px; /* Actual value for conformant browsers */
+}
+
+div#supportingText h3 {
+ margin: 25px 0 0 0;
+ padding: 0;
+ width: 409px;
+ height: 26px;
+}
+
+div#supportingText h3 span {
+ display: none;
+}
+
+div#explanation h3 {
+ margin-top: 0;
+ background: url(what.gif) no-repeat top left;
+}
+
+div#participation h3 {
+ background: url(part.gif) no-repeat top left;
+}
+
+div#benefits h3 {
+ background: url(bene.gif) no-repeat top left;
+}
+
+div#requirements h3 {
+ background: url(requ.gif) no-repeat top left;
+}
+
+div#supportingText p {
+ margin: 15px 0 0 0;
+ letter-spacing: .1em;
+ line-height: 1.2em;
+}
+
+div#supportingText a {
+ color: #036;
+}
+
+div#linkList {
+ margin-left: 496px;
+ padding: 20px;
+ background: url(bg_linkList.gif) no-repeat top left;
+}
+
+div#linkList h3 {
+ margin: 25px 0 0 0;
+ padding: 0;
+ width: 182px;
+ height: 26px;
+}
+
+div#linkList h3 span {
+ display: none;
+}
+
+div#lselect h3 {
+ margin-top: 0px;
+ background: url(selectadesign.gif) no-repeat top left;
+}
+
+div#larchives h3 {
+ background: url(archives.gif) no-repeat top left;
+}
+
+div#lresources h3 {
+ background: url(resources.gif) no-repeat top left;
+}
+
+div#linkList a {
+ color: #369;
+ text-decoration: none;
+ font-size: small;
+ font-weight: normal;
+}
+
+div#linkList a:hover {
+ color: #036;
+}
+
+#linkList ul {
+ margin: 12px 0 15px 15px;
+ padding: 0px;
+}
+
+#linkList li {
+ list-style: none;
+ margin: 0;
+ padding: 0px;
+}
+
+#lselect li {
+ margin: 0 0 10px 0;
+}
+
+div#lselect li a {
+ display: block;
+}
+
+div#lselect li .c {
+ display: inline;
+}
+
+div#footer {
+ border-top: solid 4px #eee;
+ background: #69c;
+ margin: 20px -22px 0 -22px;
+ padding: 10px 20px;
+ width: 450px; /* False value for IE4-5.x/Win */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 410px; /* Actual value for conformant browsers */
+}
+
+div#footer a {
+ color: #fff;
+}
+/* --------- standalone --------- */
+body {
+ font: 11px/1.3 Tahoma, sans-serif;
+ margin: 0;
+ margin-left: 31px;
+ padding: 0;
+ background: #ddd url(bg.gif) repeat-y left;
+ }
+
+#container {
+ text-align: left;
+ background-color: #eee;
+ padding-bottom: 125px;
+ width: 735px;
+ height: 100%;
+ }
+
+p {
+ padding: 0 10px 0px 10px;
+ }
+
+/* sections */
+
+#intro {
+ text-align: left;
+ height: 223px;
+ padding: 130px 0 0 0;
+ margin: 0;
+ background: #ddd url(top.gif) repeat-x top;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 97px;
+ }
+
+#pageHeader {
+ height: 65px;
+ padding: 0;
+ margin: 0;
+ background: #fff url(mid.gif) no-repeat;
+ }
+
+#pageHeader h1 {
+ display: none;
+ }
+
+#pageHeader h2 {
+ display: none;
+ }
+
+#quickSummary {
+ height: 37px;
+ width: 735px;
+ padding-bottom: 4px;
+ margin: 0;
+ text-align: left;
+ background: #eee url(bottom.gif) no-repeat top;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ height: 28px;
+ }
+
+#quickSummary p {
+ display: none;
+ }
+
+#quickSummary p.p2 {
+ padding-left: 5px;
+ color: #555;
+ font: 9px Verdana, Arial, Sans-Serif;
+ font-weight: bold;
+ display: inline;
+ }
+
+#quickSummary p.p2 a, a {
+ color: #777;
+ text-decoration: none;
+ }
+
+#quickSummary p.p2 a:hover, a:hover {
+ color: #36c;
+ }
+
+#preamble {
+ text-align: justify;
+ position: absolute;
+ margin: 0 0 0 0;
+ width: 735px;
+ color: #555;
+ height: 130px;
+ overflow: auto;
+ padding: 0px 0px 0px 234px;
+ background: #ddd url(road.jpg) no-repeat left top;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 501px;
+ }
+
+#preamble h3 {
+ height: 20px;
+ padding: 0;
+ margin: 0;
+ background: #ddd url(1.gif) no-repeat left top;
+ }
+
+#preamble p.p3 {
+ padding: 0 10px 10px 10px;
+ }
+
+#supportingText {
+ position: absolute;
+ margin-top: 139px;
+ width: 510px;
+ color: #555;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 510px;
+ }
+
+#preamble h3 span, #supportingText h3 span, #explanation h3 span {
+ display: none;
+ }
+
+#explanation {
+ text-align: justify;
+ margin: 0 0 0 225px;
+ width: 510px;
+ color: #555;
+ background: #ddd url(r2.jpg) no-repeat left bottom;
+ padding-left: 234px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 276px;
+ }
+
+#explanation h3 {
+ height: 20px;
+ padding: 0;
+ margin: 0;
+ background: #ddd url(2.gif) no-repeat left top;
+ }
+
+#explanation p.p2 {
+ padding: 0 10px 10px 10px;
+ }
+
+#participation, #benefits, #requirements {
+ text-align: justify;
+ margin: 0 0 0 225px;
+ width: 510px;
+ color: #555;
+ padding: 10px;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 490px;
+ }
+
+#participation h3, #benefits h3, #requirements h3 {
+ display: block;
+ width: 300px;
+ height: 20px;
+ margin-left: 45px;
+ }
+
+#participation h3 {
+ background: transparent url(3.gif) no-repeat;
+ }
+
+#benefits h3 {
+ background: transparent url(4.gif) no-repeat;
+ }
+
+#requirements h3 {
+ background: transparent url(5.gif) no-repeat;
+ }
+
+#requirements, #benefits, #participation {
+ background: #ddd url(corner.gif) no-repeat top left;
+ margin-top: 15px;
+ }
+
+/* sidelink items */
+
+#linkList {
+ width: 225px;
+ position: absolute;
+ background-color: #ddd;
+ font: 10px Tahoma, sans-serif;
+ margin-top: 139px;
+ color: #aaa;
+ border-right: 9px solid #eee;
+ text-align: center;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ width: 216px;
+ }
+
+#lselect, #lfavorites, #larchives {
+ border-bottom: 9px solid #eee;
+ background: #ddd url(backc.gif) no-repeat bottom right;
+ }
+
+#lresources {
+ border-bottom: 9px solid #eee;
+ background: #ddd url(backc.gif) no-repeat bottom right;
+ }
+
+#lselect h3 {
+ background: #ddd url(selectd.gif) no-repeat;
+ padding: 0;
+ margin: 0;
+ height: 20px;
+ }
+
+#lselect h3 span, #lfavorites h3 span, #larchives h3 span, #lresources h3 span {
+ display: none;
+ }
+
+#lfavorites h3 {
+ background: #ddd url(selectf.gif) no-repeat;
+ padding: 0;
+ margin: 0;
+ height: 20px;
+ }
+
+#larchives h3 {
+ background: #ddd url(selecta.gif) no-repeat;
+ padding: 0;
+ margin: 0;
+ height: 20px;
+ }
+
+#lresources h3 {
+ background: #ddd url(selectr.gif) no-repeat;
+ padding: 0;
+ margin: 0;
+ height: 20px;
+ }
+
+#linkList ul {
+ list-style: none;
+ padding: 5px 0 5px 0;
+ margin: 0;
+ }
+
+#linkList li {
+ line-height: 2em;
+ display: block;
+ }
+
+#linkList li a {
+ margin: 0 2px 0 2px;
+ font-weight: bold;
+ padding: 3px;
+ border: 1px solid #ddd;
+ }
+
+#linkList li a:hover {
+ background: #eee url(llist.gif);
+ border: 1px solid #aaa;
+ }
+
+
+
+
+
+
+/* Footer */
+
+#footer {
+ padding: 15px;
+ }
+
+#footer a {
+ margin: 1px;
+ padding: 5px;
+ }
+
+#footer a:hover {
+ background-color: #ddd;
+ }
+
+/* And that's the end, let's do it again! */
+
+/* css Zen Garden submission 057 - 'This is Cereal' by Shaun Inman, http://www.shauninman.com/ */ +/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */ +/* All associated graphics copyright 2003, Shaun Inman */ +/* Added: November 4th, 2003 */ + +/* IMPORTANT */ +/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */ +/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */ +/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */ + + +/* Photography © Bradley Mason http://www.sxc.hu/browse.phtml?f=profile&l=bradleym */ + +#extraDiv3, +#extraDiv4, +#extraDiv5, +#extraDiv6 { display: none; } + +/* Warning message styles for browsers that don't support CSS attribute selectors... */ +#extraDiv1 { position: absolute; top: 112px; left: 292px; width: 340px; height: 166px; background: url(txt_upgrade.gif) no-repeat; z-index: 10; } +#container { padding: 296px 0 0 294px; z-index: 99; } +/* Clear the warning styles for those that do... */ +div[id="extraDiv1"] { display: none; } +div[id="container"] { padding: 226px 0 0 294px !important; } + +/* Spoon graphic and pull-quote */ +#extraDiv2 { position: absolute; top: 1200px; left: 0px; width: 229px; height: 580px; background: url(spoon_flake.png) no-repeat; z-index: 0; } +div[id="extraDiv2"] { top: 712px !important; } + +/* Coffee graphic */ +#extraDiv3 { display: block !important; position: relative; margin-left: 496px; height: 0; z-index: 0; } +#extraDiv3 span { + position: absolute; + bottom: -33px; + width: 100%; + height: 596px; + background: url(coffee.jpg) no-repeat; + } + +/* Small logo */ +div[id="extraDiv4"] { display: block !important; position: relative; margin-left: 64px; width: 168px; height: 0; z-index: 3; } +div[id="extraDiv4"]>span { + position: absolute; + bottom: -33px; + width: 100%; + height: 98px; + background: url(logo_small.gif) no-repeat; + } +/* div[id="extraDiv4"] span:active { background: url(logo_small_over.gif) no-repeat; } */ + + +/* Photo Credit */ +div[id="extraDiv5"] { display: block !important; position: relative; margin-left: 4px; height: 0; z-index: 0; } +div[id="extraDiv5"]>span { + position: absolute; + bottom: -33px; + width: 100%; + height: 336px; + background: url(txt_credit.gif) no-repeat; + } + +/* Quality text and SI logo */ +div[id="extraDiv6"] { + display: block !important; + position: absolute; + top: 476px; + left: 103px; + width: 146px; + height: 77px; + background: url(txt_quality.gif) no-repeat; + z-index: 0; + } + +body { + margin: 0; + padding: 0; + background: url(bg_header.jpg) no-repeat #FFF; + } + +#quickSummary, +#preamble, +#supportingText { width: 336px; z-index: 1; } + +p { + text-align: justify; + font-family: Georgia,"Times New Roman",Times,serif; + font-size: 11px; + line-height: 17px; + margin-top: 0; + color: #707070; + } +p acronym { font-style: italic; } +acronym { border-style: none; } + +p a, #footer a { color: #866F5B; text-decoration: none; border-bottom: 1px dotted #866F5B; } +p a:hover, #footer a:hover { color: #A51A0A; border-style: none; } +div[id="footer"]>a { border-style: none !important; } + +#preamble { margin-bottom: 2em; } +#preamble p.p2 { background: url(head_enlightenment.gif) no-repeat; padding-top: 2.4em; } +div[id="preamble"]>p.p2 { background: url(head_enlightenment.png) no-repeat !important; } + +#explanation, +#participation, +#benefits, +#requirements { padding-top: 1.8em; margin-bottom: 2em; } + + +@media tty { /* Mid pass to square away some IE 5 PC hinkyness. */ + i{content:"\";/*" "*/}} #explanation p.p1,#participation p.p1,#benefits p.p1,#requirements p.p1 { padding-top: 1.8em; } /*";} + }/* */ + +#explanation { background: url(head_explanation.gif) no-repeat; } +#participation { background: url(head_participation.gif) no-repeat; } +#benefits { background: url(head_benefits.gif) no-repeat; } +#requirements { position: relative; background: url(head_requirements.gif) no-repeat; z-index: 1; } + +#quickSummary { margin-bottom: 2em; } +div[id="quickSummary"] { margin-bottom: 0 !important; } +#quickSummary>p[class="p1"] { position: absolute; top: 230px; left: 108px; background: url(txt_demo.jpg) no-repeat; width: 143px; height: 0; padding-top: 57px; overflow: hidden; } +#quickSummary>p[class="p2"] { position: absolute; top: 328px; left: 105px; background: url(txt_download.gif) 5px 5px; background-repeat: no-repeat; width: 107px; height: 29px; z-index: 15; margin: 0; color: #FFF; font-size: 1px; padding-top: 36px; } +#quickSummary>p[class="p2"] a[href="zengarden-sample.html"] { position: absolute; top: 17px; left: 5px; width: 35px; height: 0px; padding-top:9px; overflow: hidden; } +#quickSummary>p[class="p2"] a[href="zengarden-sample.html"]:hover { background: url(button_html_over.gif) no-repeat; } +#quickSummary>p[class="p2"] a[href="zengarden-sample.css"] { position: absolute; top: 17px; left: 63px; width: 31px; height: 0px; padding-top:9px; overflow: hidden; } +#quickSummary>p[class="p2"] a[href="zengarden-sample.css"]:hover { background: url(button_css_over.gif) no-repeat; } +div[id="quickSummary"] a { border-style: none; } +/**/ + +/**/ +#lselect { position: absolute; top: 324px; left: 105px; } +#lresources { position: absolute; top: 714px; left: 105px; } +#larchives { position: absolute; top: 902px; left: 105px; } +#lfavorites { position: absolute; top: 1030px; left: 105px; } + +/**/ +div[id="lselect"] { top: 292px !important; left: 105px !important; background: url(button_select_design.gif) no-repeat; width: 149px; height: 37px; z-index: 300; } +div[id="lresources"] { top: 358px !important; left: 105px !important; background: url(button_resources.gif) no-repeat; width: 149px; height: 37px; z-index: 200; } +div[id="lfavorites"] { top: 443px !important; left: 105px !important; background: url(button_favorites.gif) no-repeat; width: 149px; height: 37px; z-index: 150; } +/**/ + +#lselect h3, +#lresources h3, +#larchives h3, +#lfavorites h3 { + position: absolute; top: -28px; left: 0px; + background: url(bg_menu_thin_top.gif) no-repeat; + width: 149px; height: 28px; line-height: 28px; + padding-top: 5px; + overflow: hidden; + margin: 0; + padding: 0 18px; + color: #333; + font-family: "Lucida Grande","Lucida Sans Unicode",geneva,arial,verdana,sans-serif; font-size: 9px; + } +/**/ +div[id="lselect"]>h3, +div[id="lresources"]>h3, +div[id="larchives"]>h3, +div[id="lfavorites"]>h3 { top: -1000px !important; left: -1000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; } + +#lselect:hover h3, +#lresources:hover h3, +#lfavorites:hover h3 { position: absolute; top: 5px !important; left: 5px !important; background: url(bg_menu_top.png) no-repeat; width: 203px !important; height: 0px !important; padding-top: 5px; margin: 0; } +/**/ + +#lselect ul, +#lresources ul, +#larchives ul, +#lfavorites ul { + background: url(bg_menu_thin.gif) left bottom no-repeat; + margin: 0; + padding: 0 0 5px; + list-style: none; + voice-family: "\"}\""; + voice-family:inherit; + width: 149px; + } + +/**/ +div[id="lselect"]>ul, +div[id="lresources"]>ul, +div[id="lfavorites"]>ul { position: absolute; top: -1000px; left: -1000px; width: 203px !important; background: url(bg_menu.png) left bottom no-repeat !important; } + +#lselect:hover ul, +#lresources:hover ul, +#lfavorites:hover ul { position: absolute; top: 10px; left: 5px; } +/**/ + + +#lselect li, +#lresources li, +#larchives li, +#lfavorites li { + font-size: 9px; + color: #8B8C8C; + background: url(bg_menu_separator_thin.gif) no-repeat; + padding: 8px 18px; + } + +@media tty { /* Mid pass to square away some IE 5 PC hinkyness. */ + i{content:"\";/*" "*/}} #lselect li,#lresources li,#larchives li,#lfavorites li { width: 149px; padding: 6px 18px; } /*";} + }/* */ + +/**/ +div[id="lselect"]>ul>li, +div[id="lresources"]>ul>li, +div[id="lfavorites"]>ul>li { background: url(bg_menu_separator.png) no-repeat !important; } + + +div[id="lselect"]>ul>li:first-child, +div[id="lresources"]>ul>li:first-child , +div[id="lfavorites"]>ul>li:first-child { padding-top: 5px; background: url(o.gif) no-repeat !important; } +#lselect li:hover, +#lresources li:hover, +#lfavorites li:hover { background: url(bg_menu_over.png) no-repeat !important; } + +div[id="larchives"] { position: absolute; top: 400px !important; left: 100px !important; background: url(well_design_archives.gif) 5px 0px no-repeat; width: 164px !important; height: 44px; z-index: 100; } +div[id="larchives"]>ul, div[id="larchives"]>ul>li { margin: 0; padding: 0; list-style: none; background: url(o.gif) no-repeat !important; } +#larchives a[accesskey="n"] { background: url(button_next.gif) no-repeat; position: absolute; top: 14px; left: 50px; width: 45px; height: 0px; padding-top: 21px; overflow: hidden; z-index: 1; } +#larchives a[accesskey="p"] { background: url(button_prev.gif) no-repeat; position: absolute; top: 14px; left: 7px; width: 44px; height: 0px; padding-top: 21px; overflow: hidden; z-index: 2; } +#larchives a[accesskey="w"] { background: url(button_view_all.gif) no-repeat; position: absolute; top: 14px; left: 99px; width: 53px; height: 0px; padding-top: 21px; overflow: hidden; } +#larchives a[accesskey="n"]:hover { background: url(button_next_over.gif) no-repeat; } +#larchives a[accesskey="p"]:hover { background: url(button_prev_over.gif) no-repeat; } +#larchives a[accesskey="w"]:hover { background: url(button_view_all_over.gif) no-repeat; } + +/**/ + +#lselect a, +#lfavorites a { display: block; } +#lselect a.c, +#lfavorites a.c { display:inline; font-size: 9px; text-transform: lowercase; } + +#linkList { font-family: "Lucida Grande","Lucida Sans Unicode",geneva,arial,verdana,sans-serif; font-size: 9px; } +#linkList a, +#linkList a:link, +#linkList a:visited { font-size: 10px; color: #444; text-decoration: none; } +#linkList a:hover { color: #A51A0A; } + +#linkList a.c, +#linkList a.c:link, +#linkList a.c:visited { color: #8B8C8C;} +#linkList a.c:hover { color: #A51A0A; } +/**/ + + +#footer { font-family: geneva,arial,verdana,sans-serif; font-size: 9px; } +#footer a { color: #866F5B; text-decoration: none; } +#footer a:hover { color: #A51A0A; } + +/**/ +div[id="footer"] { position: relative; top: -5px; left: -5px; width: 327px; height: 48px; background: url(txt_footer.gif) 5px 5px no-repeat; z-index: 1; } +/* xhtml */ +#footer a[href="http://validator.w3.org/check/referer"] { position: absolute; top: 17px; left: 105px; width: 33px; height: 0px; padding-top:9px; overflow: hidden; } +#footer a[href="http://validator.w3.org/check/referer"]:hover { background: url(button_xhtml_over.gif) no-repeat; } +/* css */ +#footer a[href="http://jigsaw.w3.org/css-validator/check/referer"] { position: absolute; top: 17px; left: 145px; width: 18px; height: 0px; padding-top:9px; overflow: hidden; } +#footer a[href="http://jigsaw.w3.org/css-validator/check/referer"]:hover { background: url(button_css_footer_over.gif) no-repeat; } +/* cc */ +#footer a[href="http://creativecommons.org/licenses/sa/1.0/"] { position: absolute; top: 17px; left: 170px; width: 13px; height: 0px; padding-top:9px; overflow: hidden; } +#footer a[href="http://creativecommons.org/licenses/sa/1.0/"]:hover { background: url(button_cc_over.gif) no-repeat; } +/* 508 */ +#footer a[title="Check the accessibility of this site according to U.S. Section 508"] { position: absolute; top: 17px; left: 189px; width: 15px; height: 0px; padding-top:9px; overflow: hidden; } +#footer a[title="Check the accessibility of this site according to U.S. Section 508"]:hover { background: url(button_508_over.gif) no-repeat; } +/* aaa */ +#footer a[title="Check the accessibility of this site according to WAI Content Accessibility Guidelines 1"] { position: absolute; top: 17px; left: 228px; width: 20px; height: 0px; padding-top:9px; overflow: hidden; } +#footer a[title="Check the accessibility of this site according to WAI Content Accessibility Guidelines 1"]:hover { background: url(button_aaa_over.gif) no-repeat; } + +/* Move this junk out of the way */ +#pageHeader, +#preamble h3, +#supportingText h3 { position: absolute; top: -1000px; left: -1000px; width: 1px; height: 1px; overflow: hidden; } +/* css Zen Garden submission 058 - 'Radio Zen' by Marc LA van den Heuvel, http://www.mlavdh.nl/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Marc LA van den Heuvel */
+/* Added: November 9th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+body {
+ font-family: georgia, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ background: url(schaal.jpg);
+ background-color: #F8F8EE;
+ background-repeat: no-repeat;
+ background-position: top;
+ background-attachment: fixed;
+ margin: 0px;
+ text-decoration: none;
+ }
+
+acronym {
+ border-bottom: none;
+ }
+
+#intro {
+ position: absolute;
+ width: 1590px;
+ font-style: italic;
+ line-height: normal;
+ font-variant: normal;
+ text-transform: capitalize;
+ z-index: 1;
+ }
+
+
+#pageHeader H1 {
+ position: absolute;
+ top: 278px;
+ left: 720px;
+ color: #E8E9CF;
+ font-size: 70px;
+ }
+
+
+#pageHeader H2 {
+ position: absolute;
+ top: 330px;
+ left: 1280px;
+ color: #E8E9CF;
+ font-size: 30px;
+ }
+
+
+
+#quickSummary {
+ position: absolute;
+ right: 0px;
+ text-align: left;
+ width: 165px;
+ height: 340px;
+ top: 95px;
+ padding-top: 40px;}
+
+#quickSummary P {
+ margin-top: 3px;
+ margin-bottom: 8px;
+ margin-left: 8px;
+ margin-right: 8px;
+ color: #555F44;
+ }
+
+#quickSummary a:link, #quickSummary a:visited {
+ color: #744646;
+ text-decoration: none;
+ border-bottom: 1px dashed #744646;
+ }
+
+#quickSummary a:hover, #quickSummary a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+#preamble {
+ position: absolute;
+ left: 10px;
+ text-align: right;
+ width: 165px;
+ top: 95px;
+ }
+
+#preamble P {
+ margin-top: 3px;
+ margin-bottom: 8px;
+ margin-left: 8px;
+ margin-right: 8px;
+ color: #555F44;
+ }
+
+#preamble h3 {
+ margin: 0px;
+ font-size: 14px;
+ font-family: Arial, Helvetica, sans-serif;
+ color: #555F44;
+ text-decoration: none;
+ font-style: normal;
+ font-weight: bold;
+ margin-left: 8px;
+ margin-right: 8px;
+ }
+
+#supportingText {
+ position: absolute;
+ width: 1230px;
+ padding-left: 185px;
+ padding-top: 95px;
+ text-align: justify;
+ background: url(naald.gif);
+ background-repeat: no-repeat;
+ background-position: top;
+ z-index: 3;
+ }
+
+#supportingText a:link, #supportingText a:visited {
+ color: #744646;
+ text-decoration: none;
+ border-bottom: 1px dashed #744646;
+ }
+
+#supportingText a:hover, #supportingText a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+
+#supportingText P {
+ margin-top: 3px;
+ margin-bottom: 8px;
+ margin-left: 8px;
+ margin-right: 8px;
+ color: #353638;
+ }
+
+#supportingText h3 {
+ margin: 0px;
+ font-family: Arial, Helvetica, sans-serif;
+ color: #422222;
+ text-decoration: none;
+ font-size: 8pt;
+ font-style: normal;
+ font-weight: bold;
+ margin-left: 3px;
+ margin-right: 8px;
+ background: url(klein.jpg);
+
+ }
+
+
+#explanation {
+ float: left;
+ width: 290px;
+ }
+
+#participation {
+ float: left;
+ width: 290px;
+ }
+
+#benefits {
+ float: left;
+ width: 150px;}
+
+#requirements {
+ float: left;
+ width: 500px;}
+
+
+#footer {
+ float: right;
+ padding-right: 50px;
+ top: 0px;
+ }
+
+#footer a:link, #footer a:visited {
+ color: #E8E9CF;
+ text-decoration: none;
+ border-bottom: 0px dashed #744646;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: bold;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+#footer a:hover, #footer a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+#linkList{
+ position: absolute;
+ padding-top: 480px;
+ text-align: justify;
+ z-index: 1;}
+
+#lselect{
+ position: absolute;
+ width: 1590px;
+ top: 46em;
+ text-align: left;
+ padding: 5px;
+ font-family: Arial, Helvetica, sans-serif;
+ background-color: #E8E9CF;
+ }
+
+#lselect ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#lselect h3 {
+ margin: 0px;
+ margin-right: 10px;
+ color: #555F44;
+ font-size: 8pt;
+ float: left;
+ font-weight: bold;
+ }
+
+#lselect li {
+ color:#000000;
+ list-style-type: none;
+ float: left;
+ border-left: 4px solid #F8F8EE;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+
+#lselect a:link, #lselect a:visited {
+ color: #744646;
+ text-decoration: none;
+ font-size: 8pt;
+ font-style: normal;
+ font-weight: bold;
+ }
+
+#lselect a:hover, #lselect a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+#lselect a.c, #lselect a:link.c , #lselect a:visited.c{
+ color: #422222;
+ font-weight: normal;
+ }
+
+#lselect a:hover.c, #lselect a:active.c {
+ display: inline;
+ }
+
+#larchives{
+ position: absolute;
+ padding-top: 490px;
+ text-align: justify;
+ }
+
+#larchives{
+ position: absolute;
+ width: 300px;
+ top: 49em;
+ left: 75px;
+ text-align: left;
+ padding: 5px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+#larchives ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#larchives h3 {
+ margin: 0px;
+ margin-right: 10px;
+ color: #555F44;
+ font-size: 9px;
+ float: left;
+ font-weight: normal;
+ }
+
+#larchives li {
+ color:#555F44;
+ list-style-type: none;
+ float: left;
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+#larchives a:link, #larchives a:visited {
+ color: #555F44;
+ text-decoration: none;
+ font-size: 9px;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+#larchives a:hover, #larchives a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+#larchives a.c, #larchives a:link.c , #larchivest a:visited.c{
+ color: #006633;
+ }
+
+#larchives a:hover.c, #larchives a:active.c {
+ display: inline;
+ }
+
+
+#lresources{
+ position: absolute;
+ width: 800px;
+ left: 400px;
+ top: 49em;
+ text-align: left;
+ padding: 5px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+#lresources ul {
+ margin: 0px;
+ padding: 0px;
+ }
+
+#lresources h3 {
+ margin: 0px;
+ margin-right: 10px;
+ color: #555F44;
+ font-size: 9px;
+ float: left;
+ font-weight: normal;
+ }
+
+#lresources li {
+ color:#555F44;
+ list-style-type: none;
+ float: left;
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+#lresources a:link, #lresources a:visited {
+ color: #555F44;
+ text-decoration: none;
+ font-size: 9px;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+#lresources a:hover, #lresources a:active {
+ color: #000000;
+ text-decoration: underline;
+ }
+
+#lresources a.c, #lresources a:link.c , #lresources a:visited.c{
+ color: 422222;
+ }
+
+#lresources a:hover.c, #lresources a:active.c {
+ display: inline;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#explanation h3 {
+ background: transparent url(sowhat.gif) no-repeat top left;
+ margin-top: 10px;
+ width: 250px;
+ height: 32px;
+ float: left;
+ }
+#explanation h3 span {
+ display:none
+ }
+
+#participation h3 {
+ background: transparent url(part.gif) no-repeat top left;
+ margin-top: 10px;
+ width: 250px;
+ height: 32px;
+ float: left;
+ }
+
+#participation h3 span {
+ display:none
+ }
+
+#benefits h3 {
+ background: transparent url(ben.gif) no-repeat top left;
+ margin-top: 10px;
+ width: 120px;
+ height: 32px;
+ float: left;
+ }
+
+#benefits h3 span {
+ display:none
+ }
+
+#requirements h3 {
+ background: transparent url(rec.gif) no-repeat top left;
+ margin-top: 10px;
+ width: 470px;
+ height: 32px;
+ float: left;
+ }
+
+#requirements h3 span {
+ display:none
+ }
+
+#preamble h3 {
+ background: transparent url(road.gif) no-repeat top right;
+ margin-top: 10px;
+ width: 140px;
+ height: 32px;
+ float: left;
+ }
+
+#preamble h3 span {
+ display:none
+ }
+
+#pageHeader h1 {
+ background: transparent url(zen.gif) no-repeat top right;
+ margin-top: 10px;
+ width: 600px;
+ height: 180px;
+ float: left;
+ }
+
+#pageHeader h1 span {
+ display:none
+ }
+
+#pageHeader h2 {
+ background: transparent url(tune.jpg) no-repeat top right;
+ margin: 0px;
+ width: 321px;
+ height: 194px;
+ float: left;
+ }
+
+#pageHeader h2 span {
+ display:none
+ }
+
+#extraDiv1 {
+ position: absolute;
+ width: 1600px;
+ height: 400px;
+ top: 83px;
+ text-align: justify;
+ background: url(bgrnd.gif);
+ background-position: top;
+ z-index: 0;
+ }
+
+#extraDiv2 {
+ position: absolute;
+ width: 321px;
+ height: 194px;
+ left: 160px;
+ top: 330px;
+ text-align: justify;
+ background: url(radio.jpg);
+ background-position: top;
+ z-index: 0;
+ }
+/* css Zen Garden submission 059 - 'Dune Temple' by Greg Reimer, http://www.drpeterjones.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Greg Reimer */
+/* Added: November 9th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+
+/*
+For overview, the method of this sheet
+is to superimpose textual elements on
+top of fancy background graphics via
+CSS positioning. No FIR was used in the
+making of this sheet.
+*/
+
+body{
+margin:0px;
+padding:0px;
+background:#d18f00 url(decosides.gif) no-repeat 50% 0%;
+color:#946500;
+font-family:arial,helvetica,sans-serif;
+font-size:12px;
+text-align:center; /* so the container div centers itself in IE5/win */
+}
+a:link{
+color:#EFD396;
+text-decoration:none;
+}
+a:visited{
+color:#EFD396;
+text-decoration:none;
+}
+a:hover{
+color:#EFD396;
+text-decoration:underline;
+}
+a:active{
+color:#EFD396;
+text-decoration:none;
+}
+
+acronym{
+border:none;
+cursor:help;
+font-family:georgia,serif;
+}
+
+div#container{
+width:732px;
+margin:auto; /* ignored by IE5/win */
+background:url(main_top.png) no-repeat 0% 0%;
+position:relative;
+}
+
+div#pageHeader{
+text-align:center;
+margin-bottom:156px;
+height:13px;
+}
+
+div#pageHeader h1,div#pageHeader h2{
+text-transform:lowercase;
+margin:0px;
+font-family:arial,helvetica,sans-serif; /* being verbose because font shorthand caused IE5/win to botch */
+font-size:10px;
+font-weight:normal;
+letter-spacing:8px;
+display:inline;
+}
+
+div#pageHeader h1:after{
+content:":"; /* ignored by IE */
+}
+
+div#quickSummary,div#preamble,div#explanation,div#participation,div#benefits,div#requirements,div#footer{
+color:#CFA343;
+padding:0px 325px 0px 27px;
+text-align:justify;
+}
+
+div#container p,div#container h3{
+margin:10px 0px;
+}
+
+div#container div#intro h3,div#container div#supportingText h3{
+color:#EFD396;
+font:bold 12px verdana,sans-serif;
+}
+
+div#container div#intro h3{
+padding:2px 5px 3px 5px;
+background:url(headerbg.png) no-repeat right top;
+}
+
+html>body div#container div#supportingText h3{ /* IE/win bug workaround */
+padding:2px 5px 3px 5px;
+background:url(headerbg.png) no-repeat right top;
+}
+
+div#quickSummary{
+margin:0px 325px 0px 27px;
+padding:0px 38px;
+text-align:center;
+color:#E8B74B;
+background:url(sides.png) no-repeat 50% 0%;
+min-height:82px;
+}
+
+div#quickSummary p{
+margin: 0px 0px 10px 0px;
+}
+
+div#quickSummary p.p1{
+font-weight:bold;
+}
+
+div#quickSummary p.p2{
+text-transform:lowercase;
+margin-bottom:0px;
+padding-bottom:10px;
+}
+
+div#quickSummary p:before{
+content:"::: ";
+font-family:verdana,sans-serif;
+color:#B68F3B;
+font-weight:bold;
+}
+
+div#quickSummary p:after{
+content:" :::";
+font-family:verdana,sans-serif;
+color:#B68F3B;
+font-weight:bold;
+}
+
+div#preamble{
+padding:0px;
+margin:0px 310px 0px 27px;
+height:259px;
+overflow:auto;
+voice-family: "\"}\"";
+voice-family: inherit;
+margin-right:325px;
+}
+
+html>body div#preamble{
+margin-right:325px;
+}
+
+div#supportingText{
+background:url(main_middle.png) repeat-y;
+}
+
+div#footer{
+padding-top:50px;
+padding-bottom:320px;
+background:#d18f00 url(main_bottom.png) no-repeat;
+text-align:center;
+}
+
+div#footer a{font:bold 12px verdana,sans-serif;}
+div#footer a:after,div#footer a:before{color:#b68f3b;content:":";}
+
+div#lselect{
+position:absolute;
+left: 424px;
+top: 155px;
+width:293px;
+}
+
+div#lselect h3{
+position:absolute;
+left:70px;
+top:12px;
+color:#7A5300;
+background:transparent;
+font-size:14px;
+height:14px;
+margin:0px;
+}
+
+div#lselect ul{
+list-style:none;
+padding: 0px 0px 71px 0px;
+margin: 59px 0px 0px 0px;
+background:url(list_bottom.png) no-repeat 100% 100%;
+voice-family: "\"}\"";
+voice-family: inherit;
+padding-bottom:74px;
+}
+
+html>body div#lselect ul{
+padding-bottom:74px;
+}
+
+div#lselect ul li{
+text-align:right;
+background:url(listitem.png) no-repeat 100% 0%;
+color:#fc0;
+font:normal 9px arial,helvetica,sans-serif;
+display:block;
+height:25px;
+padding: 6px 5px 5px 5px;
+margin-top:2px;
+voice-family: "\"}\"";
+voice-family: inherit;
+height:14px;
+padding: 6px 5px 5px 5px;
+margin-top:5px;
+}
+html>body div#lselect ul li{
+height:14px;
+padding: 6px 5px 5px 5px;
+margin-top:5px;
+}
+
+div#lselect ul a:link{
+color:#EFD396;
+text-decoration:underline;
+}
+div#lselect ul a:visited{
+color:#C89D40;
+text-decoration:underline;
+}
+div#lselect ul a:hover{
+color:#EFD396;
+text-decoration:none;
+}
+div#lselect ul a:active{
+color:#ff0;
+text-decoration:underline;
+}
+
+div#larchives{
+text-align:left;
+position:absolute;
+left:438px;
+top:534px;
+width:279px;
+}
+
+div#lresources{
+text-align:left;
+position:absolute;
+left:438px;
+top:658px;
+width:279px;
+}
+
+div#lfavorites{
+text-align:left;
+position:absolute;
+left:438px;
+top:843px;
+width:279px;
+z-index:100;
+}
+
+div#larchives h3,div#lresources h3,div#lfavorites h3{
+margin:0px;
+text-align:right;
+padding:0px 7px 17px 0px;
+background:url(list_top.png) no-repeat 100% 100%;
+color:#cfa343;
+font-size:14px;
+}
+
+div#larchives ul,div#lresources ul,div#lfavorites ul{
+list-style:none;
+padding:0px;
+margin:0px;
+padding-bottom:8px;
+background:url(list_bottom2.png) no-repeat 100% 100%;
+}
+
+div#larchives li,div#lresources li,div#lfavorites li{
+display:block;
+text-align:right;
+background:url(listitem.png) no-repeat 100% 0%;
+padding: 5px 9px 5px 5px;
+margin-bottom:2px;
+color:#fc0;
+font:bold 11px arial,helvetica,sans-serif;
+voice-family: "\"}\"";
+voice-family: inherit;
+margin:0px 0px 5px 0px;
+}
+
+html>body div#larchives li,html>body div#lresources li,html>body div#lfavorites li{
+height:15px;
+margin-bottom:5px;
+margin-top:0px;
+}
+
+div#larchives ul a:link,div#lresources ul a:link,div#lfavorites ul a:link{
+color:#EFD396;
+text-decoration:underline;
+}
+div#larchives ul a:visited,div#lresources ul a:visited,div#lfavorites ul a:visited{
+color:#C89D40;
+text-decoration:underline;
+}
+div#larchives ul a:hover,div#lresources ul a:hover,div#lfavorites ul a:hover{
+color:#EFD396;
+text-decoration:none;
+}
+div#larchives ul a:active,div#lresources ul a:active,div#lfavorites ul a:active{
+color:#ff0;
+text-decoration:underline;
+}
+
+div#lfavorites ul{
+padding-bottom:69px;
+background:url(list_bottom.png) no-repeat 100% 100%;
+}/* css Zen Garden submission 060 - 'Extreme Limits' by Richard Chatfield, http://www.engagecommerce.com/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Richard Chatfield */
+/* Added: November 14th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+/* basic elements */
+body {
+ font: 11px arial, verdana, sans-serif;
+ color: #fff;
+ background: #000 url(contentbg.jpg) repeat-y;
+ margin: 0px;
+}
+p {
+ font: 11pxt/16pt arial, verdana, sans-serif ;
+ margin-top: 0px;
+ text-align: justify;
+ }
+h3 {
+ font: italic 16px arial, verdana, sans-serif;
+ letter-spacing: 1px;
+ margin: 15px 0px 0px 0px;
+ color: #FFFF00;
+ font-weight: bolder;
+}
+
+ h5 {
+ font: italic 14px sans-serif, arial, verdana;
+ letter-spacing: 1px;
+ margin: 15px 0px 0px 10px;
+ color: #fff;
+ font-weight: bolder;
+}
+
+a:link {
+ font-weight: bold;
+ text-decoration: none;
+ color: #FFFF00;
+ }
+a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #FFFF00;
+ }
+a:hover, a:active {
+ text-decoration: underline;
+ color: #FFFF00;
+ }
+
+
+/* specific divs */
+#container {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ width: 780px;
+
+ }
+
+#intro {
+
+
+
+ }
+
+#pageHeader {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+
+/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
+#pageHeader h1 {
+ background: url(topbg.jpg) no-repeat top left;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ width: 780px;
+ height: 255px;
+ }
+#pageHeader h1 span {
+ display: none;
+
+ }
+#pageHeader h2 {
+ background: url(zengardentitle.gif) no-repeat top left;
+ margin-top: -74px;
+ margin-left: 254px;
+ width: 393px;
+ height: 45px;
+
+ }
+#pageHeader h2 span {
+ display:none;
+ }
+
+#quickSummary {
+ clear:both;
+ margin: -78px 0px 0px 5px;
+ width: 160px;
+
+ }
+#quickSummary p {
+ width: 240px;
+ font: 10px;
+ text-align:center;
+ line-height: 12px;
+ }
+
+#preamble {
+ background: url(road2enlinghtenbg.jpg) no-repeat;
+ margin: 18px 5px 5px 3px;
+ width: 249px;
+ height: 500px;
+ float: left;
+
+ }
+
+#preamble h3 {
+ margin: 20px 10px 0px 15px;
+ width: 200px;
+}
+
+#preamble p {
+ margin: 10px 10px 0px 15px;
+ width: 210px;
+}
+
+
+
+#supportingText {
+ margin: 25px 145px 0px 255px;
+ text-align: left;
+ width: 370px;
+}
+
+#explanation p.p1 {
+ margin-right: 140px;
+ text-align: left;
+}
+#explanation p.p2 {
+ margin-right: 20px;
+ text-align: left;
+}
+
+
+
+
+#footer {
+ position: absolute;
+ top: 162px;
+ left: 275px;
+ width: 345px;
+ clear: both;
+ }
+#footer a:link, #footer a:visited {
+ margin: 0px 40px 0px 0px;
+ }
+
+#linkList {
+ background: url(road2enlinghtenbg.jpg) no-repeat;
+ position: absolute;
+ top: 580px;
+ text-align: left;
+ margin: 18px 5px 5px 5px;
+ width: 249px;
+ padding: 5px 0px 0px 10px;
+ }
+#linkList2 {
+ font: 10px verdana;
+ width: 226px;
+ }
+#linkList h3.select {
+ height: 30px;
+ }
+#linkList h3.select span {
+ font: 16px arial, verdana, sans-serif;
+ letter-spacing: 1px;
+ font-weight: bolder;
+ color: #CCD8F8;
+ text-decoration: underline;
+}
+#linkList h3.favorites {
+ height: 30px;
+ }
+#linkList h3.favorites span {
+ font-style: normal;
+ text-decoration : underline;
+ color: #CCD8F8;
+ }
+#linkList h3.archives {
+ height: 30px;
+ }
+#linkList h3.archives span {
+ font-style: normal;
+ text-decoration : underline;
+ color: #CCD8F8;
+ }
+#linkList h3.resources {
+ height: 30px;
+ }
+#linkList h3.resources span {
+ font-style: normal;
+ text-decoration : underline;
+ color: #CCD8F8;
+ }
+
+
+#linkList ul {
+ margin: 0px;
+ padding: 0px;
+ }
+#linkList li {
+ list-style-type: none;
+ background: transparent url(cr1.gif) no-repeat top center;
+ display: block;
+ margin-bottom: 2px;
+ }
+#linkList li a:link {
+ color: #10184A;
+ }
+#linkList li a:hover {
+ color: #FFFF00;
+ }
+#linkList li a:visited {
+ color: #10184A;
+ }
+
+
+
+#extraDiv1 {
+ position: absolute;
+ top: 10px;
+ left: 490px;
+ background: url(guyflying.gif) no-repeat;
+ width: 285px;
+ height: 483px;
+ }
+
+#extraDiv2 {
+ position: absolute;
+ top: 1000px;
+ left: 0px;
+ background: url(flyerdude.jpg) no-repeat;
+ width: 255px;
+ height: 339px;
+ }
+
+
+ /* css Zen Garden submission 061 - 'Sky' by Stefan Petre, http://www.eyecon.ro/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Stefan Petre */
+/* Added: November 14th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ font: 10px Arial, Helvetica, sans-serif;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+ background-position : center;
+ background-image : url(page_fill.jpg) ;
+ background-repeat : repeat-y;
+}
+
+a:link {
+ color: #00f;
+ }
+a:visited {
+ color: #99f;
+ }
+a:hover, a:active {
+text-decoration: none;
+ }
+
+acronym {
+ border-bottom: 1px dotted #eee;
+ cursor : help;
+}
+
+#container {
+ width: 700px;
+ margin: 0px auto;
+ text-align : left;
+ background-image : url(right_fill.jpg);
+ background-repeat : repeat-y;
+ clear : both;
+ background-color : #ff;
+}
+
+#intro {
+ width: 700px;
+ height: 246px;
+ overflow: hidden;
+ background-image : url(header_intro.jpg);
+ background-position : bottom;
+ background-repeat : no-repeat;
+ text-align : right;
+ color : #fff;
+ clear : both;
+}
+#pageHeader {
+ width: 700px;
+ height : 36px;
+ overflow : hidden;
+ background-image : url(header_title.jpg);
+}
+
+
+#pageHeader h1 {
+ display : none;
+}
+
+#pageHeader h2 {
+ display : none;
+}
+
+#quickSummary {
+ float: right;
+ width: 400px;
+ margin : 0px 3px;
+ height: 40px;
+ overflow: auto;
+}
+
+#quickSummary p {
+ margin: 0px;
+}
+
+#quickSummary a{
+ color: #eee;
+}
+
+#preamble {
+ float: left;
+ width: 400px;
+ margin : 0px 3px;
+ text-align : left;
+ height: 142px;
+ overflow: auto;
+}
+
+#preamble p {
+ margin: 0px;
+}
+
+#preamble h3{
+ margin: 8px 0px;
+ font-size: 18px;
+}
+#supportingText {
+ width : 440px;
+ text-align : left;
+ float : right;
+}
+
+#linkList {
+ background-image : url(right_fill.jpg);
+ width : 250px;
+ text-align : left;
+ background-position : left;
+ min-height : 1140px;
+ padding-bottom: 20px;
+}
+
+#linkList2 {
+ background-image : url(right_start.jpg);
+ background-position : top;
+ background-repeat : no-repeat;
+ padding-top: 20px;
+}
+
+
+#lselect h3{
+ background-image : url(label_select.jpg);
+ background-repeat : no-repeat;
+ margin : 4px 0px 4px 20px;
+ height : 16px;
+}
+
+#lfavorites h3{
+ background-image : url(label_favorites.jpg);
+ background-repeat : no-repeat;
+ margin : 4px 0px 4px 20px;
+ height : 16px;
+}
+
+#larchives h3{
+ background-image : url(label_archives.jpg);
+ background-repeat : no-repeat;
+ margin : 4px 0px 4px 20px;
+ height : 16px;
+}
+
+#lresources h3{
+ background-image : url(label_resources.jpg);
+ background-repeat : no-repeat;
+ margin : 4px 0px 4px 20px;
+ height : 16px;
+}
+
+
+#linkList2 h3 span{
+ display : none;
+}
+
+#linkList2 ul{
+ list-style-type : none;
+ margin-bottom: 30px;
+}
+
+#linkList2 li{
+ margin: 4px;
+}
+
+#lselect a{
+ display : block;
+ color: #ffd;
+ font-size: 13px;
+}
+#linkList2 a{
+ color: #ffd;
+ font-size: 13px;
+}
+
+#linkList2 a.c{
+ display : inline;
+ font-size: 11px;
+ color: #ddd;
+}
+
+#explanation h3{
+ background-image : url(label_about.jpg);
+}
+
+#participation h3{
+ background-image : url(label_participation.jpg);
+}
+
+#benefits h3{
+ background-image : url(label_benefits.jpg);
+}
+#requirements h3{
+ background-image : url(label_requirements.jpg);
+}
+
+#supportingText h3 span{
+ display : none;
+}
+#supportingText h3 {
+ margin: 0px;
+ background-repeat : no-repeat;
+ height : 37px;
+ width : 237px;
+ background-position : left;
+}
+
+#supportingText p{
+ margin: 10px 6px 6px 70px;
+ text-align : justify;
+}
+
+#extraDiv1{
+ clear: both;
+}
+
+#explanation,
+#participation ,
+#benefits,
+#requirements
+{
+ margin-bottom: 20px;
+ padding-bottom: 20px;
+ background-image : url(paragraf_back.jpg);
+ background-position: bottom;
+ background-repeat: no-repeat;
+}
+
+#footer {
+ text-align: center;
+}
+
+#footer a:link, #footer a:visited {
+ margin-right: 20px;
+}/* css Zen Garden submission 062 - 'Gemination' by Egor Kloos, http://www.dutchcelt.nl/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Egor Kloos */
+/* Added: November 14th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+
+
+/* Internet Explorer */
+
+/* basic elements */
+body { margin: 0 0 0 0; text-align: center; background: #600 none; }
+p { font: normal 11px/12px arial, sans-serif; }
+ul, li { font: bold 11px/19px arial, sans-serif; list-style-type: none; }
+h3 { margin: 0; padding: 0; font: bold 10px/10px arial, sans-serif;}
+a:link { color: #f90; }
+a:visited { color: #f90; }
+a:hover,
+a:active { color: #fff; }
+
+/* specific divs */
+#container { position: relative; margin: 0 auto 0 auto; border-right: 3px solid #fff; border-left: 3px solid #fff; padding: 0 20px 0 20px; width: 706px; background: url(contentback.gif); voice-family: "\"}\""; voice-family:inherit; width: 666px; }
+html>body #container { width:666px; }
+#intro { margin: 0; padding: 0; width: 660px; height: 80px; background: transparent url(introkop.gif) no-repeat right top; }
+#pageHeader h1 { margin: 0; padding: 0; width: 660px; height: 80px; background: transparent url(ietitle.gif) no-repeat left top; }
+#pageHeader h1 span { display:none; }
+#pageHeader h2 span { display:none; }
+#quickSummary { position: absolute; top: 80px; left: 380px; margin: 0 0 20px 0; padding: 275px 0 0 0; width: 300px; background: transparent url(boxmodel.jpg) no-repeat top left; }
+#quickSummary p { margin: 0; padding: 0 0 10px 0; color: #D9BC91; font: bold 12px/15px arial; text-align: left; background: transparent; }
+#preamble { position: absolute; top: 80px; left: 20px; display: block; margin: 0; padding: 0 0 0 0; width: 333px; height: 258px; background: #513125 url(iebulb.jpg) no-repeat top left; }
+#preamble p { margin: 0; padding: 0 20px 8px 20px; color: #fff; font: normal 11px/15px Georgia, serif; }
+#preamble h3 { margin: 0; border-top: 5px solid #3D2117; padding: 0; width: 333px; height: 40px; background: transparent url(ietheroad.gif) no-repeat top center; }
+#preamble h3 span { display:none; }
+#supportingText { float: left; margin: 245px 0 0 0; border-top: 5px solid #3D2117; padding: 0 0 30px 0; width: 333px; text-align: left; background: #fff; }
+/* commented backslash hack v2 \*/
+#supportingText { float: left; margin: 260px 0 0 0; border-top: 5px solid #3D2117; padding: 0 0 30px 0; width: 333px; text-align: left; background: #fff; }
+/* end hack */
+#supportingText p { clear: right; padding: 0 20px 0 20px; font: normal 12px/15px arial, sans-serif; }
+#supportingText a:link,
+#supportingText a:visited { color: #900; }
+#supportingText a:hover,
+#supportingText a:active { color: #30c; }
+#explanation h3 { margin: 0 0 0 20px; padding: 0; width: 280px; height: 40px; background: transparent url(iezentext1.gif) no-repeat bottom left; }
+#explanation h3 span { display: none; }
+#explanation p.p1 { font: bold 12px/15px arial, sans-serif; }
+#participation h3 { margin: 0 0 0 20px; width: 290px; height: 25px; background: transparent url(iezentext2.gif) no-repeat left top; }
+#participation h3 span { display: none; }
+#benefits h3 { margin: 0 0 0 20px; width: 290px; height: 25px; background: transparent url(iezentext3.gif) no-repeat left top; }
+#benefits h3 span { display: none; }
+#requirements h3 { margin: 0 0 0 20px; width: 290px; height: 25px; background: transparent url(iezentext4.gif) no-repeat left top; }
+#requirements h3 span { display: none; }
+#footer { border-top: 1px dotted #444; padding: 15px 0 30px 0; text-align: center; }
+#footer a:link,
+#footer a:visited { font: bold 12px/15px Georgia, serif; color: #600; background: transparent; }
+#linkList { clear: both; }
+#linkList2 { position: absolute; top: 450px; left: 380px; width: 300px; text-align: left; }
+#lselect h3.select { padding: 0 0 0 0; width: 280px; height: 40px; background: transparent url(ienavtext1.gif) no-repeat left top; }
+#lselect h3 span { display: none; }
+#larchives h3.archives { padding: 0 0 0 0; width: 280px; height: 40px; background: transparent url(ienavtext2.gif) no-repeat left top; }
+#larchives h3 span { display: none; }
+#lresources h3.resources { padding: 0 0 0 0; width: 280px; height: 40px; background: transparent url(ienavtext3.gif) no-repeat left top; }
+#lresources h3 span { display: none; }
+#lselect ul { margin: 0; padding: 0 0 60px 0; }
+#larchives { margin: 0; padding: 180px 0 0 0; width: 300px; vertical-align: bottom; background: transparent url(ieboxes.gif) no-repeat right top; }
+#larchives ul { margin: 0; padding: 0 0 30px 0; }
+#lresources ul { margin: 0; padding: 0;}
+#lselect li a { display: inline; }
+#linkList li a:link { color: #f90; }
+#linkList li a:visited { color: #f90; }
+#lselect li a.c { display: inline; }
+#lselect li a.c:link { color: #fff; }
+#lselect li a.c:visited { color: #fff; }
+#linkList li a:hover,
+#linkList li a:active { color: #6CF; }
+#lselect li a.c:hover,
+#linkList li a.c:active { color: #6CF; }
+#extraDiv1 { }
+
+/* Mozilla - Safari - Opera */
+
+/* basic elements */
+/* Background pattern design by Travis Beckham. www.squidfingers.com */
+body[id=css-zen-garden] { margin: 100px 0 0 0; padding: 0; text-align: center; background: transparent url(squidback.gif); }
+body[id=css-zen-garden] p { font: normal 11px/12px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] ul,
+body[id=css-zen-garden] li { font: bold 9px/10px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; list-style-type: none; color: #fff; background: transparent; }
+body[id=css-zen-garden] h3 { margin: 0; padding: 0; font: bold 13px/15px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] a:link { color: #f90; }
+body[id=css-zen-garden] a:visited { color: #f90; }
+body[id=css-zen-garden] a:hover,
+body[id=css-zen-garden] a:active { color: #fff; }
+
+/* specific divs */
+body[id=css-zen-garden] #container { position: relative; margin: 0 0 0 0; border-top: 5px solid #fff; border-right: 0; border-bottom: 5px solid #fff; border-left: 0; padding: 0 0 0 0; width: 100%; height: 350px; background: url(longgarden.gif) repeat-x center right; }
+body[id=css-zen-garden] #intro { position: absolute; top: 0; left: 0; float: none; margin: 0; width: 100%; height: 350px; background: none; }
+body[id=css-zen-garden] #pageHeader { position: absolute; top: -103px; left: 0; margin: 0;}
+body[id=css-zen-garden] #pageHeader h1 { background: transparent url(zentitle.png) no-repeat top left; margin-top: 20px; width: 470px; height: 90px; float: left; }
+body[id=css-zen-garden] #pageHeader h1 span { display: none; }
+body[id=css-zen-garden] #pageHeader h2 span { display: none; }
+body[id=css-zen-garden] #quickSummary { position: absolute; top: 370px; left: 0; padding: 0; width: 100%; height: 100px; background: transparent url(starlogo.png) no-repeat bottom center; }
+body[id=css-zen-garden] #quickSummary p { margin: 0; padding: 0 0 0 20px; color: #D9BC91; font: normal 11px/14px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; text-align: left; background: transparent; }
+body[id=css-zen-garden] #preamble { position: absolute; top: 30px; left: 20px; display: block; margin: 0; border: 1px dotted #fff; padding: 0;width: 196px; height: 290px; background: transparent url(blk35.png) repeat; overflow: hidden; }
+body[id=css-zen-garden] #preamble p { margin: 0; padding: 0px 10px 5px 10px; color: #fff; font: normal 10px/13px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] #preamble h3 { border: 0; width: 196px; height: 40px; background: transparent url(theroad.png) no-repeat top left; }
+body[id=css-zen-garden] #preamble h3 span { display: none; }
+body[id=css-zen-garden] #supportingText { position: absolute; top: 0; left: 465px; margin: 0; border: 0; padding: 0 20px 30px 20px; width: 325px; height: 320px; text-align: left; background: transparent url(maintext.png) repeat-y left top; overflow: auto; }
+body[id=css-zen-garden] #supportingText p { padding: 0; font: normal 12px/15px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] #supportingText a:link,
+body[id=css-zen-garden] #supportingText a:visited { color: #900; }
+body[id=css-zen-garden] #supportingText a:hover,
+body[id=css-zen-garden] #supportingText a:active { color: #30c; }
+body[id=css-zen-garden] #explanation h3 { float: left; margin: 0; padding: 0 0 5px 0; width: 300px; height: 25px; background: transparent url(zentext1.png) no-repeat left top; }
+body[id=css-zen-garden] #explanation h3 span { display: none; }
+body[id=css-zen-garden] #explanation p.p1 { font: bold 12px/15px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] #participation h3 { float: left; margin: 0; width: 300px; height: 25px; background: transparent url(zentext2.png) no-repeat top left; }
+body[id=css-zen-garden] #participation h3 span { display: none; }
+body[id=css-zen-garden] #benefits h3 { float: left; margin: 0; width: 300px; height: 25px; background: transparent url(zentext3.png) no-repeat top left; }
+body[id=css-zen-garden] #benefits h3 span { display: none; }
+body[id=css-zen-garden] #requirements h3 { float: left; margin: 0; width: 300px; height: 25px; background: transparent url(zentext4.png) no-repeat top left; }
+body[id=css-zen-garden] #requirements h3 span { display:none; }
+body[id=css-zen-garden] #footer { border-top: 1px dotted #444; padding: 15px 0 30px 0; text-align: center; }
+body[id=css-zen-garden] #footer a:link,
+body[id=css-zen-garden] #footer a:visited { margin-right: 20px; }
+body[id=css-zen-garden] #linkList { position: absolute; top: 0; left: 830px; width: 150px; height: 350px; text-align: left; overflow: hidden; }
+body[id=css-zen-garden] #linkList2 { position: absolute; top: 0; left: 0px; width: 150px; height: 350px; }
+body[id=css-zen-garden] #lselect { position: absolute; top: 0; left: 0; width: 150px; height: 126px; z-index: 300; }
+body[id=css-zen-garden] #lselect ul { position: absolute; top: 0; left: 0px; margin: 0; padding: 10px 0 12px 0; width: 135px; height: 328px; background: transparent url(grass.jpg) left top; }
+body[id=css-zen-garden] #lselect li { margin: 0; padding: 0 10px 10px 10px; }
+body[id=css-zen-garden] #larchives { position: absolute; top: 131px; left: 0; padding: 0; width: 150px; height: 72px; background: none; z-index: 200; }
+body[id=css-zen-garden] #larchives ul { position: absolute; top: -131px; left: 0px; margin: 0; padding: 10px 0 12px 0; width: 135px; height: 328px; background: transparent url(grass.jpg) left top; }
+body[id=css-zen-garden] #larchives li { margin: 0; padding: 0 10px 8px 10px; }
+body[id=css-zen-garden] #lresources { position: absolute; top: 208px; left: 0; height: 92px; z-index: 100; }
+body[id=css-zen-garden] #lresources ul { position: absolute; top: -208px; left: 0px; margin: 0; padding: 10px 0 12px 0; width: 135px; height: 328px; background: transparent url(grass.jpg) left top; }
+body[id=css-zen-garden] #lresources li { margin: 0; padding: 0 10px 8px 10px; }
+body[id=css-zen-garden] #lselect h3.select { padding: 0 0 0 0; width: 150px; height: 126px; background: transparent url(zentab1.png) no-repeat 135px 0px; }
+body[id=css-zen-garden] #lselect h3 span { display: none; }
+body[id=css-zen-garden] #larchives h3.archives { padding: 0 0 0 0; width: 150px; height: 72px; background: transparent url(zentab2.png) no-repeat 135px 0px; }
+body[id=css-zen-garden] #larchives h3 span { display: none; }
+body[id=css-zen-garden] #lresources h3.resources { padding: 0 0 0 0; width: 150px; height: 92px; background: transparent url(zentab3.png) no-repeat 135px 0px; }
+body[id=css-zen-garden] #lresources h3 span { display: none; }
+body[id=css-zen-garden] #lselect:hover,
+body[id=css-zen-garden] #lselect h3:hover { background: transparent url(zentab1.png) no-repeat 135px -126px; z-index: 300; }
+body[id=css-zen-garden] #larchives:hover,
+body[id=css-zen-garden] #larchives h3:hover { background: transparent url(zentab2.png) no-repeat 135px -72px; z-index: 300; }
+body[id=css-zen-garden] #lresources:hover,
+body[id=css-zen-garden] #lresources h3:hover { background: transparent url(zentab3.png) no-repeat 135px -92px; z-index: 300; }
+body[id=css-zen-garden] #linkList2 li>a { font: bold 11px/13px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif;}
+body[id=css-zen-garden] #lselect li>a { display:block; padding: 0 0 2px 0; font: bold 11px/13px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif;}
+body[id=css-zen-garden] #lselect li>a.c { display:inline; font: bold 9px/10px "Lucida Grande","Lucida Sans Unicode", helvetica, arial, sans-serif; }
+body[id=css-zen-garden] #lselect li>a.c:link { color: #fff; }
+body[id=css-zen-garden] #lselect li>a.c:visited { color: #fff; }
+body[id=css-zen-garden] #lselect li>a.c:hover,
+body[id=css-zen-garden] #lselect li>a.c:active { color: #6CF; }
+body[id=css-zen-garden] #linkList li a:link { color: #f90; }
+body[id=css-zen-garden] #linkList li a:visited { color: #f90; }
+body[id=css-zen-garden] #linkList li a:hover,
+body[id=css-zen-garden] #linkList li a:active { color: #6CF; }
+body[id=css-zen-garden] #extraDiv1 { position: absolute; top: 105px; left: 200px; width: 250px; height: 350px; background: url(intro.png) no-repeat left top; }/* css Zen Garden submission 063 - 'Elastic Lawn' by Patrick Griffiths, http://htmldog.com/ptg/ */
+/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
+/* All associated graphics copyright 2003, Patrick Griffiths */
+/* Added: December 5th, 2003 */
+
+/* IMPORTANT */
+/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
+/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
+/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
+
+
+body {
+ font-family: arial, Helvetica, sans-serif;
+ font-size: 77%; /* initially set to percentage so that ems work without producing miniscule text in IE */
+ text-align: center; /* needed to center the container in IE5.x because it doesn't like 'margin: 0 auto' */
+ color: #dfd;
+ background: #1b890e url(grass.jpg); /* defines the colour as well as the background image so that an average colour is shown while the image loads */
+ padding: 0 0 6em 0;
+ margin: 0;
+}
+
+#container {
+ width: 48em;
+ text-align: left; /* resets the text alignment */
+ margin: 0 auto; /* centers the container */
+}
+
+p {
+ padding: 0;
+ margin: 0;
+}
+
+p span {
+ display: block;
+ padding: 0 4em 1em 4em;
+}
+
+a {
+ color: #fe6;
+ background: url(underline1light.gif) bottom repeat-x;
+ text-decoration: none;
+}
+
+a:hover { background-image: url(underline2light.gif); }
+
+acronym { border: 0; }
+
+
+
+
+
+/*------------Hidden elements------------*/
+
+h1 span, h2, #intro h3 span, #supportingText h3 span, #linkList h3.xselect {
+ /* The equivalent of 'display: none' but leaves the elements readable by some screen readers */
+ position: absolute;
+ overflow: hidden;
+ clip: rect(0,0,0,0);/* because 'height: 0' doesn't have any fun in IE5.5 */
+ height: 0;/* because clip doesn't have any fun in IE6 */
+}
+
+
+
+
+
+/*------------Main heading and Quick Summary------------*/
+
+#intro #pageHeader { padding: 0; }
+
+h1 {
+ position: relative;
+ top: 19px;
+ left: -24px;
+ height: 8em;
+ font-size: 1em;
+ background: url(logo.gif) bottom left no-repeat;
+ padding: 0;
+ margin: 0;
+}
+
+#quickSummary {
+ height: 8.1em; /* ensures that the linkList top fits directly below */
+ background: #fc3 url(yellowdiagonal.gif);
+}
+
+#quickSummary p span {
+ color: #030;
+ margin: 0;
+}
+
+#quickSummary .p1 span {
+ font-weight: bold;
+ background: url(curve.gif) top right no-repeat;
+ padding: 2.2em 15em 1em 3em;
+}
+
+#quickSummary .p2 span {
+ position: absolute;
+ top: 10.3em;
+ left: 50%;
+ width: 22em;
+ text-align: center;
+ padding: 0 0 0 11em;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: 11em;
+}
+html>#quickSummary .p2 { width: 11em; }
+
+#quickSummary a {
+ color: #070;
+ background-image: url(underline1dark.gif);
+}
+
+#quickSummary a:hover { background-image: url(underline2dark.gif); }
+
+
+
+
+
+/*------------Preamble, Supprting Text and Footer------------*/
+
+#preamble, #supportingText {
+ width: 32em;
+ background: #0d4407 url(grassdark.jpg);
+ margin-left: 16em;
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ margin: 0 0 0 auto;
+}
+html>#preamble, html>#supportingText { margin: 0 0 0 auto; }
+
+#benefits p {
+ /* because otherwise IE 6 goes crazy */
+ voice-family: "\"}\"";
+ voice-family:inherit;
+ position: relative;
+ top: -1.5em;
+ margin: 1.5em 0 -1.5em 0;
+}
+#benefits>p {
+ top: 0;
+ margin: 0;
+}
+
+#preamble , #supportingText div { padding: 0 0 2.5em 0; }
+
+#explanation, #benefits {
+ color: #030;
+ background: #fc3 url(yellowdiagonal.gif);
+ margin: 0 2em;
+}
+
+#preamble .p1, #participation .p1, #requirements .p1 {
+ position: relative;
+ top: -15px;
+ background: url(corner_yelongreen_br.gif) top right no-repeat;
+ margin: 0 2em -15px 2em;
+}
+
+#preamble .p1 {
+ margin: 0 0 -15px 0;
+}
+
+#participation .p1 span, #requirements .p1 span {
+ display: block;
+ background: url(corner_yelongreen_bl.gif) top left no-repeat;
+ padding-top: 4em;
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+#preamble .p1 span {
+ display: block;
+ padding-top: 4em;
+}
+
+#explanation .p1, #benefits .p1 {
+ background: url(corner_yelongreen_tl.gif) top left no-repeat;
+}
+
+#explanation .p1 span, #benefits .p1 span {
+ display: block;
+ background: url(corner_yelongreen_tr.gif) top right no-repeat;
+ padding-top: 3em;
+}
+
+#intro h3, #supportingText h3 {
+ position: relative;
+ top: -13px;
+ height: 13px;
+ background: url(enlightenment.gif) bottom center no-repeat;
+ padding: 0;
+ margin: 0 0 -13px 0;
+}
+
+#explanation h3 { background-image: url(about.gif); }
+#participation h3 { background-image: url(participation.gif); }
+#benefits h3 { background-image: url(benefits.gif); }
+#requirements h3 { background-image: url(requirements.gif); }
+
+#footer {
+ text-align: center;
+ background: url(corner_grassdarkongrass_bl.gif) bottom left no-repeat;
+ padding: 4em 0;
+}
+
+#extraDiv1 {
+ position: relative;
+ top: -15px;
+ width: 48em;
+ height: 15px;
+ background: url(corner_grassdarkongrass_br.gif) bottom right no-repeat;
+ margin: 0 auto;
+}
+
+
+
+
+
+
+/*------------Link List------------*/
+
+#linkList {
+ position: absolute;
+ top: 16.1em;
+ width: 16em;
+ margin: 0;
+}
+
+#linkList2 {
+ background: #5b460b url(grassbrown.jpg);
+ padding: 0;
+}
+
+#linkList h3 {
+ font-family: "Trebuchet MS", arial, Helvetica, sans-serif;
+ font-size: 1.2em;
+ text-transform: uppercase;
+ text-align: center;
+ color: #fc3;
+ margin: 0;
+}
+
+#linkList h3.select {
+ position: relative;
+ top: -15px;
+ width: 13.3333em;
+ background: url(corner_yelonbrown_bl.gif) top left no-repeat;
+ padding: 0;
+ margin-bottom: -15px;
+}
+
+h3.select span {
+ display: block;
+ position: relative;
+ left: 15px;
+ background: url(twirl.gif) top right no-repeat;
+ padding-right: 15px;
+ padding-top: 2.5em;
+ margin-left: -15px;
+}
+
+#linkList a {
+ color: #efe;
+ background-image: url(underline1yellow.gif);
+}
+
+#linkList a:hover {
+ background-image: url(underline2yellow.gif);
+}
+
+ul {
+ list-style: none;
+ padding: 1em 1.5em;
+ margin: 0;
+}
+
+li {
+ padding-left: 1.5em;
+ margin-bottom: 1em;
+}
+
+li/* */ {
+ background: url(bullet.gif) left no-repeat;
+}
+
+#lselect ul a {
+ display: block;
+ font-family: "Trebuchet MS", arial, Helvetica, sans-serif;
+ font-weight: bold;
+}
+
+#lselect ul a.c {
+ display: inline;
+ font-family: arial, Helvetica, sans-serif;
+ font-weight: normal;
+}
+
+#lresources {
+ position: relative;
+ top: 15px;
+ background: url(curvebl2.gif) bottom right no-repeat;
+ padding-bottom: 15px;
+ margin-top: -15px;
+}
+
+#lresources ul {
+ background: url(curvebl.gif) bottom left no-repeat;
+}/* css Zen Garden submission 064 - 'Night Drive' by Dave Shea, http://www.mezzoblue.com/ */ +/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */ +/* All associated graphics copyright 2003, Dave Shea */ +/* Added: December 6th, 2003 */ + +/* IMPORTANT */ +/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */ +/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */ +/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */ + + +html { + margin: 0; + padding: 0; + } + +body { + color: #A05B00; + background: #000 url(bg1.gif) repeat; + text-align: center; + font: 11px/18px helvetica, arial, sans-serif; + text-transform: lowercase; + margin: 0; + padding: 0; + } +a:link { + color: #FFC000; + text-decoration: none; + } +a:visited { + color: #D79900; + text-decoration: underline; + } +a:hover { + color: #FF0; + text-decoration: underline; + } + +p { + padding: 0 0 0.3em 14px; + } +h3 { + font-size: 12px; + color: #CA7400; + margin-bottom: 0; + padding-left: 14px; + background: transparent url(w1.gif) 0 2px no-repeat; + } +h3 + p { + margin-top: 0; + } +acronym { + font-style: normal; + border-bottom: none; + } + +/* structure */ +#container { + background-color: #000; + width: 770px; + text-align: left; + margin-left: auto; + margin-right: auto; + border-left: double 3px #332511; + border-right: double 3px #332511; + } + + + +/* header */ +h1 span, h2 span { + display: none; + } +h1 { + width: 770px; + height: 166px; + margin: 0; + background: #000 url(bg2.gif) top left no-repeat; + } +h2 { + width: 244px; + height: 42px; + background: #000 url(h1.gif) top left no-repeat; + position: absolute; + top: 120px; + margin: 0; + margin-left: 495px; + } + + +/* content */ +#quickSummary, #preamble, #supportingText { + margin: 0 0 0 400px; + padding: 1px 0; /*1px 10px 1px 10px;*/ + background: transparent url(bg4.gif) top left repeat-y; + width: 342px; + } +#quickSummary h3, #preamble h3, #supportingText h3 { + margin: 0 10px; +} +#quickSummary p, #preamble p, #supportingText p { + margin: 0 0 10px 10px; +} + +#quickSummary { + border-top: solid 1px #332511; + padding-top: 10px; + } + + +/* sidebar */ +#linkList { + position: absolute; + top: 166px; + width: 400px; + height: 633px; + color: #132F5B; /*#742500;*/ + background: transparent url(bg3.gif) top left repeat-x; + border-top: solid 1px #332511; + line-height: 12px; + padding-top: 20px; + } +#linkList ul { + margin: 0; + padding: 0; + } +#linkList li { + list-style-type: none; + padding: 0; + margin-bottom: 0.5em; + } +#lselect li { + padding: 3px 3px 3px 16px; + background: transparent url(w2.gif) 3px 3px no-repeat; +} +#lselect li a:link, #lselect li a:visited { + display: block; +} +#linkList h3 { + padding-left: 0; + background-image: none; + } +#linkList h3 span { + display: none; +} +#linkList a, #linkList a:link { + color: #AF4F0A; + font-weight: bold; +} +#linkList li a.c:link, #linkList li a.c:visited { + color: #742500; + font-weight: normal; + display: inline; + text-decoration: none; +} +#linkList a.c:hover { + text-decoration: underline; +} + +#linkList h3.select { + width: 160px; + height: 12px; + background: transparent url(h-select.gif) top left no-repeat; + margin-bottom: 0.5em; +} +#linkList h3.archives { + width: 180px; + height: 12px; + background: transparent url(h-archives.gif) top left no-repeat; + margin-bottom: 0.5em; +} +#linkList h3.resources { + width: 180px; + height: 12px; + background: transparent url(h-resources.gif) top left no-repeat; + margin-bottom: 0.5em; +} + + +#lselect { + width: 160px; + float: left; + padding-left: 50px; +} + +/* CSS MOSe hovers */ +* > #lselect li { + margin-top: -7px; + padding: 5px 5px 5px 18px; + background-position: 5px 5px; + margin-right: 10px; + border: solid 1px transparent; +} +#lselect li:hover { + background: #2A1812; + border-color: #452310; +} +#lselect li:hover a { + color: #FF9D14; +} +#lselect li:hover a.c { + color: #E84900; +} + + +#larchives { + padding-top: 1px; +} +#larchives, #lresources { + padding-left: 200px; +} + +#footer { + text-align: right; + padding: 5px 10px 100px 15px; + background: url(skyline.jpg) bottom left repeat-x; + position: relative; + left: 3px; + width: 342px; + margin: 0; +} + + +/* extra bits */ +#extraDiv1 { + position: absolute; + top: 41px; + left: 0; + text-align: center; + width: 100%; + } +#extraDiv1 span { + width: 400px; + height: 123px; + background: transparent url(granville.jpg) top left no-repeat; + display: block; + margin-left: auto; + margin-right: auto; + padding-right: 370px; + width: 770px; + voice-family: "\"}\""; + voice-family:inherit; + width: 400px; + } +html>body #extraDiv1 span { + width: 400px; +} +#extraDiv2 { + position: absolute; + top: 41px; + left: 0; + text-align: center; + width: 100%; + } +#extraDiv2 span { + height: 70px; + background: transparent url(falsecreek.jpg) top right no-repeat; + display: block; + margin-left: auto; + margin-right: auto; + padding-left: 402px; + width: 769px; + voice-family: "\"}\""; + voice-family:inherit; + width: 367px; + } +html>body #extraDiv2 span { + width: 367px; +} +#extraDiv3 { + position: absolute; + top: 0; + left: 0; + width: 100%; + text-align: center; +} +#extraDiv3 span { + text-align: left; + width: 770px; + height: 38px; + background: transparent url(bg5.gif) top left repeat-x; + display: block; + margin-left: auto; + margin-right: auto; +} +#extraDiv4 { + position: absolute; + top: 0; + left: 0; + width: 100%; + text-align: center; +} +/* IE doesn't support PNG transparency. No soup for you. */ +html>body #extraDiv4 span { + width: 790px; + height: 94px; + background: transparent url(seal.png) top right no-repeat; + display: block; + margin-left: auto; + margin-right: auto; +}/* css Zen Garden submission 065 - 'New Groove' by Martin Neumann, http://www.rushmedia.de/ */ |